Case

0

Czy ktos moze mi wyjasnic strokture case. Widzialem w paru zrodlach jej urzycie ale jak chcialem sam jej urzyc to nic mi z tego nie wychodzilo--pozdrawiam PEDROS {hello}
Delphi6

0

Popatrz masz wartość

a : integer;

teraz np. masz jakieś 3 buttony każdy z nich po kolei ustawia zmienną

button1 a := 0;
button2 a := 1;
button3 a := 2;

i chcesz wiedzieć jaki button został wciśnięty (więc nie chcąc namieszać kodu do każdego osobnego buttona typu showmessage('Został nacisnięty button1');, showmessage('Został nacisnięty button2'); itp.)

robisz takie coś

public
procedure sprawdz;

implementation
i te {$r * dfm}

procedure [tform1].sprawdz;
begin
case a of
0: showmessage('Został wciśnięty button'+inttostr(a+1));
1: showmessage('Został wciśnięty button'+inttostr(a+1));
2: showmessage('Został wciśnięty button'+inttostr(a+1));
end;

end;

teraz struktura: case of zastępuje mozolne wpisywanie

if then else

np.
zamiast

if a=0 then
begin
showmessage('Został wciśnięty button1');
end;
if a=1 then
begin
showmessage('Został wciśnięty button2');
end;
if a=2 then
begin
showmessage('Został wciśnięty button3');
end;

wystarczy jedna funkcja case

a teraz przykład czegoś naprawdę wartościowego:

masz takie coś

procedure blabla;
begin
if a = 0 then
begin
a := 1;
end;

if a = 1 then
begin
a:=2;
end;

end;

poweidzmy że nie chcesz aby warunek jeżeli a jest 0 to jest 1 nie pokazywał ci ze a = 2 :)

iteligencja podsuwa :P

procedure blabla;
begin
if a = 1 then
begin
a:=2;
end;

if a = 0 then
begin
a := 1;
end;

end;

ale po co aż tyle pisać jak:
możesz to zastąpić;

case a of
0: cos tam
1: cos tam
end;

lub

case a of
1: cos tam
0: cos tam
end;

Mniej pisania

wytłumaczenie po co to
nie nie będę tłumaczył :]

case a of *wywołanie tej funkcji
0: showmessage('0'); *jezeli a jest 0 to wyswietl 0
1: showmessage('1'); //itp.
end;/zakonczenie funkcji

pamiętaj jedno jezeli a to string to nie będziesz mógł użyć case of

Coś nie jasne??? :)

0

To juz wiem dlaczego nie chcialo mi dzialac. Chcialem uzyc stringa. --pozdrawiam PEDROS {hello}
Delphi6

0

Pedros napisał:
To juz wiem dlaczego nie chcialo mi dzialac. Chcialem uzyc stringa.
&gt
Programuj w Basicu, tam mozna. --Pawel {Delphi6 }

Po pierwsze: naciśnij F1

0

W instrukcji Case of mozesz uzyc tez else:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_F1:showmessage('Wcisnales F1');
VK_F2:showmessage('Wcisnales F2');
VK_F3:showmessage('Wcisnales F3');
else
showmessage('Wcisnales inny klawisz');
end;
end;

Pozdrawiam {hello}

0

Spójrz na poniższy przykład:

case Ilosc_paliwa of
0: paliwo:=0;
10: paliwo:=1;
50: paliwo:=3;
end;

Wytłumaczenie:
Patrz jezeli ilosc paliwa bedzie 0 to zostanie wywołana funkcja paliwo:=0.
Wynik musi byc typu integer lub byte

Pozdrawaim:)--

1 użytkowników online, w tym zalogowanych: 0, gości: 1