Hallo zusammen,
habe nun eine Lösung gefunden - allerdings nicht richtig verstanden
Im From die procedure TabWndProc deklarieren
Delphi-Quellcode:
private
{ Private-Deklarationen }
procedure TabWndProc(var Msg: TMessage); //PageControl
Variable FOldTabProc deklarieren
Delphi-Quellcode:
var
Form_Auftrag: TForm_Auftrag;
FOldTabProc : TWndMethod; //PageControl
Implementation
In FormActivate die Tabs verstecken
Delphi-Quellcode:
procedure TForm_Auftrag.FormActivate(Sender: TObject);
var P : integer;
begin
//Tabs verstecken
for P := 0 to PageControl1.PageCount -1 do
begin
PageControl1.Pages[P].TabVisible := false;
end;
end;
In FormCreate TabWndProc aufrufen
Delphi-Quellcode:
procedure TForm_Auftrag.FormCreate(Sender: TObject);
begin
FOldTabProc := PageControl1.WindowProc; //PageControl
PageControl1.WindowProc := TabWndProc; //PageControl
end;
um den Rahmen auszublenden
Delphi-Quellcode:
procedure TForm_Auftrag.TabWndProc(
var Msg: TMessage);
begin
FOldTabProc(Msg);
if Msg.Msg = tcm_AdjustRect
then begin
case PageControl1.TabPosition
of
tpTop:
begin
PRect(Msg.LParam)^.Left := 4;
PRect(Msg.LParam)^.Right := PageControl1.ClientWidth;
Dec(PRect(Msg.LParam)^.Top, 8);
PRect(Msg.LParam)^.Bottom := PageControl1.ClientHeight;
end;
tpBottom:
begin
PRect(Msg.LParam)^.Left := 8;
PRect(Msg.LParam)^.Right := PageControl1.ClientWidth;
Dec(PRect(Msg.LParam)^.Top, 4);
PRect(Msg.LParam)^.Bottom := PageControl1.ClientHeight;
end;
end;
end;
end;
Das Blöde ist, es funktioniert nur mit Tabposition tpTop, für tpBottom habe ich keine funktionierende Einstellung gefunden. Bei Einstellung tpTop zur Entwurfszeit muß ich zur Laufzeit das PageControl ausrichten da es nach oben schnappt
Was da in TabWndProc genau passiert habe ich nicht verstanden, vielleicht kann das einer erklären und findet auch eine Lösung für Einstellung tpBottom
Gruß
Sidi61