Autor Beitrag
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: 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



BeitragVerfasst: 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.
ausblenden 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
    { Private-Deklarationen }
    FIndex: integer;
  public
    { Public-Deklarationen }
  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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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
ausblenden 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



BeitragVerfasst: Fr 30.01.09 10:33 
Wozu den Sender auswerten, wenn es sich um ein und denselben Button handelt? :gruebel:

[edit]
Zitat:
ausblenden Delphi-Quelltext
1:
case Button1.Tag of  //nicht is					
[/edit]
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 30.01.09 10:59 
Moin und :welcome: im Forum!

user profile icontraceurmicha hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 30.01.09 11:00 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Wozu den Sender auswerten, wenn es sich um ein und denselben Button handelt? :gruebel:

[edit]
Zitat:
ausblenden Delphi-Quelltext
1:
case Button1.Tag of  //nicht is					
[/edit]
Schon richtig, ich wollt's nur der vollständigkeit halber erwähnen ;)

wegen dem is/of: ADA hat die Syntax
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case var is
  when 1 =>
    foo;
  when others =>
    ba;
end case;
Daher meine verwirrung, sry :mrgreen:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
traceurmicha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: Do 12.02.09 14:03 
Herzlichen Dank für eure Antworten, kamen mir alle sehr entgegen und mein problem hat sich gelöst!^^