Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TabSheet zur Laufzeit eintragen? (https://www.delphipraxis.net/102201-tabsheet-zur-laufzeit-eintragen.html)

Muetze1 25. Okt 2007 00:03

Re: TabSheet zur Laufzeit eintragen?
 
Du erstellst dir doch dann auch jeweils eine Memo Instanz pro Page selber (also insgesamt 2): Merke dir diese einfach in 2 Variablen und greife dann entsprechend drauf zu. Wo liegt das Problem?

Tommy1988 25. Okt 2007 00:38

Re: TabSheet zur Laufzeit eintragen?
 
Die Memos erstelle ich durch eine Procedure.
Also eine extra deklarierte. Dort wird ein via openDialog eine Datei geöffnet. Daher würde die Variable immer überschrieben werden :oops:

Muetze1 25. Okt 2007 00:42

Re: TabSheet zur Laufzeit eintragen?
 
Zitat:

Zitat von Tommy1988
Die Memos erstelle ich durch eine Procedure.
Also eine extra deklarierte. Dort wird ein via openDialog eine Datei geöffnet. Daher würde die Variable immer überschrieben werden :oops:

Und warum legst du dir dann nicht eine Variable an, welche mehr als eine Instanz halten kann? Delphi-Referenz durchsuchenArray of, Delphi-Referenz durchsuchenTObjectList, verkettete Liste, etc?

Tommy1988 25. Okt 2007 00:51

Re: TabSheet zur Laufzeit eintragen?
 
Das weis ich leider nicht wie geht.. :(

Ich werde mir das jetzt gleich mal ansehen und eine Testanwendung schreiben.
Danach melde ich mich

Tommy1988 25. Okt 2007 01:09

Re: TabSheet zur Laufzeit eintragen?
 
Nein, ich gebs vollkommen auf!

Delphi-Quellcode:
page[1] := Memo;
Wie das mit dem Arrays funktioniert, was sie machen, wie sie etwas machen usw ist mir jetzt klar..

aber ich habe null Ahnung wie ich an mein Problem rangehen soll

mkinzler 25. Okt 2007 06:36

Re: TabSheet zur Laufzeit eintragen?
 
Du musst zuerst eine Referenz auf das Memo ermittlen. dazu solltest du den dynamisch erzeugten Memos namen geben.
Delphi-Quellcode:
Memo.Name := 'Memo';
Später kannst du dann mit
Delphi-Quellcode:
(PageControl2.Pages[PageControl2.ActivePage].FindComponent( 'Memo') as TMemo).Lines.SaveToFile(<Dateiname>);
den Inhalt sichern.

Chemiker 25. Okt 2007 06:48

Re: TabSheet zur Laufzeit eintragen?
 
Hallo Tommy1988,

vielleicht sollt du uns mal die Procedure zeigen, damit man dir gezielt weiterhelfen kann. Du kannst doch im Procedure – Kopf Variablen als var Parameter zurückgeben. Alternativ kann man die Variablen auch unter public in der Form – class anlegen.

Das ist die Procedure zum Erstellen:

Delphi-Quellcode:
procedure MemoErstellen (var MyMemo: TMemo; FileName: String; Tab:TTabSheet);
begin
  MyMemo.parent:= Tab;
  MyMemo.Name:= 'TestMemo';
  MyMemo.SetBounds(16,185,313,185);
  MyMemo.Lines.LoadFromFile(FileName);
end;
Damit wird das Memo aufgerufen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MemoX: TMemo;
begin
  MemoX:= TMemo.Create(self);
//  MemoX:= TMemo.Create(self);
//  MemoX.parent:= TabSheet2;
//  MemoX.Name:= 'TestMemo';
//  MemoX.SetBounds(16,185,313,185);
//  MemoX.lines.Add ('Zeile 1');
//  MemoX.Lines.Add ('Zeile 2');
//  MemoX.Lines.SaveToFile('C:\temp\test');
//  MemoX.Lines.LoadFromFile('C:\temp\test');
  MemoErstellen (MemoX, 'C:\temp\test', TabSheet2);
end;
Das ist nur ein Beispiel es gibt noch andere Möglichkeiten.

Bis bald Chemiker

mkinzler 25. Okt 2007 07:10

Re: TabSheet zur Laufzeit eintragen?
 
@Chemiker: Ich glaube sein Problem ist nicht, daß das Speichern kurz nach dem Erzeugen nicht klappt, sondern später.

Tommy1988 25. Okt 2007 12:07

Re: TabSheet zur Laufzeit eintragen?
 
Zitat:

sondern später.
Ja genau das, leider.

Hatte es schon versucht, mit zurückgreifen auf den Inhalt des Memos, je nachdem welcher tab aktiv ist.
Aber da gibt ja sowas wie ein OnClick-Event nicht. Das macht die Sache schwer

mkinzler 25. Okt 2007 12:11

Re: TabSheet zur Laufzeit eintragen?
 
Schau mal #16, dort wird das memo des aktiven Tab angesprochen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Seite 2 von 3     12 3      

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