Pgm içerisindeki nesneleri parametrik olarak kullanabilme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ADNAN
Üye
Mesajlar: 57
Kayıt: 19 Haz 2003 06:57
Konum: ISTANBUL

Pgm içerisindeki nesneleri parametrik olarak kullanabilme

Mesaj gönderen ADNAN »

On click veya diğer event lerdeki kontrollerde TComponent(Sender).Name
ve / veya benzeri kodlar kullanarak gerek üzerinde bulunduğumuz nesneyi belirleyebiliyoruz. Veya bunun üzerinde işlem yapabiliyoruz.

Benim öğrenmek istediğim parametrik olarak bir nesneye ulaşabiliyor muyuz??

Örnek : Component >>> Panel1 den hareket ederek ..........

I := 0;

ATEXT := TComponent(Sender).Name;
I := StrtoInt(Copy(ATEXT,6,2));

Test := 'M' + InttoStr(I);

BTEXT := TLabel(TEST).Caption ; // Bu koda derleme hatası vermiyor fakat çalışma anında access violation hatası veriyor.

>>> Ulaşılmak istenen; M1 Label ın font, caption vs özellikleri ..


Kolay gelsin....
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

BTEXT := TLabel(TEST).Caption ;
burada TEST string bir değişken. bunu bu şekilde kullanamazsın TEST bir pointer olmak zorunda. bu satırdan önce componentlist içinden, ismi ile component ı bulup onu kullanmalısın.

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
:ara findcomponent
sanırım senin işini görecek bir şey.
kabaca şöyle olması lazım

Kod: Tümünü seç

BTEXT := TLabel(findcomponen(TEST)).Caption ;
diğer örnekleri bi incele.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ADNAN
Üye
Mesajlar: 57
Kayıt: 19 Haz 2003 06:57
Konum: ISTANBUL

Mesaj gönderen ADNAN »

Yardımlarınız için çok teşekkürler...
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Selam

yazımına ara verdiğim okey programımdan bir bölüm. componentleri değişken bir şekilde seçip özelliklerine müdahale edebiliyorsun.

iyi çalışmalar.

öncelikle değişken tanımlarını yapın.

Kod: Tümünü seç

var
c: TComponent;
i:integer;
componentin numarasını bulup değişkene akatarması için bu function'u yazın

Kod: Tümünü seç

function GetComponent(AParent: TComponent; Name: string): TComponent;
var
   n: integer;
begin
     Result:=nil;
     if AParent.ComponentCount=0 then Exit;
     for n:=0 to AParent.ComponentCount-1 do
         if CompareStr(AParent.Components[n].Name,Name)=0 then
            Result:=AParent.Components[n];
end;
ıstakadaki 30 tane taşı temsil eden image nesnelerinin içieriğini temizleyen kod.

Kod: Tümünü seç

procedure tform1.istaka_temizle;
begin
  for i:=1 to 30 do begin
    c:=GetComponent(Self,'istaka_tasi'+inttostr(i));
    Timage(c).picture:=nil;
    Timage(c).Tag:=0;
    Timage(c).Update;
  end;
end;
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Cevapla