Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2005
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Eventos en componentes creados en tiempo de ejecucion

¿Como puedo asignar eventos a un boton creado en tiempo de ejecución?
Para crearlo utilizo el siguiente codigo extraido de las paginas del foro. Con el creo tanto botones como se le indique en el Tedit. El problema es que no se cuando se pulsa uno de esos botones. ¿Como puedo capturar el evento en dicho boton?

Gracias por adelantado

CODIGO

procedure TForm1.Button1Click(Sender: TObject);
var
i, cont:Integer;
p:TButton;
begin

cont := StrToInt(Edit1.Text);

for i := 0 to (cont-1) do begin
p := TButton.Create(Self);
p.Left := (50 * i);
p.Top := 0;
p.Width:= 50;
p.Height := 20;
p.ParentWindow := Self.Panel1.Handle;
p.Name := 'Button' + IntToStr(i+4);

end;
end;
Responder Con Cita
  #2  
Antiguo 17-06-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
En delphi ese tema es mas que sencillo, los eventos son "punteros" a procedimientos de objectos. Simplemente tienes que tener definido un procedimiento del tipo que requiera el evento, y asignarlo como cualquier propiedad:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    FButton: TButton;
  public
    procedure MiEvento(Sender: TObject); { Del tipo TNotifyEvent}
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FButton := TButton.Create(Self);
  FButton.Parent := Self;
  FButton.OnClick := MiEvento
end;

end.


http://www.clubdelphi.com/foros/showthread.php?t=979
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 27-12-2005
jfgaliano jfgaliano is offline
Miembro
 
Registrado: nov 2005
Posts: 15
Poder: 0
jfgaliano Va por buen camino
Perfecto,gracias, esto ya me soluciona un problema. Lo que quiero hacer es que en ese procedimiento asociado se muentren un valor asociado al label pulsado. Me explico, cada label creado sale de un campo de una tabla en la base de datos con muchos otros datos,y lo que quiero es que al pulsar un label asociado a un campo de un registro determinado, se muestre en el procedimiento otro campo pero del mismo registro que el label pulsado.

Mi tabla tiene por ejemplo dos campos, uno nombre y otro descripcion. Muesto todos los nombre que hay en la tabla en una columna de forma dinámica. Y quiero que al pulsar en nombre en concreto se me muestre en un único memo la descripcion asociada a ese nombre. Por tanto en el procedimiento tengo que asociar este campo al valor del memo, pero no se como obtener el valor del campo descripcion .

Gracias.
Responder Con Cita
  #4  
Antiguo 27-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Simplemente lanza una consulta:

Código Delphi [-]
query1.sql.clear;
query1.sql.add('select descripcion from tabla');
query1.sql.add('where nombre = '+Tlabel(Sender).caption);
quey1.Open;

Esto iría dentro del evento general de todos los labels, cuando se pulse uno determinado, se usa su caption para averiguar la descripción.

En lugar del Memo, puedes usar un DBMemo asociado a esa consulta.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 13:22:32.


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