[Lazarus-es] Asignar valor a combo dentro de un grid desde unformulario hijo
Ismael L. Donis García
ismael en citricos.co.cu
Vie Jun 10 23:08:20 CEST 2011
1 Millón de gracias, ya lo había resuelto creando una propiedad pública y
pasando y leyendo el valor desde dicha propiedad.
Ahora tengo que ver que evento se dispara cuando aprieto el botón dentro de
un TDBGrid que esté declarado de la siguiente forma:
dbg.Columns.Items[0].ButtonStyle:=cbsEllipsis; // dbg = TDBGrid
Gracias Reiteradas
=========
|| ISMAEL ||
=========
----- Original Message -----
From: "José Mejuto" <joshyfun en gmail.com>
To: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Friday, June 10, 2011 3:38 PM
Subject: Re: [Lazarus-es] Asignar valor a combo dentro de un grid desde
unformulario hijo
Hello Ismael,
Friday, June 10, 2011, 6:13:17 PM, you wrote:
ILDG> Estoy llamando a un formulario desde otro formulario de la siguiente
forma:
[...]
ILDG> procedure Tfcaptar.cboorgKeyDown(Sender: TObject; var Key: Word;
uses xxxxx,yyyyy;
implementation
uses ufcaptarform; //O como se llame.
ILDG> procedure Tfvisual.FormCloseQuery(Sender: TObject; var CanClose:
boolean);
ILDG> begin
ILDG> if not blnend then begin
ILDG> if (Self.Caption = 'Organismos') then
ILDG>
ILDG> fcaptar.cboorg.Text:=dm.rssc1.FieldByName('nombre').AsString;
Tfcaptar(Self.owner).cboorg.text:= ......
ILDG> end;
ILDG> end;
De todos modos no me gusta nada ese sistema. Si tienes que hacer
referencia a un form o algo que "se ha quedado atrás", pasa la
referencia a ese form en una property y crea un método en el form que
se ha quedado atrás para que realize la operación. Lo que quedaría
como:
Captarform.UpdateComboWithText(dm.rssc1.FieldByName('nombre').AsString);
Si no, con el paso del tiempo te vas a encontrar que si sacas un form
de un programa resulta que el 50% del resto de formularios dejan de
funcionar. Los formularios deberían de ser cuanto más autónomos,
mejor y a ser posible nunca hacer referencia explícita a ningún objeto
visual, si no hacerlo a través de un método o propiedad.
Por ejemplo, esto:
f.Caption:='Organismos';
f.dbg.DataSource:=dm.dt1;
f.lblfind.Caption:=cboorg.Text;
f.ShowModal;
f.Free;
quedaría algo como:
f.Caption:='Organismos';
f.UseDataSource:=dm.dt1;
f.QueBuscar:=cboorg.Text;
f.ShowModal;
f.Free;
Si decides cambiar el lblfind por un TEdit, los cambios los haces en
el form localmente, no tienes que buscar en todos los forms a ver cual
hace referencia a "lblfind".
--
Best regards,
José
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
More information about the Lazarus-es
mailing list