Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2008
alremo81 alremo81 is offline
Registrado
 
Registrado: abr 2008
Posts: 1
Poder: 0
alremo81 Va por buen camino
bucle entre edit.change y edit.change

Buenas a todos:
Estoy realizando un programa con varios edit en el form y se trata de cambiar el edit.text de los edit cuando uso el evento edit.changed de uno y asi con todos. pero tengo el problema que entra en un bucle infinito, Porque al cambiar un edit.text se cambian todos los demas, pero al cambiarse los demas ellos tambien llaman a su propio evento edit.changed y vuelve a cambiarlos todos y asi sucesivamente.

Estoy de practicas en una empresa y me han pedido este ejercicio y estoy parado, Agradeceria mucho una ayuda rapida.

Gracias de antemano.

codigo de ejemplo por si no lo habeis entendido:

Cita:
procedure TForm1.edit1Change(Sender: TObject);

edit2.text := 'aaaa';
edit3.text := 'bbbb';

procedure TForm1.edit2Change(Sender: TObject);

edit1.text := 'cccc';
edit3.text := 'dddd';

procedure TForm1.edit1Change(Sender: TObject);

edit1.text := 'eeee';
edit3.text := 'ffff';

Última edición por alremo81 fecha: 07-04-2008 a las 13:40:55.
Responder Con Cita
  #2  
Antiguo 07-04-2008
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Siguiendo tu mismo ejemplo, asi, de cabeza se me ocurre lo siguiente:

Código Delphi [-]
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin // el valor de la propiedad tag lo usamos para decidir si 
// se hace algo en el OnChange de cada Edit
 TEdit(Sender).Tag := 1;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin   
  if TEdit(Sender).Tag = 1
  then begin     
    Edit2.Tag := 0;     
    Edit2.Text := 'bbbbb';
    Edit3.Tag := 0;
    Edit3.Text := 'ccccc';
  end;
  TEdit(Sender).Tag := 0;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin  
  if TEdit(Sender).Tag = 1
  then begin     
    Edit1.Tag := 0;     
    Edit1.Text := 'fffff';
    Edit3.Tag := 0;
    Edit3.Text := 'hhhhh';
  end;
  TEdit(Sender).Tag := 0;
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin   
  if TEdit(Sender).Tag = 1
  then begin     
    Edit1.Tag := 0;     
    Edit1.Text := 'xxxxx';
    Edit2.Tag := 0;
    Edit2.Text := 'yyyyy';
  end;
  TEdit(Sender).Tag := 0;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #3  
Antiguo 07-04-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Yo lo programaría en un solo edit, utilizando el objeto Sender en lugar de el nombre del control.

Luego asignar ese evento a todos los demás.
__________________

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
mssql another user change the record eureka Conexión con bases de datos 2 21-02-2007 18:55:00
Unir Edit con Edit Caral Varios 8 17-11-2006 21:37:35
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39
TComboBox ItemIndex anterior a la ejecución de Change zemog76 OOP 6 04-02-2005 16:57:37


La franja horaria es GMT +2. Ahora son las 14:05:28.


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
Copyright 1996-2007 Club Delphi