Mehrfach Befehele oder so

Rund um die LCL und andere Komponenten
Antworten
Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Mehrfach Befehele oder so

Beitrag von Napster »

Wie schon gesagt, das ist schwer zu erklären, aber ich habe folgendes Problem:
Ich will einen Button so kunfigurieren, dass immer wenn ich drauf klicke sich ein Wort in einem Panel ändert.

So dass muss man ja schreiben:

begin
if Button1.tag =0 then
begin
Panel1.caption := 'Hallo';
Button1.tag := 1
end else
begin
Panel1.caption := 'Wie gehts?';
Button1.tag := 0
end
end;


aber ich kann max 2 verschiedene aufschriften machen
also das geht nicht:

begin
if Button1.tag =0 then
begin
Panel1.caption := 'Hallo';
Button1.tag := 1
end else
begin
Panel1.caption := 'Wie gehts?';
Button1.tag := 2
end else
begin
Panel1.caption := 'Heute 20.00 Uhr bei mir?';
Button1.tag := 0
end;



Wie kann ich das nun machen, dass immer wieder nachdem auf den Button geklickt wird etwas anderes da steht?

BITTE HELFT MIR^^

Gruß NaP$TeR
Zuletzt geändert von Napster am So 5. Nov 2006, 20:49, insgesamt 1-mal geändert.

iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Beitrag von iaby »

du musst noch weiter abprüfen, also so:

Code: Alles auswählen

end else if Button1.tag=1 then
begin
Panel1.caption := 'Wie gehts?';


Das ganze dann auch noch für =2 eben!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich würd das anders lösen:

Code: Alles auswählen

case Button1.Tag of
0:Panel1.Caption := '1';
1:Panel1.Caption := '2';
2:Panel1.Caption := '3';
3:Panel1.Caption := '4';
4:Panel1.Caption := '5';
end;
Button1.Tag := Button1.Tag+1;
if Button1.Tag > 4 then
  Button1.Tag := 0;

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

thx. christian deine version sieht auch net schlecht aus blos versteh ich die nicht.^^ :)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

case ist euine Fallunterscheidung die allerdings nur mit Numerischen sachen funktioniert

Übersetzt ungefähr

wähle Button1.Tag aus
0:
1:
...

Wenn Button1.Tag 0 ist wird Caption von deinem Panel '1'
Wenn Button1.Tag 1 ist wird Caption von deinem Panel '2'
u.s.w

danach erhöhe ich einfach den tag.Button1 um 1
und prüfe ob er 4 überschritten hat,
ist dies der Fall wird er auf null gesetzt.

Probiers einfach mal aus ist genau das was du machen wolltest nur
halt etwas eleganter als mit if then statements gelöst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

THXXX

Beitrag von Napster »

THX dank der übersetzung hats geklappt^^.
ich hab ein vokabeltrainer programmiert. ist zwar ein bisschen primitiv aber er funktioniert. deine variante hab ich beim vok-trainer nicht benutzt werde sie aber gleich ausprobieren.^^

Danke an alle. Euch kann man weiter empfehlen^^


mfg NaP$TeR

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Christian hat geschrieben:case ist eine Fallunterscheidung die allerdings nur mit


Falsch Christian, ganz falsch, das geht auch mit

Code: Alles auswählen

var
  c: char;
 
begin
   c:= #33;
   case c of
     #0..#31: begin
       // tu was
     end;
     #32:{blabla};
     #33..#127:{blabla};
   end; // of case
end; // of proc


Abzählbar muß es heißen, das funzt auch mit selbstdefinierten Sets, die sind ebenfalls Kardinal also abzählbar.

Antworten