merhaba arkadaşlar delphi de yeni sayılırım başlangıc için adam asma oyunu yapmak istiyorum fakat dongu içinde label oluşturmam gerek ve bu label ları vbdeki gibi index vererek dongu içinde kullanmam gerek. yardımcı olabilirmisiniz.
teşekkur ederim.
bileşenlere index numarası vermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
bileşenlere index numarası vermek
En son mcwalles tarafından 03 Eki 2006 12:54 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Lütfen forum kurallarını okuyup mesaj başlığınızı değiştiriniz...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Delphide bunu yapamazsınız. Ancak nesneleri sonradan create ederseniz array olarak başta tanımlayabilirsiniz.
FindCompanen komutunu kullanarak nesneleri buldurarak VB'dekine benzer bir yapı oluşturabilirsiniz.
mesala labellarınız adı lb1, lb2 lb3,... giib olsun
Kolay gelsin.
FindCompanen komutunu kullanarak nesneleri buldurarak VB'dekine benzer bir yapı oluşturabilirsiniz.
mesala labellarınız adı lb1, lb2 lb3,... giib olsun
Kod: Tümünü seç
for i:=1 to 5
Form1.FindCompanent('lb'+strtoint(i)).caption := 'A';
Mesela 3 tane labeli oluşturmuş olun. Sanırım bunu runtimede yapmak istiyorsunuz.Labelleri oluştururken de bunların tag özelliklerine atamalar yapın.
gibi.
Kod: Tümünü seç
Label1.tag:=1;
Label2.tag:=2;
Selam.
- Aşağıdaki örnek isteğini yerine getiren koddur.
- @mkysoft'un önerileri de doğrudur fakat bir form üzerinde nesne takibi yapmak bir adım daha ileri düzey bilgi gerektirir.
- Aşağıdaki örnekte açıklamaları aralara ekledim ama değişken sayıda eleman sayısı olan Label oluşturuyorsun.
- Adam asmaca oyunu dediğinden yola çıkarak, bunu defalarca kere tekrarlayacaksan her tekrarda, önce eski kurduğun sayı kadar döngü kurup mevcut oluşturmuş olduğun Label dizisi elemanlarını FREE etmen gerekir. Bunu önemle hatırlatırım.
- Aşağıdaki örnek isteğini yerine getiren koddur.
- @mkysoft'un önerileri de doğrudur fakat bir form üzerinde nesne takibi yapmak bir adım daha ileri düzey bilgi gerektirir.
- Aşağıdaki örnekte açıklamaları aralara ekledim ama değişken sayıda eleman sayısı olan Label oluşturuyorsun.
- Adam asmaca oyunu dediğinden yola çıkarak, bunu defalarca kere tekrarlayacaksan her tekrarda, önce eski kurduğun sayı kadar döngü kurup mevcut oluşturmuş olduğun Label dizisi elemanlarını FREE etmen gerekir. Bunu önemle hatırlatırım.

Kod: Tümünü seç
Var
Lab : Array of TLabel; // dynamic label array tanımladık
LabelSayisi,
Sayac : Integer;
begin
LabelSayisi := 10; // bu sayıyı kendin dinamik hale getireceksin
SetLength(Lab, LabelSayisi);
// array index 0'dan başlar toplam-1 'de biter bunu hep hatırla.
For Sayac := 0 to LabelSayisi-1 do begin
Lab[Sayac] := TLabel.Create(Self);
With Lab[Sayac] do begin
Parent := Form1;
AutoSize := False;
Left := 100 + (Sayac*50);
Width := 50;
Caption := IntToStr(Sayac);
end;
end;
// Kullanacağın zaman aşağıdaki gibi kullanırsın.
// Hatırlatma, 5 demek 6 ncı eleman demek!
Lab[5].Caption := 'ARMAN';
end;