![]() |
ShellExecute und OpenDialog -> Problem
Hallo,
mir ist dieses Problem nicht aufgefallen, aber heute wurde es von einen DP User gefunden. Folgendes: In einem Menü (MainMenu) kann man in die readme.txt einsichten. Doch wenn vorher das OpenDialog geöffnet und eine Datei angenommen wurde, dann kann ich die readme.txt, die ich über ShellExecute öffnen, nicht mehr öffnen.
Delphi-Quellcode:
Beide Varianten funktionen zunächst ohne Probleme, doch wie schon erwähnt, geht das nicht mehr wenn das OpenDialog geöffnet ist und eine Datei ausgewählt wurde. Ich nehme an das ShellExecute irgend ein Fehler erzeugt, doch welchen?
{--[MMuReadClick]--------------------------------------------------------------}
procedure TMain.MMuReadClick(Sender: TObject); begin if Sender = MMuRead then begin if OpenDia.Execute then begin ... end; end else if Sender = MMuCopy then begin ... end else if Sender = MMuExit then Close else if Sender = MMuInfo then Info.ShowModal // else ShellExecute(Application.Handle, 'OPEN', 'readme.txt', nil, nil, SW_NORMAL); else ShellExecute(Application.Handle, nil, 'readme.txt', '', '', SW_NORMAL); end; Hat jemand einen Rat? Gruß Mazel |
Re: ShellExecute und OpenDialog -> Problem
shellexecute ist doch eine fkt und liefert nen statuscode zurück, werte den doch mal aus. auf luckies seite müsste ein artikel zu den codes sein. und auf dsdt.info auch.
//Edit ![]() |
Re: ShellExecute und OpenDialog -> Problem
Der Opendialog ändert das aktuelle Directory der Anwedung. Und da du "readme.txt" ohne Pfadangabe aufrufst ist es nicht 100%ig gesagt das die Datei gefunden werden kann.
|
Re: ShellExecute und OpenDialog -> Problem
Ok, Fehlermeldung ist: Datei nicht gefunden.
Nun aber warum ändert das OpenDialog den Pfad der Anwendung? Wenn man das weis ist das ja jetzt kein großes Problem mehr. Trotzdem ist das verwirrend. Danke euch beiden. Gruß Mazel |
Re: ShellExecute und OpenDialog -> Problem
Zitat:
Heißt das überhaupt "Arbeitspfad"? :gruebel: |
Re: ShellExecute und OpenDialog -> Problem
Danke dir Matze für die Info. In Zukunft weis ich bescheid, dass ich gleich aufpasse, wenn ich mit dem OpenDialog arbeite. :wink:
Gruß Mazel |
Re: ShellExecute und OpenDialog -> Problem
Ich würde gernerell für dynamische Angaben "ExtractFilePath(ParamStr(0){oder auch Application.ExeName})" nehmen.
|
Re: ShellExecute und OpenDialog -> Problem
Wobei ParamStr(0) ohne die Unit Forms auskommt ;)
|
Re: ShellExecute und OpenDialog -> Problem
Zitat:
|
Re: ShellExecute und OpenDialog -> Problem
Ich denke, er meinte das als Basis für einen relativen Pfad :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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-2025 by Thomas Breitkreuz