Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi komponente auf neuem Tab erzeugen (https://www.delphipraxis.net/49114-komponente-auf-neuem-tab-erzeugen.html)

blackfoxx 5. Jul 2005 17:45


komponente auf neuem Tab erzeugen
 
Hi Leute,

ich versuche auf einem TPageControl ein neues Tab und darauf eine Listbox zu erzeugen.
Das Tab funktioniert mit TTabSheet.create schon ganz gut. Aber die Listbox macht mir probleme.

Der Code:
Delphi-Quellcode:
var
 newpage   :TTabSheet;
 newlistcomp:TListBox;

begin
  newpage:=TTabSheet.Create(Form1.PageControl1);
  newlistcomp:=TListBox.Create(Form1.PageControl1);
    with newlistcomp do
     begin
      left:=10;
      top:=88;
      width:=249;
      height:=273;
     end;
end;
So gibt er den Laufzeitfehler: Element " hat kein übergeordnetes Fenster.

Das Problem liegt also darin: Wie spreche ich das neu erstellte Tab an, um es "newlistcomp" also Parent/Owner zu übergeben???


Ich hoffe ihr versteht mein Problem und habt eine Idee..

Danke und Greetz
BlackFoxx

Luckie 5. Jul 2005 17:49

Re: komponente auf neuem Tab erzeugen
 
Du solltest eventuell angeben auf welchem TabSheet deine Listbox erzeugt werden soll. Und vergess nicht das Parent zu setzen.

blackfoxx 5. Jul 2005 17:53

Re: komponente auf neuem Tab erzeugen
 
genau das habe ich vor.
und dafür benötige ich ja eine Möglichkeit, um das TabSheet anzusprechen.
Ich habe aber nichts. Nur einen Namen, als eine string variable.
Ich habe noch versucht, die Variable "newpage", als Owner anzugeben und als Prent zu setzen, aber das hat auch nichts genützt. :(

Khabarakh 5. Jul 2005 18:08

Re: komponente auf neuem Tab erzeugen
 
Zitat:

Zitat von blackfoxx
Ich habe noch versucht, die Variable "newpage", als Owner anzugeben und als Prent zu setzen, aber das hat auch nichts genützt. :(

Sollte es aber :gruebel: . Kommt ein Fehler?

blackfoxx 5. Jul 2005 18:15

Re: komponente auf neuem Tab erzeugen
 
ja. Eben, dass das 'Element " kein übergeordnetes Fenster hat'.
Ich verstehe es auch nicht, da ja eben "newpage" den wert des neuen Tabs hat. :?:

Luckie 5. Jul 2005 18:50

Re: komponente auf neuem Tab erzeugen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyTabSheet: TTabSheet;
  MyListBox: TListbox;
begin
  MyTabSheet := TTabSheet.Create(Form1);
  MyTabSheet.Parent := PageControl1;
  MytabSheet.PageControl := PageControl1;
  MytabSheet.Caption := 'Test';
  MyListBox := TListBox.Create(Form1);
  MyListbox.Parent := MyTabSheet;
end;

blackfoxx 5. Jul 2005 22:16

Re: komponente auf neuem Tab erzeugen
 
Das Tabsheet ereugt er damit, wie vorher auch schon. Aber das Problem, dass die Listbox keine übergeordnete Komponente hat ist nch wie vor da!!

Danke trotzdem erstmal..

ich suche weiter..

nitschchedu 26. Mai 2006 09:31

Re: komponente auf neuem Tab erzeugen
 
Ich hätte da auch noch ein Problem :)
Also wenn ich auf ein TabSheet eine Form mit CreateParent(TabSheet.handle) erstelle habe ich meine Buttens und so aber leiter
kann ich nun nicht mehr mit den Pfeiltasten im MemoFeld hin und her steuern !! Hat jemand eine Idee ?

marabu 26. Mai 2006 12:40

Re: komponente auf neuem Tab erzeugen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

tut das Not, dass du CreateParented() verwendest? Du arbeitest doch ausschließlich mit VCL Komponenten.

Delphi-Quellcode:
begin
  // ...
  if InputQuery(s, 'Caption', s) then
  begin
    ts := TTabSheet.Create(PageControl);
    ts.Caption := s;
    ts.PageControl := PageControl;
    ts.BorderWidth := 6;
    m := TMemo.Create(ts);
    m.Align := alClient;
    m.Parent := ts;
    m.ScrollBars := ssBoth;
    PageControl.ActivePage := ts;
  end;
end;
Grüße vom marabu

nitschchedu 26. Mai 2006 17:13

Re: komponente auf neuem Tab erzeugen
 
Nicht Schlecht die Demo aber ich LAde das ganze aus einer Dll, also ich Ich gebe die TabSheet.hande anddie DLL und in der DLL mache ich eben Form.CreatParent(Handle) so wird
Das Form auf das TabSheet gezeichnet. Auf einen PAnel geht das nur eben auf dem TabSheet nicht.
Also mit anderen Worten ich brauche das Creatparent


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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