AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

InputQuerry-Fenster erscheint nicht

Ein Thema von SteffenSchm · begonnen am 2. Okt 2023 · letzter Beitrag vom 5. Okt 2023
Antwort Antwort
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

InputQuerry-Fenster erscheint nicht

  Alt 2. Okt 2023, 09:46
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?
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#2

AW: InputQuerry-Fenster erscheint nicht

  Alt 2. Okt 2023, 11:30
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: InputQuerry-Fenster erscheint nicht

  Alt 2. Okt 2023, 13:21
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;
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#4

AW: InputQuerry-Fenster erscheint nicht

  Alt 2. Okt 2023, 13:35
Zitat:
if AktLine <> Nil then
Und du bist dir sicher, dass es wirklich assigned ( <>nil ) ist?
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.

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);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: InputQuerry-Fenster erscheint nicht

  Alt 2. Okt 2023, 15:47
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.
Steffen
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: InputQuerry-Fenster erscheint nicht

  Alt 5. Okt 2023, 17:23
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.
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz