Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   duda sobre los memos (https://www.clubdelphi.com/foros/showthread.php?t=73560)

granodetoro 01-05-2011 23:51:30

duda sobre los memos
 
hoola a todos tengo una duda sobre algo en delphi 7 bueno...lo que pasa es que tengo 3 edit y 3 memos. bueno si me pueden ayudar, lo que quiero es cuando escriba el valor problema 001 en el edit1, en el memo 1 aparesca 'No hay espacio suficiente en disco' osea ese es el problema , ahora cuando escribo causa en el edit2 quiero que en el memo 2 aparesca ' por grabar muchos archivos en el disco' despues cuando escribo solucion en el edit3 quiero que aparesca en el memo 3 ' Libere espacio en una partición existente eliminando archivos que no necesita ' y tambien quiero que la informacion en el memo solo aparesca una vez

Casimiro Noteví 02-05-2011 00:16:03

¿Y qué llevas hecho?

ecfisa 02-05-2011 00:37:02

Hola sombradetoro.

Tál como lo has planteado, una forma podría ser:
Código Delphi [-]
...
implementation 

resourcestring
  MsgCodigo = 'No hay espacio suficiente en disco';
  MsgCausa =  'por grabar muchos archivos en el disco';
  MsgSolucion = 'Libere espacio en una partición existente eliminando archivos que no necesita';

procedure TForm1.FormShow(Sender: TObject);
begin
  Edit1.Tag:= 1;
  Edit2.Tag:= 2;
  Edit3.Tag:= 3;
end;

function MensajeExiste(const Mens: string; AMemo:TMemo): Boolean;
begin
  Result:= Pos(Mens, AMemo.Text) <> 0;
end;

procedure TForm1.EditExit(Sender: TObject);
begin
  case (TEdit(Sender).Tag) of
    1:if(Trim(Edit1.Text)='001')and not MensajeExiste(MsgCodigo,Memo1) then
        Memo1.Lines.Add(MsgCodigo);
    2:if (Trim(Edit2.Text)='causa')and not MensajeExiste(MsgCausa,Memo1) then
        Memo1.Lines.Add(MsgCausa);
    3:if (Trim(Edit3.Text)='solucion')and not MensajeExiste(MsgSolucion,Memo1) then
       Memo1.Lines.Add(MsgSolucion);
  end;
end;

Un saludo.

Edito: Me olvidé de aclarar algo, tenés que asociar el procedimiento EditExit al evento OnExit de cada Edit.

granodetoro 02-05-2011 05:24:22

perdon y disculpa ecfisa cuando escribo el valor en cualquier edit no aparece nada en ningun memo. por ejemplo cuando escribo el valor 001 en el edit1 no aparece nada en el memo 1 y quiero que aparesca la informacion cuando doy enter... y perdona

ecfisa 02-05-2011 06:28:14

Hola granodetoro.

No tenés nada por que disculparte, seguramente no hayas asignado el procedimiento EditExit al evento OnExit de cada Edit.
Pero para evitar cualquier tipo de confución te adjunto el código del ejemplo anterior así lo podés revisar con tranquilidad.

Otro detalle: A menos se modifique, el cambio de foco se provoca con la tecla 'Tab' y no 'Enter'. Así que para que pierda el foco
y se invoque el evento OnExit, será la tecla Tab la que dispare el evento (o un click con el mouse sobre otro componente).

Si querés que la tecla Enter funcione como Tab, revisá este enlace .

Un saludo.

granodetoro 02-05-2011 07:07:55

creia que era una molestia para ti...un millon de gracias

ecfisa 02-05-2011 09:53:17

Cita:

Empezado por granodetoro (Mensaje 398533)
creia que era una molestia para ti...un millon de gracias

No es una molestia en absoluto... ;)

Un saludo. :)


La franja horaria es GMT +2. Ahora son las 19:49:37.

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