Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   saber el boton presionado (https://www.clubdelphi.com/foros/showthread.php?t=33029)

fartycl 24-06-2006 23:37:26

saber el boton presionado
 
holas A todos..

tengo un nuevo problemita...

yo en mi aplicacion Creo Varios botones en tiempo de ejecucucion los cuales en la propiedad Caption les coloco un nombre que saco de una tabla.
Tambien creo un tPanel pop cada boton que en la propiedad name le coloco el mismo nombre que tiene el boton en la Prop. caption.

El problema es el siguente cuando le asigono al boton la propiedad onclick un procedimiento, en ese procedimiento busco el componente tpanel Que tiene el nombre del boton que yo presione y asi le modifico la porop. Visible pero al hacer la comparacion la variable que declare como tButton en la prop. Caption viene con el ultimo boton que creo y no con el que presione.

pregunta como puede saber el procedimiento que boton aprete

desde ahora muchas gracias

celades1 25-06-2006 13:19:16

Hola

Aqui todos los Buttons los creo en un mismo panel, pero para el caso es lo mismo, el evento onclick es comun a todos los buttons y TBUTTON(SENDER) te devuelve el button presionado

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    PROCEDURE BUTO_APRETAT(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
VAR
  BUTO: TButton;
  x: integer;
begin
  for x:=1 to 4 do
  begin
    BUTO := TButton.CREATE(SELF);
    BUTO.Parent := PANEL1;
    BUTO.Top := 2;
    BUTO.Left := 4+20*x;
    BUTO.CAPTION := 'Buto_' + inttostr(x);
    buto.name := 'Buto_' + inttostr(x);
    BUTO.OnClick := BUTO_APRETAT;
  end;
end;

PROCEDURE TForm1.BUTO_APRETAT(Sender: TObject);
var
  nom: string;
BEGIN
  nom := TBUTTON(SENDER).name;
  {
    con TBUTTON(SENDER) sabes el button apretado if nom='Buto_1' then
    haz_lo_que_sea else if nom='Buto_2' then haz_otra_cosa else haz_defecto;
  }
END;

Espero haberte entendido

Saludos

nemesio 26-06-2006 06:04:16

Has revisado el ActiveControl?, el te da el nombre del objeto que tiene el control o foco en ese momento.


La franja horaria es GMT +2. Ahora son las 22:05:43.

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