Autor |
Beitrag |
DerDude
Hält's aus hier
Beiträge: 14
|
Verfasst: 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:
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 Peter Lustig: BBCode aktiviert, damit Delphi-Tags nutzbar
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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
|
Verfasst: Fr 16.01.04 00:34
LOL:
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:
Delphi-Quelltext
Mir ist keine überladene Version von Inputbox ohne Parameter bekannt. Lass die Zeile mal weg. Warum meckert da eigentlich nicht dein Kompiler?
|
|
Raphael O.
      
Beiträge: 1596
VS 2013
|
Verfasst: 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  )
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
|
Verfasst: 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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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
|
Verfasst: 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 
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 16.01.04 11:08
hi, erst mal sorry, ich habe natürlich folgenden Code gemeint:
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 Motzi: BBCode aktiviert, damit Delphi-Tags nutzbar
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: 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.
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 Label1.Caption := 'The new string is ''' + NewString + ''''; end; | |
Gruß
Tino
|
|
DerDude 
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 16.01.04 11:32
supi,
hat geklappt (@ Tino)... dann werde ich auf InputQuery umateigen.Danke nochmal
|
|