[Code] Delphi 09 Handle problem

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Didamantus, 27. Dezember 2009 .

Schlagworte:
  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
     
  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.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.