zwykła pętla [uwaga autor nie rozumie słowa pętla. pq]

0

co tu jest zle ? (dziala tylko warunek pierwszy "if" oraz ostatni po "else")

//Dla przycisku:

if zmienna=1 then
podprogram_a;
if zmienna=2 then
podprogram_b
// ta pogrubiona część nie dziala (dlaczego??? program ją pomija)
else
podprogram_c;

działą tylko dla podprogramu_a , podprogramu_c , pomija podprogram_b -- dlaczego ????

Robiłem to na wiele możliwych sposobów, ale dla innych nie dziala znowu b i c ...
Pomocy

0

Jak dla mnie, to to powinno raczej wyglądać tak:
if zmienna=a then podprograma
else if zmienna=b then podprogramb
else podprogramc;
powinno działać. Ew. dla niektórych typów zmiennych możesz użyć instrukcji case (jak? F1)

0

teraz właśnie nie działa : podprogram_b i podprogram_c...

Nie wiem co jest grane :((

ble

0

A jaką wartość przyjmuje "zmienna"? Jeśli zmienna=a, to program NIE POWINIEN wywoływać procedur podprogramb i podprogramc.
P.S. Co to ma do pętli? Może po prostu piszesz nie to, co chcesz?

0

tak jak napisałem :

zmienna=1 lub 2 lub 3

Zmienne jest zadeklarowana globalnie (zmienna: integer), i jeśli klikne przycisk Button1 to przekazywana jest zmienna 1 , Button2 - to przekazywana jest zmienna -2 i Button3 - zmienna 3 przekazana.

na koniec jak klikne przycisk: Button4 to pobierana jest wartość zmiennej globalnej czyli 1,2 lub 3 (w zależności który przycisk kliknąłem) i w konsekwencji wykonywany jest podprogram odpowiedni : a,b, lub c

Działa mi tylko dla a i c , nie wiem dlaczego właśnie nie dizała dla b ?????

0

Fox nie pisz kolejnych topiców na ten sam temat.

0

Tak jest panie kapitanie i <ort>rozumiem</ort> słowo pętla a tu nie chodzi o pętle tylko o zjawisko nadprzyrodzone zapewne ... bo tyle osób rozumie tutaj pętle i żaden pomysł nie skutkuje, moze ktoś kto nie rozumie słowa : PĘTLA znajdzie odpowiedz ...

0

Popatrz lepiej czy ci się endy zgadzają, zwłaszcza jak masz złożone if then else. Sprawdz czy poprawnie przypisujesz zmiennej. Sprawdz wartość zmiennej przed tym if za pomocą breakpointu i debuggera ew za pomocą instrukcji kontrolnej. Zjawiska nadprzyrodzone są w programowaniu dużo rzadsze niż proste błędy.

0

A gdzie ty ustawiasz te zmienne i gdzie wklepales ten kod?

/* petla: fomcl */

0

Zrób:

case zmienna of
  1: podprogram_a;
  2: podprogram_b;
  3: podprogram_c;
end

tylko oczywiście zmnienna zmnienna ( :-D ) musi być globalna..... i tyle.... to musi działać. Pozdr.

0

Próbowałem też case i nie działa, moze dodam że te podprogramy_a,b i c zawierają instrukcje case dość długie (ale nie wiem czy to ma znaczenie)

0

Podejrzewam raczej że u Ciebie ten błąd jest spowodowany czymś innym niż "złym" działaniem warunków if. Może deklarujesz jeszcze zmienną lokalną w procedurze? jeśli Ci coś nie działa, bądź nie jesteś pewien jaki wynik otrzymujesz w danej chwili w danym miejscu to wstaw tam po prostu instrukcję showmessage która poinformuje Cię o tych wartościach. Przeanalizuj dokładnie ten kod i wydaje mi się że sam dojdziesz co u Ciebie jest źle.

<delphi> procedure TForm1.Button1Click(Sender: TObject); begin i:=1; sprawdz; end;

procedure TForm1.Button2Click(Sender: TObject);
begin
i:=2;
sprawdz;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
i:=3;
sprawdz;
end;
procedure sprawdz;
begin
case i of
1: showmessage('1');
2: showmessage('2');
3: showmessage('3');
end;
end;<delphi>

0

endrique, nie sądzisz że ShowMessage(IntToStr(i)) wystarczy? :-D

// ;-) - ŁF

0

case nie działa ... Może podam podprogram_a, pozostałe są podobne...
Wartości tych zmiennyc są przekazywane między unitami i w zależności od ich wartości 1,2 lub 3 wykonywany jest podprogram_a lub b lub c... (zmienna jest zadeklarowana w sekcji ,b>public</b>)

procedure tkolor.podprogram_a;
begin
case ColorGrid1.ForegroundIndex of
0:ustawienia.memo1.lines[13]:='color:#000000;';
1:ustawienia.memo1.lines[13]:='color:#800000;';
2:ustawienia.memo1.lines[13]:='color:#008000;';
... itd
end;
end;

0

No to już widać, gdzie masz błąd. Powinieneś napisać Form2.zmienna (czy jak tam ta druga formatka, w której sekcji pubic znajduje się ta zmienna się nazywa).

0

ok już dajmy sobie z tym spokój , ja wysiadam he ...

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