![]() |
Re: TPageControl und dynamische anzahl TTabsheets
Nö, dynamisch heißt halt "Schreibarbeit".
|
Re: TPageControl und dynamische anzahl TTabsheets
Zitat:
Delphi-Quellcode:
in diese Komponente fügst du alle Button usw. ein die du benötigst. Anschließend must du deiner Pagecontrol nur eine neue Instanz dieser Komponente hinzufügen.
TMeinTabSheet = class(TTabSheet)
Der Zugriff auf die neuen TabSheets kann dann entweder durch FindComponent erfolgen oder aber du fügst die neuen TabSheets in eine TList ein und kannst dann darüber auf die TabSheets zugreifen. MfG Adler |
Re: TPageControl und dynamische anzahl TTabsheets
super adler! thx!
|
Re: TPageControl und dynamische anzahl TTabsheets
Zitat:
|
Re: TPageControl und dynamische anzahl TTabsheets
ich hab das problem jetzt anders gelöst:
in der Win 3.1-Palette gibts ein TTabSet das hab ich genommen, und jedesmal, wenn die Seite gewechselt wird, wird der aktuelle Zustand in einem Array gespeichert und für die entsprechende Seite geladen->ich brauch nur die buttons usw. einmal in der Entwicklungsphase auf das Formular setzen *VorLauterBäumeDenWaldNichtGesehen* (habs gepostet, falls jemand ein ähnliches problem hat/haben wird) |
Re: TPageControl und dynamische anzahl TTabsheets
Ich hab ein ähnliches Problem. Ich hab mir ebenfalls einen neuen Typ von TTabsheet erstellt, so wie Adler sagte. Nun kann ich problemlos unmengen von Tabsheets erzeugen, aber ich möchte sie ja auch mal wieder schließen.
Dazu habe ich einen Button auf alle Tabsheets gesetzt und in die onclick-prozedur geschrieben: "Form1.pagecontrol1.activepage.free" Das schließt zwar die Seite, aber das Programm stürzt jedesmal mit einer Zugriffsverletzung ab. Wenn ich aber dasselbe mit einem Button außerhalb des Tabsheets mache, funzt alles perfekt. Kann mir irgendjemand sagen, was ich falsch mache? |
Re: TPageControl und dynamische anzahl TTabsheets
OK, ich hab das ganze jetzt mit einem Button außerhalb des Tabsheets gelöst.
Trotzdem würde mich wirklich interessieren, was ich mit meinem anderen Ansatz falsch mache. Sorry, das ist vielleicht eine blöde Frage, aber ich bin halt nur ein Teilzeithobbyprogrammierer, der gerne etwas dazulernen möchte. :wink: |
Re: TPageControl und dynamische anzahl TTabsheets
Ich hab mir nicht alles durch gelesen und weiß auch nicht ob ihr schon ne lösung gefunden habt...Aber ich hab ein ähnliches Problem gehabt und es so gelöst:
Einen Frame erstellt in dem ich die Komponenten reingepackt hab die ich später im tabsheet haben will dann zu laufzeit ein leeres tabsheet erstellt in das ich dann das Frame erstellt hab. Fertig...Ansteuern mit PageControl.Pages[PageControl.ActivePageIndex].Tag. Das ist eindeutig |
Re: TPageControl und dynamische anzahl TTabsheets
HI,
@Marco: Deine Beobachtung ist richtig: Grundsätzlich kann sich keine Komponente in einer eigenen Ereignisbehandlung selbst zerstören, da die Methode einen Zeiger auf das aufrufende Objekt hält, und der zeigt dann nach der Rückkehr plötzlich ins Leere, also gibt es eine Schutzverletzung. Von woanders geht es natürlich. Zur dynamischen Anzahl Tabsheets: Wenn zur Desingzeit bereits das Aussehen der einzelnen Tabsheets bekannt ist, muss man die natürlichnicht vollständig von Hand tippen, vielmehr gibt es da diverse Möglichkeiten, sich das Leben zu vereinfachen: - Alles visuell fertigmachen, und nur das was benötigt wird anzeigen, oder - dynamisch: Auch alle Tabsheets soweit bekannt zu Designzeit fertig machen, GExperts frei aus dem Netz holen, Tabsheet etc markieren, Mnuepunkt ComponentsToCode auswählen, den Code für die echte dynamische Erzeugung in den Editor pasten, und man hat es perfekt dynamisch. Grüsse Woki |
Re: TPageControl und dynamische anzahl TTabsheets
Ja, sowas hatte ich schon vermutet. Dann muß ich wohl damit abfinden. Aber trotzdem danke! :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 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