Forum: Programmieren allgemein
Delphi
by mm1256,
28. Jun 2015
Richtig, da fehlt noch was. Aus dem Grund hab ich mir ja auch die Handles im TPanel.Tag gemerkt.
procedure TFrmExplorer2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Panel1.Tag > 0 then SendMessage(Panel1.Tag, WM_CLOSE, 0, 0);
if Panel2.Tag > 0 then SendMessage(Panel2.Tag, WM_CLOSE, 0, 0);
end;
Forum: Programmieren allgemein
Delphi
by mm1256,
28. Jun 2015
Hat keiner eine Idee? Wäre schön, wenn man diesen blöden Rand weg bekommen würde.
Forum: Programmieren allgemein
Delphi
by mm1256,
27. Jun 2015
DANKE! :thumb:
Ein Problem gibt es noch: Die Explorerfenster haben beim Panel oben einen Rand etwa so hoch wie normalerweise die Titelleiste. Damit wollte ich den Rand eigentlich verhindern, aber irgendwas scheint noch zu fehlen. Hab schon rumprobiert, finde aber keine Lösung.
Style := GetWindowLong(aPanel.Tag, GWL_STYLE);
SetWindowLong(aPanel.Tag, GWL_STYLE, Style and NOT WS_BORDER );
...
Forum: Programmieren allgemein
Delphi
by mm1256,
23. Jun 2015
"WaitForInputIdle" hab ich ja schon versucht, siehe Kommentar, aber das kommt sofort zurück.
Die grundsätzliche Idee die hinter der Verwendung von ShellExecuteEx steckt ist ja, über das Processhandle auf das WindowHandle zu kommen. Aber wie? Da fehlt mir leider das Basiswissen.
Na ja, wenn es nicht geht, auch nicht schlimm. Ist kein Pflichtprojekt :)
Forum: Programmieren allgemein
Delphi
by mm1256,
23. Jun 2015
Hallo,
die Idee als solches finde ich ja gut. Die Zähne beisse ich mir aber schon seit über einer Stunde daran aus, das "Sleep" zu ersetzen, weil es ja hardwareabhängig ist.
Der Grundgedanke ist, aus dem ProcessHandle das WindowHandle zu bekommen.
function ShellExecExplorer(aClientHandle: THandle;
aParameters: string;
var...