![]() |
Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Ich habe hier ein Programm bei dem dynamisch in einem Pagecontrol verschiedene Tabs erzeugt werden.
Diese werden nach einem Neustart der Anwendung auch ordentlich wiederhergestellt. Nun kam der Wunsch bei den Usern auf die Reihenfolge der Tabs zu verschieben. Das habe ich auch mit dem Tipp von ![]()
Delphi-Quellcode:
Das Ende vom Lied war aber dass weder die Indizes richtig waren noch der Inhalt. Falls gewünscht mache ich morgen gerne mal ein kleines Beispielprogramm fertig, aber vielleicht hat ja schon so jemand eine Idee wo die Ursache liegt
for n := 0 to PageControl1.PageCount - 1 do
begin PageControl1.Pages[n].Pageindex:=readinteger(….. end; |
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Wäre es nicht einfacher erst die Benutzereinstellung zu lesen, und dann gleich in der richtigen Reihenfolge die Tabs zu erstellen?
|
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Was Hobbycoder schrieb.
Sherlock |
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Zitat:
|
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Zitat:
|
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe jetzt auch einmal ein kleines Beispiel erstellt und hochgeladen.
Die entscheidende Stelle ist hier:
Delphi-Quellcode:
Dabei bekomme ich allerdings eine Listenindex überschreitet das Maximum Meldung
procedure TForm1.restoreLayout;
var ini: TIniFile; n: Integer; numberOfSheets: Integer; begin ini := TIniFile.Create(extractfilepath(paramstr(0)) + 'Layout.ini'); numberOfSheets := ini.ReadInteger('Common', 'NumberOfSheets', PageControl1.PageCount); for n := 1 to numberOfSheets - 2 do//zwei Feste Tabs begin createSheet; end; for n := 0 to PageControl1.PageCount do PageControl1.Pages[n].PageIndex:=ini.ReadInteger('Order', 'PageControl' + PageControl1.Pages[n].Name, PageControl1.Pages[n].PageIndex); ini.Free; end; Vergesst es. Ist zu früh. Der Index muss natürlich bis PageCount-1 laufen und dann funktioniert es auch wie erwartet. Ich habe ursprünglich immer den Fehler gemacht und bin nicht über den Namen des Sheets gegangen sondern über Pages[n]. Das ist natürlich schwierig. Der Namen ist ja dafür da ein Element eindeutig zu kennzeichnen. Ich hoffe im Anhang ist jetzt die funktionierende Version |
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Deine untere Schleife da sollte nur bis Pagecount-1 gehen.
So gut wie alles ist 0 basiert zu zählen. Sherlock |
AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern
Ja absolut richtig. Hatte ich auch in meinem editierten Text geschrieben
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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 by Thomas Breitkreuz