Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme bei Eingabe mit Inputbox (https://www.delphipraxis.net/86761-probleme-bei-eingabe-mit-inputbox.html)

daniel_0 19. Feb 2007 12:56


Probleme bei Eingabe mit Inputbox
 
Hi Leute!

ich hab ein kleines, aber irgendiwe sehr ärgerliches Problem mit der Inputbox und komme einfach nicht weiter.

Ich möchte einfach einen String mit wenigen Zeichen über eine Inputbox einlesen. Die Variable ist global deklariert! Die Inputbox wird beim Laden einer Form aufgerufen.
Sobald ich das Programm starte, erscheint die Box mit dem im Sourcecode vordefinierten Default Text.
klicke ich jetzt allerdings in das Textfeld der Inputbox, hängt sich das Programm auf. Die Systemauslastung des Prozesses steigt auf 100% und das Programm lässt sich nur noch über den Task Manager beenden.
Lege ich die Variable statisch, also direkt über eine Zuweisung aus dem Sourcecode fest, funktioniert alles wunderbar.

Ich werde euch den Sourcecode mal eben unter mein Problem stellen, vielleicht hat ja jemand von euch eine Idee, ich schätze dass die Lösung ganz einfach ist nur dass ich einfach nicht drauf komme.

Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  path:=Inputbox('Eingabe','Gib hier den Pfad an:','C:\');
  if fileexists(path + 'muh.txt') then
    stdMemo.Lines.LoadFromFile(path + 'Session.txt');
end;
Besten Dank!

DGL-luke 19. Feb 2007 12:58

Re: Probleme bei Eingabe mit Inputbox
 
Hallo,

das Problem liegt höchstwahrscheinlich nicht an diesem Code. Da kann ich keine Fehler entdecken. Versuche mal, das ganze ins OnFormShow zu verschieben.

daniel_0 19. Feb 2007 13:08

Re: Probleme bei Eingabe mit Inputbox
 
die Form ist zum einen unsichtbar, un zum zweiten hab ich nur formopen und formclose zu verfügung

aber ich verstehe immer noch nicht wieso diese inputbox sich aufhängt, ich habe sie in einem andere programm unter den gleichen voraussetzungen getestet un da geht alles :gruebel:

stahli 19. Feb 2007 13:16

Re: Probleme bei Eingabe mit Inputbox
 
Hallo Daniel,

versuch mal:
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  path:=Inputbox('Eingabe','Gib hier den Pfad an:','C:\');
  if fileexists(path + 'muh.txt') then
    sysutils.beep;
//    stdMemo.Lines.LoadFromFile(path + 'Session.txt');
end;
Es könnte evtl. sein. dass der Zugrif auf das Memo Probleme macht, da das übergeordnete Fenster nocgh nicht sichbar ist. Allerdings müsste dann eigentlich eine Fehlermeldung erscheinen!?

Alternativ setzt Du den beep hinter den Memoaufruf, dann siehst (hörst ;-) Du, ob das Programm bis dort hin funtioniert.

Stahli

daniel_0 19. Feb 2007 13:54

Re: Probleme bei Eingabe mit Inputbox
 
keine chance, also ich habe ja einen vordefinierten wert in der inputbox angegeben, wenn cih einfach nur auf ok drücke übernimmt er den wert, nur sobald ich einen eingabe machen will hängt er sich auf? WTF^^

ich glaube dafür gibt es keine lösung oder?

DGL-luke 19. Feb 2007 13:59

Re: Probleme bei Eingabe mit Inputbox
 
Was passiert, wenn du keinen Vorgabewert übergibst? (Einfach '' übergeben)

marabu 19. Feb 2007 14:00

Re: Probleme bei Eingabe mit Inputbox
 
Hallo,

die Ereignisbehandlung für OnCreate() der Form sollte keine Interaktion mit dem Benutzer enthalten. Das ist doch auch gar nicht nötig. Die VCL sieht dieses Ereignis vor, damit der Entwickler zu diesem Zeitpunkt Objekte instanzieren kann, die nicht durch das VCL-Streaming instanziert werden können. Aber auch wenn man das Konzept ignoriert: Der Aufruf von IntputBox() alleine kann nicht das im Betrag #1 beschriebene Verhalten begründen. Das kann man auch sehr einfach selbst ausprobieren, indem man eine leere Form hernimmt und in deren OnCreate() InputBox() aufruft.

Freundliche Grüße

daniel_0 19. Feb 2007 14:02

Re: Probleme bei Eingabe mit Inputbox
 
danke für den hinweis marabu, nur leider habe ich in meinem programm keine andere möglichkeit eine eingabe zu tätigen :(

shmia 19. Feb 2007 14:12

Re: Probleme bei Eingabe mit Inputbox
 
Zitat:

Zitat von daniel_0
... nur leider habe ich in meinem programm keine andere möglichkeit eine eingabe zu tätigen :(

Das glaubt du nur; du hast dich nur in deinem Gedankengebäude festgefressen. Es gibt (fast) immer andere Möglichkeiten, vorallem beim Design der Benutzeroberfläche.
Zitat:

Zitat von stahli
Es könnte evtl. sein. dass der Zugrif auf das Memo Probleme macht, da das übergeordnete Fenster nocgh nicht sichbar ist.

Da hat stahli sicher Recht! Das Memo ist noch nicht sichtbar; das Formular und auch das Memo haben noch kein Window-Handle. Also darf man StdMemo.lines noch nicht befüllen!!!
Selbst Exceptions können zu diesem frühen Zeitpunkt möglicherweise noch nicht richtig angezeigt werden.
Speichere die Datei nicht in StdMemo.lines sondern in einem selbst erzeugten TStringList Objekt, dann klappts.

daniel_0 19. Feb 2007 14:19

Re: Probleme bei Eingabe mit Inputbox
 
also ich denke wir kommen hier net weiter ;) ich kann euch aber leider nicht da komplette programm posten, sonst würdet ihr durch aus sehen dass keine andere stelle für eine eingabe möglich ist, außer vllt einen ausgelagerte function, naja mal sehen... aba trotzdem danke für eure anregungen


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz