Autor Beitrag
DerDude
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 15.01.04 23:57 
Hi,
ich bins wieder. Habe schon länger das Problem, dass ich nicht weiß, wie ich machen kann, dass wenn man bei einer InputBox auf Cancel klickt, nicht doch das Selbe erscheint wie wenn man auf OK klickt.
Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button37Click(Sender: TObject);
var
text: String;
begin
  InputBox('Toller Test','Text eingeben','Toller Text')
  Text:=InputBox;
  Memo1.Lines.Add('Text');
end;


Hier macht es keinen unterschied ob ich auf Cancel oder auch OK klicke... wie kann ich das ändern, bzw. was habe ich vergessen?
danke schonmal im Vorraus,
der Dude

Moderiert von user profile iconPeter Lustig: BBCode aktiviert, damit Delphi-Tags nutzbar
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 16.01.04 00:18 
Hallo!

Die Delphi-Hilfe schlägt vor, in einem solchen Fall die Funktion "InputQuery" anstatt "InputBox" zu verwenden.

MfG
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.01.04 00:34 
LOL:
ausblenden Delphi-Quelltext
1:
Memo1.Lines.Add('Text');					

Nimm mal die Hochkommas weg. Du schreibst immer die zeichenfolge "Text" in das Memo. Eigentlich müsste dir der Kompiler gesagt haben mit einer Warnung, dass die Variabale Text nie benutzt wird, bzw es sollte gar kein Punkt rechts neben der Zeile sein.

Noch was. was soll das werden:
ausblenden Delphi-Quelltext
1:
Text := Inputbox;					

Mir ist keine überladene Version von Inputbox ohne Parameter bekannt. Lass die Zeile mal weg. Warum meckert da eigentlich nicht dein Kompiler?
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Fr 16.01.04 00:41 
Luckie hat folgendes geschrieben:
Lass die Zeile mal weg

dann wird es aber auch noch nicht funktionieren ;)
so muss es aussehen ;) (ich weiß, dass du das meintest, aber er evtl nicht ;) )
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button37Click(Sender: TObject);
var
text: String;
begin
  Text:=InputBox('Toller Test','Text eingeben','Toller Text')
  Memo1.Lines.Add(Text);
end;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.01.04 00:45 
Das habe ich eigentlich vorausgesetzt, dass er soweit denkt. Und die Hilfe gibt es ja auch noch. ;)
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 16.01.04 09:22 
Hallo!

@Luckie: dann macht es aber immer noch keinen Unterschied, ob OK oder Cancel oder sonstwas (wo immer dieser Button ist) gedrückt wird. InputBox kann dieses Problem nicht lösen.

MfG
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.01.04 11:07 
Aber das was er hatte, ging nun gar nicht. Und die Inputbox liefert den standard Text zurück, wenn man auf "Abbrechen" klickt.
DerDude Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Fr 16.01.04 11:08 
hi, erst mal sorry, ich habe natürlich folgenden Code gemeint:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button37Click(Sender: TObject); 
var 
text: String
begin  
  Text:=InputBox('Toller Test','Text eingeben','Toller Text'); 
  Memo1.Lines.Add('Text'); 
end;


und er funktionier auch. Aber, wie Peter Lustig schon richtig bemerkt hat, ist das auch nicht mein Problem, sondern einfach nur, warum ich nicht auf Cancel klicken kann. Wenn ich auf OK klicke, dann kommt alles so wie es soll, aber wenn ich auf Cancel klicke, schreibt er mir das, was im als Value steht (in dem Fall 'Toller Text')...
Mit InputQuery weiß ich nicht, was ich verändern muss... wo ist der unterschied zur Inputbox? Ich meine, sie hat ja einen cancel button, und der muss ja zu irgendwas gut sein!

Moderiert von user profile iconMotzi: BBCode aktiviert, damit Delphi-Tags nutzbar
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 16.01.04 11:26 
Hallo!

DerDude hat folgendes geschrieben:
hi, erst mal sorry, ich habe natürlich folgenden Code gemeint: {...} und er funktionier auch.

Das glaube ich nicht da du nicht die Variable Text sondern die Zeichenkette Text in das Memo einfügst. Schau dir mal den Hinweis von Luckie oben an.

DerDude hat folgendes geschrieben:
Mit InputQuery weiß ich nicht, was ich verändern muss... wo ist der unterschied zur Inputbox?

Schau dir mal die Hilfe von InputBox und von InputQuery an. Da siehst du dann den Unterschied. Meine Delphi Hiflfe (D7) enthält sogar ein Beispiel:
Delphi 7 Hilfe hat folgendes geschrieben:
Zu diesem Beispiel gehören eine Schaltfläche und eine Beschriftung (Label). Wenn der Benutzer auf die Schaltfläche klickt, wird ein Eingabedialog angezeigt. Wenn darin auf OK geklickt wird, erscheint der im Eingabefeld stehende String als Beschriftungstext im Formular. Wenn der Benutzer auf Abbrechen klickt, wird der Dialog geschlossen, und der Beschriftungstext bleibt unverändert.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  NewString: string;
  ClickedOK: Boolean;
begin
  NewString := 'Default String';
  Label1.Caption := NewString;
  ClickedOK := InputQuery('Input Box''Prompt', NewString);
  if ClickedOK then            { NewString enthält neue Eingabe }
    Label1.Caption := 'The new string is ''' + NewString + '''';
end;


Gruß
Tino
DerDude Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Fr 16.01.04 11:32 
supi,
hat geklappt (@ Tino)... dann werde ich auf InputQuery umateigen.Danke nochmal