components
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 52
- Kayıt: 03 May 2005 06:16
components
Herkese merhaba hemen sorunuma geçmek istiyorum.
böyle bir tanımlamam var.
butonlar=array[1..50]of tbutton
var
abutton:butonlar
a,n:integer;
amacım abuton'a formdaki butonları yazdırmak. button1,button2,button3v.b
for a:=0 to componentcount-1 do
begin
if components[a]is tbutton then begin n:=n+1;abutton[n]:=??????
end;
components kullanarak bunu becermedim.
ama bilgisayarda denedim teker teker abutton[1]:=button1;abutton[2]:=button2;diye yazdırılabiliyor
amacım abutonu kullanarak işlem yapmak istiyorum
örneğin abutton[1].caption v.b gibi Herkese sevgi ve saygılar....
böyle bir tanımlamam var.
butonlar=array[1..50]of tbutton
var
abutton:butonlar
a,n:integer;
amacım abuton'a formdaki butonları yazdırmak. button1,button2,button3v.b
for a:=0 to componentcount-1 do
begin
if components[a]is tbutton then begin n:=n+1;abutton[n]:=??????
end;
components kullanarak bunu becermedim.
ama bilgisayarda denedim teker teker abutton[1]:=button1;abutton[2]:=button2;diye yazdırılabiliyor
amacım abutonu kullanarak işlem yapmak istiyorum
örneğin abutton[1].caption v.b gibi Herkese sevgi ve saygılar....
Kod: Tümünü seç
for a:=0 to componentcount-1 do
begin
if components[a] is tbutton then
begin
abutton[a]:=Tbutton(components[a]).name;
end;
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
-
- Üye
- Mesajlar: 52
- Kayıt: 03 May 2005 06:16
@vedatkaba yanlışlıkla Name yamış zaten, Name'i sil birdene banada çalışır gibi geldi ayrıca buttonların tag propertysini kulanarakta olabilir, buttonların tag'ını forma koymadan ayarlamalısın (veya runtime farketmez)Teşekkür ederim.Ben bunu denedim.Componentin ismiyle işlem yaptıramıyorsun.
abutton[button1.tag].caption := '1. butonum';
gibi bir yöntemide dene, sana bi fikir verir belki
Bileşeni create etmeden diziye yükleyebileceğinizi zannetmiyorum.sizin orda yaptığınız nasıl olmuş onuda anlamadım ..
abutton[1]:=button1; diyerek oldu diyorsunuz ama nasıl...create etmeden olmaz gibime geliyor.[/code]
abutton[1]:=button1; diyerek oldu diyorsunuz ama nasıl...create etmeden olmaz gibime geliyor.[/code]
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
-
- Üye
- Mesajlar: 52
- Kayıt: 03 May 2005 06:16
Kod: Tümünü seç
BtnNum:=0;
for a := 0 to componentcount - 1 do
if components[a] is tbutton then
begin
inc(BtnNum);
if BtnNum>50 then
begin
//butun dizisi 50 elemanlı tanımlandıgı icin
//51. eleman varsa hata verecektir.
break;
end;
abutton[BtnNum] := components[a];
end;
BtnNum, eklenen buton sayısı, bunu da degisken olarak tanımlaman lazım tabiki.
hangi butona nasıl eriseceksin simdi...
abutton[11] ile o butona erisip istedigin islemi yapabilirsin
ama sıra numarasını bilmiyorsan Name ozelligini yada captionlarını teker teker karsılastırarak erismen gerek.
Not: TButon tipindeki degisken aslında bir pointerden ibaret
hafızada create edilmis bir butonun ismi bir TButon degiskene direk atanınca aslında o butonun hafızadaki adresini bu pointer icine yazmıs oluyorsunuz.
ÜŞENME,ERTELEME,VAZGEÇME
-
- Üye
- Mesajlar: 25
- Kayıt: 27 Nis 2005 02:09
kolay gelsin
tanımladığın butonlar değişkeni zaten bir dizi değilmi
değişkenden değişken türetmişsin
nasıl çalıştı anlayamadım
şöyle tekrar denermisin
--
procedure DugmeleriBul(var Dizi:array of TButton);
var
sayac,dsayisi:integer;
begin
dsayisi:=0;
for sayac:=0 to componentcount-1 do
begin
if components[sayac] is TButton then
begin
dizi[dsayisi]:=(components[sayac] as TButton);
dsayisi:=dsayisi+1;
end;
if dsayisi>50 then
exit;
end;
end;
--
daha güzel ve sağlıklı bir yöntem ise şu olabilir:
--
var
Dugmeler:TList; //global değişken
for sayac:=0 to componentcount-1 do
if components[sayac] is tbutton then
dugmeler.add(components[sayac]);
--
not:bu kodları denemedim hata verirse birlikte bulmaya çalışırız.
tanımladığın butonlar değişkeni zaten bir dizi değilmi
değişkenden değişken türetmişsin

şöyle tekrar denermisin
--
procedure DugmeleriBul(var Dizi:array of TButton);
var
sayac,dsayisi:integer;
begin
dsayisi:=0;
for sayac:=0 to componentcount-1 do
begin
if components[sayac] is TButton then
begin
dizi[dsayisi]:=(components[sayac] as TButton);
dsayisi:=dsayisi+1;
end;
if dsayisi>50 then
exit;
end;
end;
--
daha güzel ve sağlıklı bir yöntem ise şu olabilir:
--
var
Dugmeler:TList; //global değişken
for sayac:=0 to componentcount-1 do
if components[sayac] is tbutton then
dugmeler.add(components[sayac]);
--
not:bu kodları denemedim hata verirse birlikte bulmaya çalışırız.