bileşenlere index numarası vermek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mcwalles
Üye
Mesajlar: 3
Kayıt: 20 Nis 2005 09:42

bileşenlere index numarası vermek

Mesaj gönderen mcwalles »

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.
En son mcwalles tarafından 03 Eki 2006 12:54 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

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.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

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

Kod: Tümünü seç

for i:=1 to 5
  Form1.FindCompanent('lb'+strtoint(i)).caption := 'A';
Kolay gelsin.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Labellerin tag özelliklerini bu amaç için kullanabilirsiniz.
mcwalles
Üye
Mesajlar: 3
Kayıt: 20 Nis 2005 09:42

Mesaj gönderen mcwalles »

NewMember yazdı:Labellerin tag özelliklerini bu amaç için kullanabilirsiniz.
arkadaşım galiba aradıgım bu ama bir ornek verirsen sevinirim.

teşekkur ederim.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

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.

Kod: Tümünü seç

Label1.tag:=1;
Label2.tag:=2;
gibi.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

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. :!:

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;
Resim
Resim ....Resim
Cevapla