case

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
egedenizi
Üye
Mesajlar: 38
Kayıt: 25 May 2005 02:01

case

Mesaj gönderen egedenizi »

Herkese Merhaba
Benim bir array[1..26]of string ('birinci','ikinci','ucuncu'......)tanımlı dizim ve aynı isime sahip procedurlerim var.
for n:=1 to 26 do
begin
case n of
1:birinci;adlı procedure
2:ikinci;adlı pro
3:ucuncu;adlı pro
end;
end;

Ben bu biçimde caseleri dolduruyom.Güzel bir görünüm oluşturmuyor.
Hele arrayin içindeki değer daha da aratacak olursa case de ona bağlı olarak şişiyor.

Bu biçimde caseleri doldurmadan yani case kullanmadan istenilen şarta göre procedurelere ulaşabilirmiyiz.Teşekkürler....
metinkorkmaz
Üye
Mesajlar: 46
Kayıt: 25 May 2005 09:08
Konum: izmir

Mesaj gönderen metinkorkmaz »

..........
type
yordam = procedure;
var
yordamliste : array [1..4] of yordam;
s : string;

procedure yordam1;
begin
s:=s+#13+'1';
end;

procedure yordam2;
begin
s:=s+#13+'2';
end;

procedure yordam3;
begin
s:=s+#13+'3';
end;

procedure yordam4;
begin
s:=s+#13+'4';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
begin
s:='';
yordamliste[1]:=yordam1;
yordamliste[2]:=yordam2;
yordamliste[3]:=yordam3;
yordamliste[4]:=yordam4;

for i:=1 to 4 do
begin
if assigned(yordamliste) then // bu satır olmazsa başın agrir
yordamliste;
end;
showmessage(s);
end;



Düşündügün buna benzer birşey mi?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

veya

Kod: Tümünü seç

procedure Bir;
begin
  ShowMessage('Bir');
end;

procedure Iki;
begin
  ShowMessage('İki');
end;

procedure Uc;
begin
  ShowMessage('Üç');
end;

const
  Procs : array[1..3] of procedure = (Bir, Iki, Uc);
  I: Integer;
begin
  for I:= 1 to 3 do
    Procs[I];
end;
Bu tip kullanımda procedure'ler parametre alamaz. Class methodlarına bu şekilde erişilemez. procedure of object tipinde tanımlanmaları gerekir. Ayrıca virtual veya dynamic method'lara erişirken VMT'ye ulaşmak gibi bazı hileler kullanmalısın.
egedenizi
Üye
Mesajlar: 38
Kayıt: 25 May 2005 02:01

Mesaj gönderen egedenizi »

Çok Teşekkür ederim.Beni büyük dertten kurtardınız.
Saygılar ve sevgiler.........
Cevapla