![]() |
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?
|
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: |
Re: TabSheet zur Laufzeit eintragen?
Zitat:
![]() ![]() |
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 |
Re: TabSheet zur Laufzeit eintragen?
Nein, ich gebs vollkommen auf!
Delphi-Quellcode:
Wie das mit dem Arrays funktioniert, was sie machen, wie sie etwas machen usw ist mir jetzt klar..
page[1] := Memo;
aber ich habe null Ahnung wie ich an mein Problem rangehen soll |
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:
Später kannst du dann mit
Memo.Name := 'Memo';
Delphi-Quellcode:
den Inhalt sichern.
(PageControl2.Pages[PageControl2.ActivePage].FindComponent( 'Memo') as TMemo).Lines.SaveToFile(<Dateiname>);
|
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:
Damit wird das Memo aufgerufen:
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;
Delphi-Quellcode:
Das ist nur ein Beispiel es gibt noch andere Möglichkeiten.
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; Bis bald Chemiker |
Re: TabSheet zur Laufzeit eintragen?
@Chemiker: Ich glaube sein Problem ist nicht, daß das Speichern kurz nach dem Erzeugen nicht klappt, sondern später.
|
Re: TabSheet zur Laufzeit eintragen?
Zitat:
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 |
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. |
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