Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Mhhhh ..... Tabbed Text?


moddin - So 05.03.06 18:53
Titel: Mhhhh ..... Tabbed Text?
Hätte jemand Ideen wie man einenen Texteditor ala Firefox ("Tabbed Browsing") umsetzen könnte?

Ich habe es mit einem PageControl versucht da kann man ja neue Tabs machen diese sind aber leer

pls help


digi_c - So 05.03.06 19:01

du kannst doch eine Prozedur bauen die erst ein Tabsheet mit Create erstellt und dann ein TRichedit erzeugt und es diesem unterordnet(Align auf AlClient und dann wirds auch automaitisch groß,...).

Ganz sauber wäre es freilich dafür eine extra Klasse zu bauen, aber das ist ein deutliches mehr an Arbeit.


moddin - So 05.03.06 19:11

Ja aber wie greife ich dann auf die zu ?

über zb PageControl1.ActivePage.???RichtEdit1????


GTA-Place - So 05.03.06 19:46

Du musst alles was du auf einer Tab-Seite haben willst, auf die Tab-Seite ziehen.
Du kannst die Komponenten ganz normal benutzen, wie wenn du sie auf ein Panel legen würdest.


digi_c - Mo 06.03.06 14:21

mit PageControl.ActivePage.Components[0]; aber so geht das natürlich nur, wenn du nur eine Komponente darin hast. Bei mehrern musst du mit Components.ComponentCount eine schleife bauen und die Komponenten abfragen ob sie z.B. ein TRichedit sind(oder du belegst bei ihnen bei der Erstellung die Eigenschaft Tag.


GTA-Place - Mo 06.03.06 18:54

Er kann doch auf alle Komponenten, die auf dem TabSheet liegen, normal zu greifen.

Legst du einen Button auf ein TabSheet des PageControls, kannst du z.B. mit Button1.Caption daraufzugreifen.

Oder hab ich die Frage jetzt falsch verstanden? Erstellt er PageControl erst zur Laufzeit?


moddin - Mo 06.03.06 19:55

Ja also um das nochmal genau zu erklären

Ein Texteditor hat eine funktion New , diese fügt einen neuen tab auf dem pagecontrol1 hinzu
Diese soll zur !!laufzeit!! erst erstellt werden und nich im entwicklungsmodus

Meine Probs

1 - Tab zum Pagecontrol hinzufügen
+ darauf ein RichEdit/Memo/synEdit erstellen
2 - Wie erfolgt zugriff zur laufzeit auf dieses RichtEdit/Memo/Synedit? zb beim kopieren etc


GTA-Place - Mo 06.03.06 20:13

Zu 1.:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
with TTabSheet.Create(PageControl1) do
  begin
    PageControl := PageControl1;
    Name        := 'Name';
    Caption     := 'Caption';
  end;


Zu 2.:

Delphi-Quelltext
1:
2:
3:
4:
5:
  with TEdit.Create(PageControl1.Pages[0]) do
  begin
    Name   := 'Edit';
    Parent := PageControl1.Pages[0];
  end;


Zu 3.:

Delphi-Quelltext
1:
TEdit(PageControl1.Pages[0].FindComponent('NameDesEdits')).Text := 'Test';                    


Oder zu 2.:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  TestEdit: TEdit;
begin
  TestEdit        := TEdit.Create(PageControl1.Pages[0]);
  TestEdit.Parent := PageControl1.Pages[0];
  TestEdit.Name   := 'Bla';
end;


Zu 3.:

Delphi-Quelltext
1:
TestEdit.Text := 'Test';                    

(TestEdit: TEdit; in diesem Fall global deklarieren.)