FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Nombre componente en variable mas problemas
Hola amigos
Felizmente he podido guardar en tablas las caracteristicas de los RichEdit utilizado "FindControl" y "FindComponent". En la tabla guarde el nombre de los TRichEdit que los renombre como "Tecla1", "Tecla2" y asi sucesivamente. Pero cuando quiero cargar los RichEdit con los datos guardados en tabla me da mensaje de error. Código Delphi [-]procedure TPuntodeVentaForm.Button1Click(Sender: TObject); var ComponentT : TComponent; VarEdit : string; begin with datamodule2 do begin IbQuery3.Close; IbQuery3.SQL.Clear; IbQuery3.SQL.Add('Select * from MenuTeclas where Id_Producto <> 0'); IbQuery3.Prepare; IbQuery3.Open; if IbQuery3.EOF then Exit; IbQuery3.First; while not IbQuery3.EOF do begin VarEdit := IbQuery3.FieldByName('Id_Tecla').AsString; componentT := FindComponent(VarEdit) as TRichEdit; if Assigned( componentT ) then begin with componentT as TRichEdit do begin TRichEdit(componentT).Clear; TRichEdit(componentT).Lines.Add(IbQuery3.FieldByName('Linea1').asString); TRichEdit(componentT).Lines.Add(IbQuery3.FieldByName('Linea2').asString); TRichEdit(componentT).Lines.Add(IbQuery3.FieldByName('Linea3').asString); TRichEdit(componentT).Lines.Add(IbQuery3.FieldByName('Linea4').asString); end; end else MessageDlg(VarEdit + ' No Asignado', mtwarning,[mbOk],0); IbQuery3.Next; end; IbQuery3.Close; end; end; En un principio tenia la rutina en el Evento OnShow de la Form, pero para experimentar ejecuto la rutina con un Boton colocandole ademas la prueba si esta asignado. Fracaso. Si pueden ayudarme por favor haganlo. Gracias. |
#2
|
||||
|
||||
para comenzar, porq no colocas el mensaje de error, estas seguro que en el campo esta guardado correctamente el nombre?, verifica si en verdad encuentra algo
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
|||
|
|||
comprobe con un label
Gracias eduarcol, coloque un label que me da exactamente lo que quiero. Comprobe que la variable VarEdit silleva el nombre del componente.
Me pregunto, no habra que usar FindControl ademas? sigo pidiendo ayuda. |
#4
|
|||
|
|||
Cita:
Lo unico mejorable que veo en tu codigo puede ser : Código:
componentT := FindComponent(VarEdit) as TRichEdit; Código:
if (findComponet(VarEdit) is TrichEdit ) then Showmessage('Es un trichedit') else Showmessage('Esto no parece ser un trichedit...'); Saludos.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates. |
#5
|
|||
|
|||
Al fin la SOLUCION
Cuando capturaba el componente a traves del boton derecho del mouse, era la instruccion FindControl que me colocaba el nombre en una variable.
Pero como bien saben Uds no podia hacer lo contrario. Pues bien nunca colocar las rutinas en un Form.Activate o en un Form.Show. Aqui van las rutinas:
Por favor analizar y corregir si es posible |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Usar Nombre Componente en variable | camino | OOP | 3 | 07-04-2008 17:18:58 |
Variable en el nombre de la Tabla | carlosegs11 | SQL | 1 | 16-06-2006 23:32:47 |
Select con nombre de tabla Variable | mayte mtz | SQL | 4 | 25-04-2006 16:13:35 |
¿Como saber el nombre de la variable de un form? | fjavier64 | OOP | 1 | 04-03-2005 17:29:35 |
|