![]() |
Stringgrid in Tabbednotebook erstellen
Mit folgendem Code erzeuge ich eine neue Karte für das Tabbednotebook. Danach kommt noch ein Stringgrid dazu. Allerdings wird das Stringgrid auf der Form (bibofuture) platziert, und nicht auf der aktuellen Karte des Tabbednotebook.
Hier mal der Quellcode:
Delphi-Quellcode:
Meine Frage ist jetzt logischerweise: Wie erzeuge ich das Stringgrid auf der gerade aktiven Karte des Tabbednotebook?
procedure Tbibofuture.neuerubrikClick(Sender: TObject);
var kartei:TStringGrid; begin rubrikneu.name.Text:=''; rubrikneu.ShowModal; if rubrikneu.name.Text<>'' then begin tabbednotebook1.Pages.Add(rubrikneu.name.Text); kartei:=TStringgrid.Create(Self); kartei.Parent:=bibofuture; with kartei do begin left:=100; top:=100; width:=800; height:=600; name:='rubrik'+rubrikneu.name.Text; end; end; end; |
Re: Stringgrid in Tabbednotebook erstellen
Hi,
wenn du das Form als Parent zuweist, so tut es das auch ;) Also, kurzes Beispiel:
Delphi-Quellcode:
Cu, Frank
procedure TForm1.Button1Click(Sender: TObject);
var Kartei : TStringGrid; TabPage : TWinControl; PageIndex: Integer; begin PageIndex := tabbednotebook1.Pages.Add('TabText'); TabPage := TWinControl(tabbednotebook1.Pages.Objects[PageIndex]); kartei := TStringgrid.Create(Self); // TabPage als Parent! kartei.Parent := TabPage; with kartei do begin left := 100; top := 100; width := 800; height := 600; end; end; |
Re: Stringgrid in Tabbednotebook erstellen
Hier noch eine alternative Vorgehensweise:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.ButtonClick(Sender: TObject);
var ts: TTabSheet; sg: TStringGrid; tsName: String; begin tsName := 'Neu'; if not InputQuery('New page', 'Name', tsName) or (tsName = '') then Exit; ts := TTabSheet.Create(PageControl); ts.Caption := tsName; ts.PageControl := PageControl; //sg := TStringGrid.CreateParented(ts.Handle); sg := TStringGrid.Create(ts); sg.Name := tsName; // eingefügt sg.Align := alClient; ts.InsertControl(sg); PageControl.ActivePage := ts; end; |
Re: Stringgrid in Tabbednotebook erstellen
Danke, das von dataspider funktioniert erstmal.
Aber wie werden die einzelnen Stringgrids benannt? ich möchte nämlich jedes einzeln ansprechen können! Ist es auch möglich den Namen in einer Variable zu speichern und statt dem namen die Variable zu verwenden, wenn ich Einträge in das Stringgrid einfügen will? also z.B.:
Delphi-Quellcode:
Bei dem von marabu verstehe ich nicht ganz, wie es funktioniert, da ich noch Anfänger (vielleicht auch bisschen mehr) auf dem Gebiet Delphi-Programmierung bin und ich nicht gern Sachen verwende, die ich nicht verstehe!
//statt dem Namen
stringgrid1.Cells[0,0]:='Text'; //Die Variable in der der Name gespeichert ist variable.Cells[0,0]:='Text'; |
Re: Stringgrid in Tabbednotebook erstellen
Ich habe zwei Änderungen an meinem Code angebracht. Durch die Vergabe eines geeigneten Namens für das StringGrid kann es später leicht ermittelt werden - wenn du dir den Zeiger auf das StringGrid nicht gleich beim Erzeugen irgendwo merken willst. Hier das Prinzip:
Delphi-Quellcode:
marabu
var
sg: TStringGrid; begin with PageControl.ActivePage do sg := FindComponent(Caption); end; |
Re: Stringgrid in Tabbednotebook erstellen
Ähm... ja nur was ist das PageControl?
Meines Erachtens ist das eine Komponente, von der ich nicht weiß, wie man sie benutzt... Muss ich das auch erst noch irgendiwe einfügen? |
Re: Stringgrid in Tabbednotebook erstellen
PageControl ist der Ersatz für die veraltete Win3.1 Komponente TabbedNoteBook. Du findest sie auf der Palettenseite "Win32".
marabu |
Re: Stringgrid in Tabbednotebook erstellen
Da muss ich mich ja in das PageControl reinfitzen! Na mal sehen, kennt ihr ein gutes Tut, dass sich sehr ausführlich mit PC befasst?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz