Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Encontrar el enfoque del componente (https://www.clubdelphi.com/foros/showthread.php?t=13267)

AGAG4 12-08-2004 02:18:23

Encontrar el enfoque del componente
 
Ahora tengo esta, lo que pasa es que necesito como saber en que tEdit ó tdbedit me encuentro, lo que pasa es que estoy haciendo una funcion que limpiará el campo presionando "F10" , en el que tenga el enfoque, mandando como parámetro la "tforma" en donde lo llama, asi como el "nombre del componente", lo quiero hacer en el onkeydown, pero me falta ese parámetro.... Alguien me puede ayudar????

if key=vk_f10 then
LimpiarCampo(self,'NombreComponente');

roman 12-08-2004 02:26:18

¿Para qué quieres pasarle el nombre de la componente? ¿Por qué no le pasas la componente misma?

Código Delphi [-]
procedure LimpiarCampo(Edit: TEdit);
begin
  if Assigned(Edit) then Edit.Clear;
end;

De cualquier forma, para saber en qué Edit te encuentras te puede servir la propiedad ActiveControl del formulario que apunta al control que tiene el foco.

// Saludos

Neftali [Germán.Estévez] 12-08-2004 09:53:11

Cita:

Empezado por AGAG4
...necesito como saber en que tEdit ó tdbedit me encuentro

Un TForm tiene una propiedad que te devuelve el control que tiene el foco actualmente.

Código Delphi [-]
  property ActiveControl: TWinControl;

AGAG4 14-08-2004 17:12:08

????
 
Lo que ocupo es el nombre del componente en donde actualmente estoy posicionado(tedit ó tdbedit). por ejemplo tengo la siguiente funcion.

procedure LimpiarCampo(Var Reference, Campo:String);
var aux:string;
x:byte;
begin
if campo[1]='t' then begin
for x:=1 to length(campo)-1 do
aux:=campo[x+1];
aux:=campo;
tdbEdit(tForma(Reference).FindChildControl(aux)).clear;
end else
tEdit(tForma(Reference).FindChildControl(aux)).clear;
end;
si viene el NOMBRE con una "t" al inicio entonces ya se que es un tdbEdit y sin la "t" un tedit, por lo tanto, lo que ocupo es el nombre del componente en que tengo el enfoque. Gracias

roman 14-08-2004 18:56:31

Disculpa pero creo que tendrás que retomar la pregunta desde el principio y volverla a formular. Tal como la he entendido no requieres ni pasar la forma ni el campo como parámetros. En el evento OnKeyDown simplemente pones:

Código Delphi [-]
if Key = VK_F10 then
  if ActiveControl is TEdit then
    TEdit(ActiveControl).Clear
  else if ActiveControl is TDBEdit then
    TDBEdit(ActiveControl).Clear;

// Saludos

AGAG4 14-08-2004 20:17:26

Ok....
 
Esto es lo que ocupaba Sr. Roman.. Muchas Gracias....!!!!


La franja horaria es GMT +2. Ahora son las 08:55:23.

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