AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid in Tabbednotebook erstellen

Ein Thema von programmierer · begonnen am 5. Mär 2006 · letzter Beitrag vom 5. Mär 2006
Antwort Antwort
Benutzerbild von programmierer
programmierer

Registriert seit: 27. Jan 2006
Ort: Dresden
18 Beiträge
 
Delphi 2005 Personal
 
#1

Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 11:47
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:
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;
Meine Frage ist jetzt logischerweise: Wie erzeuge ich das Stringgrid auf der gerade aktiven Karte des Tabbednotebook?
Stanley F.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 12:57
Hi,

wenn du das Form als Parent zuweist, so tut es das auch
Also, kurzes Beispiel:

Delphi-Quellcode:
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;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 13:10
Hier noch eine alternative Vorgehensweise:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von programmierer
programmierer

Registriert seit: 27. Jan 2006
Ort: Dresden
18 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 13:25
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:
//statt dem Namen
stringgrid1.Cells[0,0]:='Text';

//Die Variable in der der Name gespeichert ist
variable.Cells[0,0]:='Text';
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!
Stanley F.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 13:47
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:
var
  sg: TStringGrid;
begin
  with PageControl.ActivePage do
    sg := FindComponent(Caption);
end;
marabu
  Mit Zitat antworten Zitat
Benutzerbild von programmierer
programmierer

Registriert seit: 27. Jan 2006
Ort: Dresden
18 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 14:34
Ä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?
Stanley F.
Wenn alles gut zu gehen scheint, hast Du sicher etwas vergessen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 14:48
PageControl ist der Ersatz für die veraltete Win3.1 Komponente TabbedNoteBook. Du findest sie auf der Palettenseite "Win32".

marabu
  Mit Zitat antworten Zitat
Benutzerbild von programmierer
programmierer

Registriert seit: 27. Jan 2006
Ort: Dresden
18 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Stringgrid in Tabbednotebook erstellen

  Alt 5. Mär 2006, 15:24
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?
Stanley F.
Wenn alles gut zu gehen scheint, hast Du sicher etwas vergessen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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