Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Änderung der Caption Eigenschaft von buttons als Schleife
forerunner - So 18.04.04 15:40
Titel: Änderung der Caption Eigenschaft von buttons als Schleife
Habe mal ne Frage... Wollte das Spiel Mastermind programmieren. Vier Buttons nebeneinander. Wenn man auf einen Butten mehrmals klickt sollte es so ablaufen:
Ohne Klick ist caption vom Button "---"
beim 1. Klick "-1-"
beim 2. Klick "-2-"
beim 3. Klick "-3-"
beim 4. Klick "-4-"
und dann wieder die ANzeige vom 1. Mal klicken...
wie realisiere ich das mit der programmiersprache Delphi? mit IF THEN ELSE wird man ja nicht weit kommen, oder?
ACHTUNG: Hier schreibt ein Delphi-Newbie :-)
Danke für eure Antworten...
Christian S. - So 18.04.04 16:10
Hallo!
Zwei Sachen vorweg:
1. :welcome:
2. Bitte wähle einen Titel, der etwas über das wirkliche Problem aussagt. Es sollte zumindest klar werden,
was denn das Problem ist. Einfach in Deinem ersten Beitrag auf "edit" klicken.
Nun zur Lösung:
Wenn Du nicht für jeden Button eine globale Variable einrichten möchtest, dann kannst Du es so machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure increaseNumber(theButton : TButton); var current : Integer; begin if theButton.Caption = '---' then theButton.Caption := '-1-' else begin current := StrToInt(Copy(theButton.Caption, 2,1); current := (current mod 4) +1; theButton.Caption := '-' + IntToStr(current) +'-'; end; end; |
Habe ich aus dem Kopf getippt, können also noch Fehler drin sein.
forerunner - Mo 19.04.04 16:49
| Peter Lustig hat folgendes geschrieben: |
Delphi-Quelltext 1:
| current := (current mod 4) +1; |
|
Danke für die Hilfe. Es funktioniert!!! aber trotzdem wüsste ich gern, was in dieser Zeile passiert...
Christian S. - Mo 19.04.04 17:04
Hallo!
Kein Problem:
"current mod 4" ergibt den Rest der Division von current durch 4. Dieser Rest ist ein Wert zwischen 0 und 3. Wenn current zwischen 1 und 3 liegt, dann ist der Rest gleich current. Nur wenn current = 4 ist, dann ist der Rest = 0. (Auch bei Vielfachen von 4, aber die werden hier nicht erreicht.)
Zusammen mit dem +1 dahinter wird current, wenn es zwischen 1 und 3 liegt, um eines erhöht und wenn es 4 ist, auf 1 gesetzt.
Nochmal als Schema:
Quelltext
1: 2: 3: 4:
| 1 mod 4 = 1 --> (1 mod 4)+1 = 2 2 mod 4 = 2 --> (2 mod 4)+1 = 3 3 mod 4 = 3 --> (3 mod 4)+1 = 4 4 mod 4 = 0 --> (4 mod 4)+1 = 1 |
Hoffe, ich habe das gut erklärt.
MfG
Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!