| Autor |
Beitrag |
traceurmicha
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Fr 30.01.09 08:49
Hey leute,
ich möchte ein Programm schreiben in dem ich mit einem Button verschiedene Antworten bekomme.
Also wenn ich das erste mal auf den Button1 klicke soll Antwort1 kommen, beim 2. Klick Antwort2 und so weiter. Doch iwie schaffe ich das nicht. ich habs mit ner case of anweisung versucht und auch mit ner Schleife und mit if then else Alternativen, aber ich komme nicht auf die lösung. kann mir jemand helfen?
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 30.01.09 08:50
Hi,
zählst du denn auch eine globale Variable hoch?
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 30.01.09 10:10
Bitte keine globalen Variablen, sondern private Felder nehmen (es sei denn, es geht um Referenzzählungen oder sowas). Hier mal ein kleines Beispiel, wie das aussehen könnte.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private FIndex: integer; public end;
...
implementation
...
const Antworten: array[0..2] of string = ('Antwort 1','Antwort 2','Antwort 3');
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(Antworten[FIndex]); inc(FIndex); if FIndex > High(Antworten) then FIndex := Low(Antworten); end; |
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.01.09 10:28
Man könnte in diesem Fall auch den Tag des Buttons nehmen, welcher ja mit 0 initialisiert wird und für solche Zwecke bestimmt nutzbar ist
Also wahlweise Delphi-Quelltext 1: 2: 3: 4: 5:
| Button1.Tag := Button1.Tag + 1; case Button1.Tag is 1: foo; 2: ba; end; | oder statt Button1 gleich (Sender as TButton).Tag nutzen 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 30.01.09 10:33
Wozu den Sender auswerten, wenn es sich um ein und denselben Button handelt?
[edit] | Zitat: | Delphi-Quelltext |
[/edit]
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 30.01.09 10:59
Moin und  im Forum!
traceurmicha hat folgendes geschrieben : | ich möchte ein Programm schreiben in dem ich mit einem Button verschiedene Antworten bekomme.
Also wenn ich das erste mal auf den Button1 klicke soll Antwort1 kommen, beim 2. Klick Antwort2 und so weiter. | Dazu haben wir einen FAQ-Eintrag, Beispiel B.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 30.01.09 11:00
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
traceurmicha 
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Do 12.02.09 14:03
Herzlichen Dank für eure Antworten, kamen mir alle sehr entgegen und mein problem hat sich gelöst!^^
|
|