![]() |
InputQuerry-Fenster erscheint nicht
Liebe Delphi-Community,
ich verwende in meinem Delphi-Programm zur Eingabe einer einzelnen Zahl die Funktion InputQuery. Auf meinen PC und auch auf dem PC anderer User klappt das, wie erwartet. Auch bei einer Kollegin klappte das Ganze zwei Tage, aber jetzt erscheint das Fenster einfach nicht mehr. Eigentlich muss man das Fenster ja auch mit "Ok" oder "Abbrechen" verlassen, bevor man Weiterarbeiten kann. Aber auch das ist an diesem PC nicht erforderlich. Ich bin hilflos! Habt Ihr irgendeine Idee? |
AW: InputQuerry-Fenster erscheint nicht
Grundsätzlich ist InputQuery eine stinknormale TForm, welche mit ShowModal angezeigt wird, und sollte relativ wenige Probleme verursachen.
(entgegen TaskDialog, wenn jemand so schlau sein will und z.B. die Designs im Windows abschaltet) Wann rufst du diese Funktion auf? Doch nicht etwas beim Schließen einer anderen Form? (im oder vor/nach einem Destroy/Free, OnClose usw.) Und du bist dir natürlich auch sicher, dass dein Code mit dem InputQuery wirklich ausgeführt wird? |
AW: InputQuerry-Fenster erscheint nicht
Hallo himitsu,
danke für Deine Antwort. Das Fenster wird in einer Prozedur aufgerufen, welche bei Anwahl eines Menüpunktes eines PopUpMenues ausgeführt wird. Das PopUpMenue erscheint nur, wenn eine AktLine ausgewählt wurde. Demzufolge muss AktLine <> Nil erfüllt sein. (Ich hätte diese Abfrage eigentlich auch weglassen können.)
Delphi-Quellcode:
procedure TMainForm.LineShiftClick(Sender: TObject);
var ShiftBy:Double; Txt : String; begin if AktLine <> Nil then begin ShiftBy:=10; Txt:=FloatToStr(ShiftBy); if InputQuery('Leitung verschieben', 'Verschieben der Leitung um [m]:',Txt) and TryStrToFloat(Txt, ShiftBy) then begin AktLine.ShiftLine(ShiftBy); IsModified:=True; WorldBox.Invalidate; end; end; end; |
AW: InputQuerry-Fenster erscheint nicht
Zitat:
Vor allem da es keine Rückmeldung gibt, dass diese Funktion bei NIL still und heimlich garnichts macht. (ELSE + Fehlermeldung) Und natürlich auch nicht, wenn eine ungültige Zahl eingegeben wurde. :freak: Oder einfach mal andersrum, also garnicht erst ausführen lassen (Menüpunkt deaktivieren), wenn nichts gemacht werden kann/soll.
Delphi-Quellcode:
// ins OnPopup des PopupMenü
LineShift.Enabled := Assigned(AktLine); |
AW: InputQuerry-Fenster erscheint nicht
Hallo himitsu,
danke noch mal, dass Du Dir die Zeit nimmst, darüber nachzudenken. Nach dem Schreiben meiner letzten Antwort, habe ich auch in Betracht gezogen, dass mit der Zuweisung zu AktLine etwas nicht stimmen könnte und diese u.U. doch NIL ist. Es wäre ja die (einzige?) sinnvolle Möglichkeit, warum das InputQuerry-Fenster nicht angezeigt wird. Wie Du vorgeschlagen hast, habe ich deshalb im else-Zweig eine Meldung eingefügt um zu sehen, ob der Programmablauf evtl. doch dort landet. Leider kann ich das bei mir nicht testen (da das Programm bei mir fehlerfrei läuft). Meine Kollegin, die dieses Problem hatte, scheint heute Brückentag zu haben. Ich melde mich dann in den nächsten Tagen noch mal, wie die Sache ausgegangen ist. |
AW: InputQuerry-Fenster erscheint nicht
Ich habe wie gesagt, das Programm mit einer Meldungsfenster in der else-Schleife neu compiliert und meiner Kollegin (bei der das InputQuerry-Fenster nicht erschien) zur Verfügung gestellt.
Jetzt läuft das Programm auch bei Ihr fehlerlos, d.h. das InputQuerry-Fenster erscheint wie gewünscht. Ich kann mir eigentlich nicht erklären, warum das vorher nicht klappte und jetzt dann doch funktioniert. Beruhigt wäre ich erst, wenn ich den Grund kennen würde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz