Einzelnen Beitrag anzeigen

HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#8

Re: TabVisible -> Bei selber zeichnen

  Alt 1. Apr 2008, 16:25
Für diese Lösung habe ich nun 2 Tage gebraucht

Diese kommt an den Anfnag der Procedure, welche am Anfang dieses Themas dargestellt wurde.
Delphi-Quellcode:
var
 I, Unsichtbar, Ende, Anpassung: Integer;

//Unsichtbare Tabs übergehen
 Unsichtbar := 0;
 Ende := 0;
 Anpassung := 0;

 //Bis zum aktuellen TabIndex, die unsichtbaren finden
 for I := 0 to Der_TabIndex do
 begin

  if PageControl.Pages[I].TabVisible = FALSE then
  begin

   Anpassung := Anpassung + 1;

  end;

 end;

 //Nächsten sichtbaren nach aktuellem Tab (mit Anpassung der unsichtbaren) ermitteln
 for I := (Der_TabIndex + Anpassung) to PageControl.PageCount - 1 do
 begin

  if PageControl.Pages[I].TabVisible = TRUE then
  begin
   Ende := I;
   break;
  end;

 end;

 //Alle unsichtbare in dem Bereich bis zum nächsten sichtbaren ermitteln (Verschiebung nach links)
 for I := 0 to (Ende - 1) do
 begin

  if PageControl.Pages[I].TabVisible = FALSE then
  begin

   Unsichtbar := Unsichtbar + 1;

  end;

 end;

 If Unsichtbar > 0 then Der_TabIndex := Der_TabIndex + Unsichtbar;

end;
Bessere Lösungen gibt es bestimmt. Vielleicht gibt es hier ja welche die Lust am optimieren haben.

Die Lösung dort oben setzt den TabIndex immer an die richtige Stelle, egal welche Tabs ausgeblendet wurden.

Gruss

Holger
  Mit Zitat antworten Zitat