Einzelnen Beitrag anzeigen

Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Reiter in einem TPageControl disabeln

  Alt 8. Apr 2004, 18:18
Hallo den link habe ich mir jetzt nicht ganz genau angeguugt, sieht aber anders aus wie meins. Bei DF und DG gabs mal nen ähnlichen thread dazu http://www.delphi-forum.de/viewtopic...ht=pagecontrol
Dann wird die Caption schön "disabled" wie bei einem Button dargestellt

Delphi-Quellcode:
  TForm1 = class(TForm)
   ...
  private
    { Private-Deklarationen }
    AltePagecontrolSeite: integer;
...

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  ATabIndex: Integer; const Rect: TRect; Active: Boolean);
//bitte Tabindex in Deklaration mit ATabindex auswechseln, sonst überschneidung mit Pagecontrol.tabindex. Deklaration in Tform nicht vergessen
//ownerDraw des pagecontrols auf true setzen
begin
  with control as TPageControl do
    begin
      //jede zweite Seite "disablen"
      if odd(Atabindex) then
        begin
          canvas.Brush.Style := bssolid;
          canvas.font.Color := clBtnHighlight;
          canvas.TextOut(rect.left+6,rect.top+5,Pages[ATabindex].Caption);

          //text in anderer Farbe wieder drüberzeichnen (1 Pixel nach links oben versetzt)
          canvas.Brush.Style := bsclear;
          canvas.font.Color := clBtnShadow;
          canvas.TextOut(rect.left+5,rect.top+4,Pages[ATabindex].Caption);
        end
       else
        begin
          //sonst normal zeichnen
          canvas.Brush.Style := bssolid;
          canvas.font.Color := clbtntext;
          canvas.TextOut(rect.left+6,rect.top+5,Pages[ATabindex].Caption);
        end;
    end;
end;

procedure TForm1.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  AltePagecontrolSeite:=(sender as TPageControl).ActivePageIndex;
end;

procedure TForm1.PageControl1Change(Sender: TObject);
//Selektieren einer Seite verhindern.
begin
  with sender as TPageControl do
    begin
      //jede zweite Seite "disablen"
      if odd(ActivePageIndex) then ActivePageIndex:=AltePagecontrolSeite;
    end;
end;
Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat