![]() |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Gar nichts = es öffnet sich kein Fenster, der Prozess wird nicht einmal gestartet? Oder "gar nichts" = "nicht das, was du erwartet hast"?
Außerdem: hast Du mal nen Breakpoint in die erste Zeile in FormShow gesetzt und geschaut, ob das aufgerufen wird? Hätte Dir auch schon zu Anfang geholfen, weil Du dann in den Watches gesehen hättest, dass Form1 = nil :) |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Wenn die Instanz Form1 nicht erzeugt wurde und diese Instanz aber angesprochen werden soll, dann knallt es eben.
Zeig doch mal die gesamte dpr, da ist irgendwo auch der Teil, wo die Instanz Form erzeugt wird, aber wohl erst nach deinem Aufruf. |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Wenn in der Methode nichts passiert, ist möglicherweise der Handler nicht mit dem Ereignis verknüpft. Das kann man aber im Objektinspektor leicht feststellen.
|
AW: Kontextmenü, Parameterübergabe, Dateiupload
Code:
program Test;
uses MidasLib, Windows, Forms, Dialogs, SysUtils, AdrbookUnit in 'AdrbookUnit.pas' {Form3}, LogFileUnit in 'LogFileUnit.pas' {Form4}, uLkJSON in 'uLkJSON.pas', MainUnit in 'MainUnit.pas' {Form1}, OptionsUnit in 'OptionsUnit.pas' {Form2}, IdSSLOpenSSL in 'C:\Programme\CodeGear\RAD Studio\5.0\source\Indy\Indy10\Protocols\IdSSLOpenSSL.pas', InfoUnit in 'InfoUnit.pas' {Form5}; {$R *.res} {$R 'Win7UAC.res'} var Semaphore: THandle; begin if (ParamCount>0) and (FileExists(ParamStr(1))) then begin Form1.Show; end; Semaphore := CreateSemaphore(nil, 1, 1, PChar(MainUnit.MyGUID)); if (GetLastError = ERROR_ALREADY_EXISTS) then PostMessage (HWND_BROADCAST, MainUnit.ActivationMessage,0,0) else begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.Title := 'Test Programm'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm5, Form5); Application.Run; end; CloseHandle(Semaphore); end. |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Delphi-Quellcode:
begin
if (ParamCount>0) and (FileExists(ParamStr(1))) then begin Form1.Show; //<-- Hier gibt es noch kein Form1... end; Semaphore := CreateSemaphore(nil, 1, 1, PChar(MainUnit.MyGUID)); if (GetLastError = ERROR_ALREADY_EXISTS) then PostMessage (HWND_BROADCAST, MainUnit.ActivationMessage,0,0) else begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.Title := 'Test Programm'; Application.CreateForm(TForm1, Form1); //<-- ...denn hier wird es erst erzeugt Application.CreateForm(TForm5, Form5); Application.Run; end; CloseHandle(Semaphore); end. |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Soweit kann ich folgen.
Aber wie muss das denn dann aussehen? Ich meien ich habe einen Semaphore Code drinne, der muss auch unbedingt bleiben. Wahrscheinlich seh ich vor lauter Code den Schnipsel nicht. |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Kann er ja auch. Du sollst doch nur das ParamStr-Gedöns aus der *.dpr herausnehmen und im Hauptformular verarbeiten.
|
AW: Kontextmenü, Parameterübergabe, Dateiupload
So schauts aus nun, nur bekomme ich die Showmessage nicht.
Im OnShow Ereigniss der Form1 ist OnShow eingetragen.
Code:
procedure TForm1.FormShow(Sender: TObject);
var StrParam1 : String; begin if (ParamCount>0) and (FileExists(ParamStr(1))) then begin showmessage(StrParam1); //Form1.PDFoeffnenKontext(ParamStr(1)); end; end; |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Setz doch mal einen Breakpoint in die erste Zeile und schau, ob dort auch angehalten wird.
P.S.: benutze doch bitte Delphi-Tags, das ist der Helm im Beitragseditor. |
AW: Kontextmenü, Parameterübergabe, Dateiupload
Habe nen Breakpoint gesetzt.
Prgramm via Delphi compiliert, Parameterübergabe ausgeführt: Keine Reaktion. Es passiert nichts, nichtmal in Delphi. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 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