#1 27. Dezember 2009 Delphi 09 Handle problem Hallo Leute, ich wollte heute in Delphi ein wenig über Handles lernen, und wollte ein "TabCMD" schreiben, wo cmd.exe in Tabs eines PageControls eingefügt wird. Nun will ich ein Handel testweise auf den Arbeitsplatz erstellen. Allerdings startet sich der Arbeitsplatz, und ein zufälliges Objekt wird genommen (sogar Teile der IDE)... Wo ist mein Fehler? Und wo gibt es eine gute Delphi-Referenz? Code: procedure TTabShell.AddBtnClick(Sender: TObject); var NewShell: TTabSheet; begin NewShell := TTabSheet.Create(PageControl1); NewShell.PageControl := PageControl1; NewShell.Caption := IntToStr(PageControl1.PageCount); NewShell.Name := 'tab' + IntToStr(PageControl1.PageCount); fenster := ShellExecute(0,'open', 'explorer.exe', PChar('C:\'), 'C:\', SW_SHOW); windows.SetParent(fenster, NewShell.Handle); windows.MoveWindow(fenster, 1, 1, NewShell.Width, NewShell.Height, true) ; windows.ShowWindow(fenster, 1); end; MfG Didamantus + Multi-Zitat Zitieren
#2 27. Dezember 2009 AW: Delphi 09 Handle problem ShellExecute gibt kein Handle zurück, sondern einen Error-Code. Den Code kannst du dann auswerten, wenn was nicht geklappt hat. Grundsätzlich sollte ShellExecute sowieso nicht mehr genutzt werden, weil es schon lange veraltet ist. Informier dich mal über CreateProcess(). Dann musst du noch beachtet, dass ein Process kein Fenster-Handle hat (Was die Funktionen ShowWindow() usw. als Parameter brauchen). Das Fenster-Handle musst du dir noch seperat holen. Guck dich mal auf Seiten wie dsdt.info oder delphi-praxis.de um. + Multi-Zitat Zitieren