![]() |
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. |
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
|
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. |
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')Saludos. |
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 |
| La franja horaria es GMT +2. Ahora son las 17:44:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi