Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   PopUp Dinamico en un Edit (https://www.clubdelphi.com/foros/showthread.php?t=55395)

sionks 15-04-2008 23:20:40

PopUp Dinamico en un Edit
 
Buenas, Estoy desarrollando un sistema, en el cual necesito que cuando este modificando un edit, haga una consulta a una base de datos, y lel resultado lo vaya desplegando en una especie de menu tipo popup, Gracias por su atencion y ojala alguien me pueda apoyar en como resolver este pequeño detalle.

Caral 15-04-2008 23:31:46

Hola
Código Delphi [-]
   QTemp.SQL.Text := 'Select TuCampo From TuTabla';
   QTemp.Active := True;
   While not QTemp.Eof do
   begin
      PopupMenu1.Items.Add(QTemp.Fields[0].Text);
      QTemp.Next;
   end;
Saludos

cHackAll 15-04-2008 23:46:12

Con tu permiso maestro;

Código Delphi [-]
var Item: TMenuItem;
 
...

 QTemp.SQL.Text := 'Select TuCampo From TuTabla';
 QTemp.Active := True;
 while not QTemp.Eof do
  begin
   Item := TMenuItem.Create(PopupMenu1);
   Item.Caption := DBGrid1.Fields[0].Text;
//   Item.OnClick := ...
   PopupMenu1.Items.Add(Item);
   QTemp.Next;
  end;

Saludos

Caral 16-04-2008 00:20:55

Hola
Muy bueno amigo, que decir.:)
Saludos

jandok238 16-04-2008 00:44:18

Hola....

con una observacion y una pregunta ...:)

primero... supongo que en tu codigo cHackAll

Cita:

Empezado por cHackAll
Código Delphi [-]
var Item: TMenuItem;
 
...

 QTemp.SQL.Text := 'Select TuCampo From TuTabla';
 QTemp.Active := True;
 while not QTemp.Eof do
  begin
   Item := TMenuItem.Create(PopupMenu1);
   Item.Caption := DBGrid1.Fields[0].Text;  //creo que en lugar deDBGrid1  es  QTemp no?
   PopupMenu1.Items.Add(Item);
   QTemp.Next;
  end;

bueno esa era la observacion.... ;);)

ahora la pregunta....

Cual es la diferencia con la respuesta de Caral ??

Por lo que alcazo a comprender... tu asignas el valor a un TMenuItem y luego lo agregas al PopupMenu.... en cambio Caral lo hace directo ??

Es cuestion de rendimiento?? estetica?? forma correcta de hacer las cosas?? o simplemente otra forma de hacerlo ??

Salu2!!!!

sionks 16-04-2008 00:53:34

Gracias
 
Gracias me ha servido de Mucho

cHackAll 16-04-2008 00:59:11

Cita:

Empezado por jandok238 (Mensaje 280337)
primero... supongo que en tu codigo cHackAll...

En definitiva, al probarlo me olvide ponerle el mismo nombre que puso el maestro Caral en su code :o

Cita:

Empezado por jandok238 (Mensaje 280337)
Cual es la diferencia con la respuesta de Caral ??

Por lo que alcazo a comprender... tu asignas el valor a un TMenuItem y luego lo agregas al PopupMenu.... en cambio Caral lo hace directo ??

Me parece que el code de Caral no funcionaba 100% y con mi corrección si; talvez la respuesta a tus preguntas la encontraras al probar ambos códigos. :)

Saludos

jandok238 16-04-2008 02:45:47

Cita:

Empezado por cHackAll (Mensaje 280343)
Me parece que el code de Caral no funcionaba 100% y con mi corrección si; talvez la respuesta a tus preguntas la encontraras al probar ambos códigos. :)

Saludos

De eso no hay duda ... ;)

lo que pasa es que no tenia DELPHI a la mano, y yo crei que el codigo que puso Caral si servia bien... bueno, de hecho... ahorita me dispongo a comprobar ambas soluciones, como bien me recomiendas.... :):)

salu2!!!!!

EDITO....

Pues ya hice la prueba... y como bien indicaste, el codigo de Caral NO sirve :D:D:D ..... El detalle que segun DELPHI

[Ayuda de Delphi]
procedure Add(Item: TMenuItem); overload;
[/Ayuda de Delphi]

y por lo tanto no se puede poner directamente una cadena de texto.... ( como lo habia puesto el novato Caral {con todo respeto}) :)

Bueno esto es a lo que llegue.....

Espero estar en lo correcto... si estoy mal.. que alguien me avise.... ;);)

salu2!!!!

fer21unmsm 16-04-2008 03:00:08

Cita:

Empezado por Caral (Mensaje 280324)
Hola
Código Delphi [-] QTemp.SQL.Text := 'Select TuCampo From TuTabla';
QTemp.Active := True;
While not QTemp.Eof do begin PopupMenu1.Items.Add(QTemp.Fields[0].Text); QTemp.Next; end;

Saludos

Bueno, creo que en el ejemplo de caral está agregando un texto "QTemp.Fields[0].Text" en vez de un objeto TMenuItem lo cual no es correcto, y en el codigo de chackall, si le pasa a PopupMenu1.Items.add un objeto de tipo TMenuItem.

Saludos
[Edit]
No vi la edicion de arriba
[/Edit]


La franja horaria es GMT +2. Ahora son las 12:54:20.

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