const tanımlama ve create

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
korendon1971
Üye
Mesajlar: 52
Kayıt: 03 May 2005 06:16

const tanımlama ve create

Mesaj gönderen korendon1971 »

merhabalar arkadaşlar
Ben iki soru sormak istiyorum.

1.formdaki button1click procedure'ni degisken olarak tanımladım ama const olarak tanımlayamadım.

const
a:array[1..1]of procedure(sender:tobject)of object=(button1click);
olarak belirttim ama olmadı.

2.create ile yarattığım butonun onclick olayını nasıl aktif edebilirim?örneğin
yeni butona basılınca caption'i 'merhaba'olsun gibi......
Teşekkür ederim.......
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

1. sorunda ne yapmak istiyorsun tam olarak? Yazdığın kod hiç bir anlam içermiyor. Neyi ne olarak tanımlama istiyorsun?

2. sorun için:
viewtopic.php?t=497&highlight=runtime+event
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: const tanımlama ve create

Mesaj gönderen fduman »

korendon1971 yazdı: 1.formdaki button1click procedure'ni degisken olarak tanımladım ama const olarak tanımlayamadım.

Kod: Tümünü seç

const
a:array[1..1]of procedure(sender:tobject)of object=(button1click);
olarak belirttim ama olmadı.
Olmaz çünkü Button1Click bir pointer. Bellekteki bir adrese işaret ediyor. Bu adreste statik tanımlanamaz. Değişir. Değişken tanımlarsın. Çünkü runtime esnasında adres belirli olduğu için atama yapabilirsin.
2.create ile yarattığım butonun onclick olayını nasıl aktif edebilirim?örneğin
yeni butona basılınca caption'i 'merhaba'olsun gibi
Bir ButtonClick handler ı tanımla:

Kod: Tümünü seç

procedure TForm1.ButtonClick(Sender:TObject);
begin
   Button1.Caption:= 'Merhaba';
end;
Handler'ı değiştirmek veya atamak için de:

Kod: Tümünü seç

Button1.OnClick:= ButtonClick;
Yapabilirsin.
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

slm,

Kod: Tümünü seç

type
  My_Proc = procedure(sender:tobject)of object;
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    My_Array : Array[1..10] of My_Proc;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Sender is TBUtton) then
  (Sender as TBUtton).Caption := 'Merhaba';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  My_Array[1] := Button1Click;
  Button2.OnClick := My_Array[1];
end;
bu kod çalışır.Ama böyle bir yöntem neden lazım olsun ki anlamadım.Kolay gelsin..
Cevapla