![]() |
Memos zur laufzeit erzeugen und in *.ini abspeichern
Tag,
in meinem Programm soll amn in der Lage sein, Tabs (während der Laufzeit) zu erzeugen / löschen. In diesen Tabs befinden sich Memo - Felder, die mit ihnen erzeugt / gelöscht werden. Das ist alles kein Problem, funktioniert einwandfrei. Ich möchte den Text der Memo - Felder bei onChange und onCloseQuery in einer ini Datei speicher. Dazu bräuchte ich den Namen des Memos (musst ja memoX.lines.text speichern). Die Namen sollten aus Tabname (gibt der Benutzer selbst) + _memo bestehen. Wenn ich das über:
Code:
mache, gibts an der Stelle einen DICKEN Fehler. (Kann auch sein, dass ich zu doof bin).
NewTabSheet.name := tabname+'_memo';
Wie gebe ich also dem Memo den entsprechenden Namen? Den brauch ich ja, um das ganze in der ini zu speichern... Wäre schön, wenn ihr mir helfen könntet :coder2: |
Re: Memos zur laufzeit erzeugen und in *.ini abspeichern
Nimm TabSheet.Caption für deine Namensspiele.
Zitat:
|
Re: Memos zur laufzeit erzeugen und in *.ini abspeichern
Und wie sprech ich dann die Memofelder an?? welchen namen haben die denn dann?
Ich muss den ja ahben um z.B. memoXYZ.lines.text aufzurufen. |
Re: Memos zur laufzeit erzeugen und in *.ini abspeichern
Hallo,
ich würde dir empfehlen einen dynamischen Array zu verwenden, den du mit den daten aller tabsheets füllst. du könntest beispielsweise den Array Index mit TTabsheet.Tag verlinken. über TPageControl.GetActivePage oder TPageControl.GetActivePageIndex (Integer) kriegst du dann die aktuelle Seite. diese musst du dann nur noch mit deinem array abgleichen (also ob akt. ausgewählte seite in array, wenn ja dann gelinktes TMemo speichern). |
Re: Memos zur laufzeit erzeugen und in *.ini abspeichern
Zitat:
Delphi-Quellcode:
Solltest du mehrere Komponenten auf einer Page haben, dann kannst du durch das Controls-Array iterieren und auf Controls[i] is TMemo testen. Für die Methode PageControl.ActivePage.FindChildControl() bräuchtest du allerdings dann den Namen deines aktuellen Memos.
var
ts: TTabSheet; memo: TMemo; begin with PageControl do begin // PageControl.OnChanging() ts := Pages[TabIndex]; memo := ts.Controls[0] as TMemo; // PageControl.OnChange() memo := ActivePage.Controls[0] as TMemo; end; Ich würde an deiner Stelle nur ein einziges Memo instanziieren und im Ereignis PageControl.OnChange() dieses Memo dann auf der richtigen Page einblenden.
Delphi-Quellcode:
Grüße vom marabu
Memo.Parent := PageControl.ActivePage;
|
Re: Memos zur laufzeit erzeugen und in *.ini abspeichern
das letze wäre natürlich am allereinfachsten. dann lad ich den text aus der ini zusammen mit dem onchange :) vielen danke allen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 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