Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi windows.SetParent (https://www.delphipraxis.net/130276-windows-setparent.html)

Asatru 5. Mär 2009 20:51


windows.SetParent
 
Ich bräuchte mal eure Hilfe bei flgenden brauch ne reihenflge und stichwrte zum suchen um mein Proogramm zu entwickeln!

Ich habe ein Fester das fange ich ein mit windows.SetParent in ein Tabcontrol. Der Fenstername heißt Anleitung v1.1 zum Beispiel. wenn das Fenster eingefangen ist soll als Tab "none" dastehen.

Wenn ich noochmal auf ein buttn klicke soll ein neues Tab entstehen wo das neue fenster in den neuen Tab kommen soll!

Wenn beispielsweise der Fenstername nun [Asatru] Anleitung v1.1 beispielsweise heißt soll der Tab aber dann Asatru heißen.


Für tips wäre ich dankbar

PS: das einfangen des ersten Fensters schaff ich aus eigener kraft xD

jaenicke 5. Mär 2009 20:59

Re: windows.SetParent
 
Zitat:

Zitat von Asatru
Ich bräuchte mal eure Hilfe bei flgenden brauch ne reihenflge und stichwrte zum suchen um mein Proogramm zu entwickeln!

Wohl eher einen Duden erst einmal... :roll:

Zitat:

Zitat von Asatru
Wenn ich noochmal auf ein buttn klicke soll ein neues Tab entstehen wo das neue fenster in den neuen Tab kommen soll!

Wenn beispielsweise der Fenstername nun [Asatru] Anleitung v1.1 beispielsweise heißt soll der Tab aber dann Asatru heißen.

Ich würde eher ein TPageControl benutzen, denn ein TTabControl ist nur zur Anzeige der Tabs, hat aber selbst keine eigenen Seiten. Die müsstest du dann selbst verwalten.

Bei einem TPageControl müsstest du zur Laufzeit dann entsprechend eine neue Komponente vom Typ TTabSheet erstellen, das ist dann die neue Seite des PageControls.

Asatru 5. Mär 2009 21:24

Re: windows.SetParent
 
Ja sorry hängt zuviel Tabak unter den tasten und dadurch hängt alles ein wenig

bin noch anfänger! Also nach klicken auf meinen Button erstelle ich nun ein Tabsheet und Fenster wird eingefangen.

Wie kann ich den Namen des Fensters gleichzeitig beim einfangen auslesen und als Tabnamen anzeigen lassen? also wenn [Asatru] als fensternamen ist soll Asatru stehen und wenn das net dasteht soll none kommen.

Wenn ich nun das selbe prog nochmal einfangen möchte eröffnet sich ein neues Tab aber das neue Eingefangene fenster wird im ersten Tab mit eingefügt. Was muss ich beachten?


MFG

jaenicke 5. Mär 2009 21:59

Re: windows.SetParent
 
Zeig doch erstmal wie du es jetzt machst. Warum das im ersten Tab erscheint, könnte ich sonst ja nur raten.

Zum Auslesen des Fenstertitels gibt es GetWindowText:
http://msdn.microsoft.com/en-us/library/ms633520.aspx

Asatru 5. Mär 2009 23:31

Re: windows.SetParent
 
OK durch google und deinen Aussagen stehe ich derzeit bei folgenden Code

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  hwnd: THandle;
  Tab: TTabSheet;
begin
   // neues TabSheet
  Tab := TTabSheet.Create(self);
  Tab.PageControl := PageControl1;
  Tab.Parent := PageControl1;
  hwnd := findwindow(nil,PCHar('Borgmon'));
  windows.SetParent(hwnd, form1.PageControl1.Handle);
 end;

jaenicke 6. Mär 2009 00:49

Re: windows.SetParent
 
Du willst das Fenster doch auf das TabSheet legen, du setzt es aber in das PageControl mit SetParent. ;-)

Asatru 6. Mär 2009 19:46

Re: windows.SetParent
 
danke hab nun mal einige zeit gegoogelt aber finde keine Hilfe bzw suchbegriff. Kannste eventuell mir noch nen suchbefehl oder zeichenkette fürs suchen nennen ohne mir den richtigen befehl zu nennen?

MFG

PS: gibts den eigentlich ne deutsche Hilfe file mit befehlen, also das mir das in deutsch erläutert wird?

quendolineDD 6. Mär 2009 19:50

Re: windows.SetParent
 
Zu deinem PS, keine Ahnung. Ich komme mit Englisch gut klar.
Zu deiner eigentlichen Frage:
Du solltest deinen Quelltext auch richtig lesen ;-)
Delphi-Quellcode:
windows.SetParent(hwnd, form1.PageControl1.Handle);
Zitat:

Zitat von jaenicke
Du willst das Fenster doch auf das TabSheet legen, du setzt es aber in das PageControl mit SetParent. ;-)

Siehe da, du übergibst das PageControl als Parent und nicht dein TabSheet.

Asatru 6. Mär 2009 20:45

Re: windows.SetParent
 
Ahh nachdem du mich nochmal mit der nase druffgedrückt hast habsch es hinbekommen *fg*
ist es mööglich ein Fesnter zu suchen anhand einer Zeichenkette?

MFG

quendolineDD 7. Mär 2009 08:43

Re: windows.SetParent
 
Um die Übersichtlichkeit zu bewahren, erstelle für eine neue Frage bitte ein neues Thema.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz