Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Page in JvPageList hinzufügen (https://www.delphipraxis.net/59910-page-jvpagelist-hinzufuegen.html)

faux 30. Dez 2005 13:34


Page in JvPageList hinzufügen
 
Hallo!
Wie kann ich denn einer JvPageList eine Page hinzufügen? Das hab ich noch nicht ganz durchschaut.
Muss ich diese dann auch der JvTabBar hinzufügen, oder merkt die, dass da was hinzugekommen ist?

Grüße
Faux

jbg 30. Dez 2005 13:49

Re: Page in JvPageList hinzufügen
 
Zitat:

Zitat von faux
Wie kann ich denn einer JvPageList eine Page hinzufügen? Das hab ich noch nicht ganz durchschaut.

Indem du einen Rechtsklick auf die TJvPageList machst und dann "New Page" auswählst.
Die beiden arbeiten nur beim Umschalten der Tabs zusammen. Die Seiten musst du bei beiden synchron hinzufügen.

faux 30. Dez 2005 13:51

Re: Page in JvPageList hinzufügen
 
Hallo!

Ja, soweit war ich auch schon. ;)
Ich hätte meine Frage präzisieren sollen: Wärend der Laufzeit. :D

Danke schon mal.

Grüße
Faux

jbg 30. Dez 2005 14:01

Re: Page in JvPageList hinzufügen
 
Delphi-Quellcode:
var
  Page: TJvStandardPage;
  Item: TJvTabBarItem;
begin
  Item := MyJvTabBar.AddTab('MyTab');
  Page := TJvStandardPage.Create(Self);
  Page.PageList := MyJvPageList;

  { die beiden (Tab und Page) miteinander auf Programmierebene verknüpfen, also nur für den Programmierer zum leichteren Auffinden der Page und TabItem gedacht. Die Komponenten arbeiten deswegen nicht besser zusammen, sondern haben auch nur ihre schon vorhandene Funktionalität }
  { Um später über Item.Data auf die Page zugreifen zu können }
  Item.Data := Page;
  { Damit beim freigeben des TabBarItem auch die Page freigegeben wird. (Gibt es erst seit ein paar Tagen im JVCL daily zip.) }
  Item.AutoDeleteData.Add(Page);
  { Von der Page den direkten Zugriff auf das TabBarItem ermöglichen (Gibt es erst seit ein paar Tagen im JVCL daily zip.) }
  Page.Data := Item;

  with TButton.Create(Page) do
    Parent := Page;
end;

faux 30. Dez 2005 14:08

Re: Page in JvPageList hinzufügen
 
Danke für die Antwort.
Hat funktioniert.

Grüße
Faux

faux 30. Dez 2005 14:13

Re: Page in JvPageList hinzufügen
 
Eine Frage noch:
Wie kann ich denn das Schließen der Tabs lösen?
Bei mir wird immer ein Falscher Tab geschlossen?!

Grüße
Faux

jbg 30. Dez 2005 14:24

Re: Page in JvPageList hinzufügen
 
Die Tab-Items und PageList-Pages Indizes müssen übereinstimmen. Wird z.B. das 0. TabBarItem, so wird auch die 0. Page geschlossen. Deswegen musst du beide Komponenten mit der Anzahl gleich/synchron halten.

faux 30. Dez 2005 14:33

Re: Page in JvPageList hinzufügen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bekomme beim Schließen der Applikation bzw des letzen Tabs eine Zugriffsverletzung:

Code:
Exception EAccessViolation in Modul Project1.exe at 0001424C....
Und das Problem, dass die Page nicht geschlossen wird, besteht weiterhin. :cry:
Ich bin zu dumm dazu.. *g*

Kann sich mal wer mein Projekt ansehen, pls.

Grüße
Faux

jbg 30. Dez 2005 14:50

Re: Page in JvPageList hinzufügen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der Fehler tritt bei mir nicht auf. Ich nutze aber auch die CVS Version der JVCL (bin also so aktuell wie möglich, mit all den Vor- und Nachteilen).

Ich habe mal die neuesten Dateien (JvTabBar.pas und JvPageList.pas) aus dem CVS angehängt. Alternativ kannst du dir auch ein daily zip der JCL und JVCL holen.
http://jcl.sf.net/daily
http://jvcl.sf.net/daily

faux 30. Dez 2005 15:02

Re: Page in JvPageList hinzufügen
 
Zitat:

Zitat von jbg
Der Fehler tritt bei mir nicht auf.

In der von mir kompillierten EXE auch nicht?
Denn bei mir besteht das Problem weiterhin...
Bitte um Hilfe! :cry: :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 1 von 2  1 2      

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