AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ist meine TPageControl-Philosophie richtig?

Offene Frage von "himitsu"
Ein Thema von Der schöne Günther · begonnen am 9. Dez 2014 · letzter Beitrag vom 29. Dez 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Ist meine TPageControl-Philosophie richtig?

  Alt 9. Dez 2014, 20:58
Ein paar Sachen fallen schon auf
Delphi-Quellcode:
procedure TMainForm.bottomFramenextPageButtonClick(Sender: TObject);
begin

   if (mainPageControl.ActivePage = firstSheet) then begin
      topFrame.ProgressString := '2/3';
      mainPageControl.ActivePage := secondSheet
   end else if (mainPageControl.ActivePage = secondSheet) then begin
      topFrame.ProgressString := '3/3';
      mainPageControl.ActivePage := thirdSheet;
   end;

end;

procedure TMainForm.bottomFramepreviousPageButtonClick(Sender: TObject);
begin
   if (mainPageControl.ActivePage = thirdSheet) then begin
      topFrame.ProgressString := '2/3';
      mainPageControl.ActivePage := secondSheet
   end else if (mainPageControl.ActivePage = secondSheet) then begin
      topFrame.ProgressString := '1/3';
      mainPageControl.ActivePage := firstSheet;
   end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
   mainPageControl.ActivePage := firstSheet;
   topFrame.ProgressString := '1/3';
   firstPageFrame.initGUI();
end;
kann man auch ganz einfach so schreiben
Delphi-Quellcode:
procedure TMainForm.UpdateProgress;
begin
  topFrame.ProgressString := Format( '%d/%d',[ mainPageControl.TabIndex, mainPageControl.PageCount ] );
end;

procedure TMainForm.mainPageControlChange( Sender : TObject );
begin
  UpdateProgress;
end;

procedure TMainForm.bottomFramenextPageButtonClick(Sender: TObject);
begin
  if mainPageControl.TabIndex < mainPageControl.PageCount - 1 then
    mainPageControl.TabIndex := mainPageControl.TabIndex + 1;
end;

procedure TMainForm.bottomFramepreviousPageButtonClick(Sender: TObject);
begin
  if mainPageControl.TabIndex > 0 then
    mainPageControl.TabIndex := mainPageControl.TabIndex - 1;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  mainPageControl.ActivePage := firstSheet;
  firstPageFrame.initGUI();
  UodateProgress;
end;
Und schon wird es wurscht, wieviele Seiten dein PageControl hat.

Und damit wären wir auch schon beim wieviel bzw. was. Wenn du hier stärker trennen würdest (Anzeige und Logik), dann wäre das wesentlich flexibler und auch einfacher in der Handhabung.

In ein PageControl kann man so ziemlich alles eindocken. Formulare, Panels, ... Wenn man jetzt im Hintergrund ein Liste mit Instanzen hat und jedem Klassentyp eine bestimmtes Control (Form, Panel, etc.) zuordnet, dann kann man zu jedem Klassentyp das passende Control erzeugen, die Instanz zuweisen und in das PageControl eindocken.

Und schon ist es völlig Wurscht, was dort angezeigt wird.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
 


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 09:24 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