Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2016
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 210
Poder: 14
compuin Va por buen camino
Manejo de Canvas desde funcion en diferente Unit

Necesito que el Form1 al arrancar me muestre en un rectangulo y la funcion que lo hace esta en la Unit2

Algo asi,

Código Delphi [-]
unit Forma1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
Forma1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;

procedure FormCreate(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Forma1: TForma1;

implementation

uses
Unit2;

{$R *.dfm}


procedure TForma1.FormCreate(Sender: TObject);
begin
Rueda;
end;

end.

////---------------------------------------------

Código Delphi [-]
Unit Forma2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, Math, StdCtrls, Buttons;

procedure rueda;

implementation

procedure rueda;
begin
with TForma1.Image1.Canvas do
begin
Pen.Color := clNavy;
Pen.Width := 5;
Brush.Color := clYellow;
Brush.Style := bsDiagCross;
Ellipse( 160, 10, 260, 110 );
end;
end;

end.


Solo cambie el showmessage pero no genera la rueda,,,sigue el mismo error de Undefined identifier
Responder Con Cita
  #2  
Antiguo 31-10-2016
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Si el código que has publicado está completo, en la Forma2 no puede ver el TForm1 de ninguna manera. Tendrías que añadirlo a una clausula uses del Forma2.

Yo lo que haría (sobre todo para evitar acoplamiento entre una función y un formulario) sería poner esto:

Código Delphi [-]
procedure rueda(MiCanvas: TCanvas);
begin
  MiCanvas.Pen.Color := clNavy;
  MiCanvas.Pen.Width := 5;
  MiCanvas.Brush.Color := clYellow;
  MiCanvas.Brush.Style := bsDiagCross;
  MiCanvas.Ellipse( 160, 10, 260, 110 );
end;

Y lo llamaría desde Forma1 como

Código Delphi [-]
Rueda(Self.Canvas);

Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
incompatible unit windows con funcion trect anubis Varios 1 17-08-2014 17:51:59
funcion en dll usada en vb6 se comporta diferente en delphi erickperez6 Varios 2 29-05-2013 19:37:53
¿Como defino la llamada a una funcion en la Unit Principal Antuan Varios 2 14-08-2005 17:09:32
Crear query dentro de unit y funcion? alehillebrand OOP 3 19-07-2005 01:56:59
ejecutar una funcion d otra Unit negama Varios 2 08-09-2003 20:32:18


La franja horaria es GMT +2. Ahora son las 14:32:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi