Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Richedit auf Tabsheet zur Laufzeit erstellen (https://www.delphipraxis.net/97302-richedit-auf-tabsheet-zur-laufzeit-erstellen.html)

Brakeman 8. Aug 2007 10:11


Richedit auf Tabsheet zur Laufzeit erstellen
 
Hallo,
ich möchte zur Laufzeit ein Pagecontrol mit einer bestimmten Anzahl an Tabsheets erstellen. Dazu gebe ich in ein statisches Richedit Namen ein, die dann auch die Captions der Tabsheets werden. Das klappt auch soweit ganz gut. Nun möchte ich noch auf den einzelnen Tabsheets Richedit's plazieren um dort etwas anzuzeigen. Bei den Richedits komme ich nicht weiter. Hat evtl. jemand eine zündende Idee?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  TabTitles: array[0..20] of ShortString ;
  i,k: Integer;
  PageControl1: TPageControl;
  testStands:TStringList;
begin
  testStands:=TStringList.Create;
  testStands.AddStrings(RichEdit1.Lines);
  k:=testStands.Count;
  PageControl1 := TPageControl.Create(Self);
  PageControl1.Parent := Self;
  PageControl1.Left:=20;
  PageControl1.Top:=100;
  PageControl1.Width:=500;
  for i := 1 to k do
    with TTabSheet.Create(PageControl1) do
    begin
      PageControl := PageControl1;
      Name := 'ts' + IntToStr(i);
      Caption := testStands[i-1];
   end;
  testStands.Free;
end;

Peter81 8. Aug 2007 11:03

Re: Richedit auf Tabsheet zur Laufzeit erstellen
 
Hallo,

du kannst die Komponente auf einem Tabsheet platzieren indem du dem Richedit.parent das dazugehörige Tabsheet zuweist.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  TabTitles: array[0..20] of ShortString ;
  i,k: Integer;
  PageControl1: TPageControl;
  testStands:TStringList;
  RichEdit: TRichEdit;
  TabSheet: TTabSheet;
begin
  testStands:=TStringList.Create;
  testStands.AddStrings(RichEdit1.Lines);
  k:=testStands.Count;
  PageControl1 := TPageControl.Create(Self);
  PageControl1.Parent := Self;
  PageControl1.Left:=20;
  PageControl1.Top:=100;
  PageControl1.Width:=500;
  for i := 1 to k do
  begin
    TabSheet := TTabSheet.Create(PageControl1);
    with TabSheet do
    begin
      PageControl := PageControl1;
      Name := 'ts' + IntToStr(i);
      Caption := testStands[i-1];
      RichEdit := TRichEdit.Create(TabSheet);
      RichEdit.Parent := TabSheet;
      Richedit.Align := alClient;
   end;
  end;
  testStands.Free;
end;

Brakeman 8. Aug 2007 11:29

Re: Richedit auf Tabsheet zur Laufzeit erstellen
 
Danke, funktioniert prima.


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