AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

Ein Thema von v2afrank · begonnen am 10. Okt 2018 · letzter Beitrag vom 11. Okt 2018
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#1

Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 10. Okt 2018, 15:34
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 hier hinbekommen. Nun hänge ich daran die Einstellungen des User zu lesen. Ich bin einfach mal davon ausgegangen nach dem erzeugen des Pagecontrols alle Pages durchzulaufen und den Tabindex zu setzen.Frei nach ddieser Funktion
Delphi-Quellcode:
for n := 0 to PageControl1.PageCount - 1 do
 begin
   PageControl1.Pages[n].Pageindex:=readinteger(…..
 end;
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
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
927 Beiträge
 
#2

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 10. Okt 2018, 15:38
Wäre es nicht einfacher erst die Benutzereinstellung zu lesen, und dann gleich in der richtigen Reihenfolge die Tabs zu erstellen?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 10. Okt 2018, 15:44
Was Hobbycoder schrieb.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 10. Okt 2018, 17:36
Ich bin einfach mal davon ausgegangen nach dem erzeugen des Pagecontrols alle Pages durchzulaufen und den Tabindex zu setzen.Frei nach ddieser Funktion
Delphi-Quellcode:
for n := 0 to PageControl1.PageCount - 1 do
 begin
   PageControl1.Pages[n].Pageindex:=readinteger(…..
 end;
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
Das kann nicht funktionieren, denn die Indices, auf die Du in der FOR-Schleife zugreifst, ändern sich ja innerhalb der Schleife. Du müsstest Dir die TabControls vorher in ein Array speichern und dann die FOR-Schleife ueber das Array laufen lassen. (und selbst das kann schiefgehen, da das Setzen des Index für einen Tab vermutlich die Indices für die anderen Tabs anpasst).
Thomas Mueller

Geändert von dummzeuch (10. Okt 2018 um 17:46 Uhr)
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 11. Okt 2018, 07:03
Wäre es nicht einfacher erst die Benutzereinstellung zu lesen, und dann gleich in der richtigen Reihenfolge die Tabs zu erstellen?
Ja wäre es und ist auch wäre auch so umzusetzen, allerdings habe ich zwei feste Pages die von Anfang an dabei sind.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 11. Okt 2018, 07:43
Ich habe jetzt auch einmal ein kleines Beispiel erstellt und hochgeladen.
Die entscheidende Stelle ist hier:
Delphi-Quellcode:
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;
Dabei bekomme ich allerdings eine Listenindex überschreitet das Maximum Meldung



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
Angehängte Dateien
Dateityp: zip tabsheet.zip (2,0 KB, 1x aufgerufen)

Geändert von v2afrank (11. Okt 2018 um 07:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 11. Okt 2018, 09:05
Deine untere Schleife da sollte nur bis Pagecount-1 gehen.

So gut wie alles ist 0 basiert zu zählen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Pagecontrol verschieben und Benutzereinstellungen lesen und speichern

  Alt 11. Okt 2018, 09:14
Ja absolut richtig. Hatte ich auch in meinem editierten Text geschrieben
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz