Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-05

onClick con parametros adiconales.

4 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Rafael Bidegain

Hola a todos.

necesito agregar dos par�metros al evento onClick de un TButton,

el error que obtengo es el siguiente:
Error:Incompatibles types: got "<procedure variable type of procedure(Tobject, Tedit, Tedit) of object;Register>" expected "<procedure variable type of procedure(TObject) of object;Register>"

este es mi c�digo.
  TForm1 = class(TForm)
    panel1 : TPanel;
    edit1, edit2 : Tedit;
    boton1 : Tbutton;
    Button1: TButton;
    procedure Boton1Click(Sender: TObject; uno, dos : TEdit);
  private
    { private declarations }
  public
    { public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.lfm}

{ TForm1 }

procedure TForm1.Boton1Click(Sender: TObject; uno, dos : TEdit);
var
  tmp : string;
begin
 tmp := uno.Text;
 uno.text := dos.text;
 dos.text := tmp;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  panel1 := Tpanel.Create(Self);
  panel1.parent := form1;
  ..
  edit1 := TEdit.Create(Self);
  edit1.parent := panel1;
  ..
  edit2 := TEdit.Create(Self);
  edit2.parent := panel1;
  ..
  boton1 := TButton.Create(Self);
  boton1.parent := panel1;
  boton1.OnClick := @Boton1Click(Sender, edit1, edit2);
  ..
end;
Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # yo quiero educaci�n libre. �YA! ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130531/11a704dc/attachment.html>

Reply by email

Martin Gomez
to Rafael Bidegain

Hola Rafael,
creo que no es la manera �ptima de hacerlo.
El OnClick viene desde dentro de la clase TButton y tendr�as que derivar (heredar) o reimplementar la clase, un bot�n completo... para que? Para pasarle como par�metros a un evento 2 edits que NO pertenecen al bot�n. Entonces, como puede "saber" la clase el nombre de los edits? El bot�n es un objeto, los edits son otros objetos, a menos que est�s creando un control nuevo, no lo recomiendo.

Si tu intenci�n es crear un "modulo" que contenga 2 edits y un bot�n, y "pegar" varias veces el mismo m�dulo en un mismo formulario, te recomiendo utilizar Frames.
http://wiki.freepascal.org/Frames

Dentro del frame puedes crear un evento Presionado(TEdit, TEdit) y desde el OnClick *interno del frame* lo invocas pasando referencias a los componentes *internos*.
En tu c�digo del Form, en "OnPresionado" tendr�s las referencias a los componentes para trabajar sobre ellos.

Tengo implementado algo similar pero en vez de pasar las referencias de los TEdit paso solo el texto que contienen, es menos engorroso para escribir y mantener.

Suerte con eso!

Rafael Bidegain wrote 80 lines
Hola a todos. necesito agregar dos par�metros al evento onClick de un TButton, el error que obtengo es el siguiente: Error:Incompatibles types: got "<procedure variable type of procedure(Tobject, Tedit, Tedit) of object;Register>" expected "<procedure variable type of procedure(TObject) of object;Register>" este es mi c�digo. TForm1 = class(TForm) panel1 : TPanel; edit1, edit2 : Tedit; boton1 : Tbutton; Button1: TButton; procedure Boton1Click(Sender: TObject; uno, dos : TEdit); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Boton1Click(Sender: TObject; uno, dos : TEdit); var tmp : string; begin tmp := uno.Text; uno.text := dos.text; dos.text := tmp; end; procedure TForm1.Button1Click(Sender: TObject); begin panel1 := Tpanel.Create(Self); panel1.parent := form1; .. edit1 := TEdit.Create(Self); edit1.parent := panel1; .. edit2 := TEdit.Create(Self); edit2.parent := panel1; .. boton1 := TButton.Create(Self); boton1.parent := panel1; boton1.OnClick := @Boton1Click(Sender, edit1, edit2); .. end; -- Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # yo quiero educaci�n libre. �YA! _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130531/a9a32748/attachment.html>

Reply by email

Rafael Bidegain
to Martin Gomez

El 31 de mayo de 2013 09:55, Martin Gomez <mmgomez en gmail.com> escribi�:

Hola Rafael, creo que no es la manera �ptima de hacerlo.

Hola Mart�n.

Interpretaste correctamente mi necesidad, creo que la soluci�n que me sugeriste me servir� mucho.

muchas gracias.

Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # yo quiero educaci�n libre. �YA! ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130531/6019b256/attachment.html>

Reply by email

Martin Gomez
to Rafael Bidegain

De nada, para eso estamos!
comenta cualquier dificultad con que te topes

2013/5/31 Rafael Bidegain <r.bidegain en gmail.com>

Show quoted text 31 lines
El 31 de mayo de 2013 09:55, Martin Gomez <mmgomez en gmail.com> escribi�: Hola Rafael, > creo que no es la manera �ptima de hacerlo. > Hola Mart�n. Interpretaste correctamente mi necesidad, creo que la soluci�n que me sugeriste me servir� mucho. muchas gracias. -- Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # yo quiero educaci�n libre. �YA! _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130531/982b03e2/attachment.html>

Reply by email