Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Eine neue Komponente mit neuen Farben für Tabsheets, die den Focus haben.<br>
<br>
unit APgeCtrl;<br>
<br>
interface<br>
<br>
uses<br>
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl;<br>
<br>
type<br>
TAPageControl = class(TPageControl)<br>
private<br>
procedure AutoInitialize;<br>
protected<br>
procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); override;<br>
public<br>
constructor Create(AOwner: TComponent); override;<br>
published<br>
{ Published-Deklarationen }<br>
end;<br>
<br>
procedure Register;<br>
<br>
implementation<br>
<br>
procedure Register;<br>
begin<br>
RegisterComponents('NeueKompos', [TAPageControl]);<br>
end;<br>
<br>
procedure TAPageControl.AutoInitialize;<br>
begin<br>
OwnerDraw := True;<br>
end;<br>
<br>
constructor TAPageControl.Create(AOwner: TComponent);<br>
begin<br>
inherited Create(AOwner);<br>
AutoInitialize;<br>
end;<br>
<br>
{ Die Methode DrawTab zeichnet ein Register. }<br>
<br>
procedure TAPageControl.DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean);<br>
{ Beschreibung<br>
Überschreiben Sie DrawTab in einer abgeleiteten Klasse, um das Zeichnen von Registern zu steuern.<br>
TabIndex ist der Index des Registers, das gezeichnet werden soll.<br>
Rect ist der Bereich, in dem das Register gezeichnet werden soll.<br>
Active gibt an, ob das Register aktiviert ist.<br>
Mit der Eigenschaft Canvas wird das Register ausgefüllt.<br>
}<br>
var<br>
R : TRect;<br>
hi: TTCHitTestInfo;<br>
MouseOnTab : integer;<br>
MouseKoord : TPoint;<br>
FontFarbe : TColor;<br>
begin<br>
R := Rect;<br>
with canvas do begin<br>
FontFarbe := clWindowText;<br>
if Active and Focused then begin<br>
Brush.Color := NeueFocusFarbe; // Was ihr
wollt<br>
FillRect(Rect);<br>
DrawFocusRect(Rect);<br>
FontFarbe := NeueFocusFontFarbe; // Was ihr wollt<br>
end;<br>
if HotTrack then begin<br>
MouseKoord := ScreenToClient(Mouse.CursorPos);<br>
hi.pt.x := MouseKoord.X;<br>
hi.pt.y := MouseKoord.Y;<br>
hi.flags := 0;<br>
MouseOnTab := Perform(TCM_HITTEST, 0, longint
(@hi));<br>
if MouseOnTab=TabIndex then FontFarbe :=
clBlue;<br>
end;<br>
Inc(R.Top, 3);<br>
Font.Color := FontFarbe;<br>
if Active then begin<br>
inherited DrawTab(TabIndex, Rect, Active);<br>
Font.Style := [fsBold];<br>
end;<br>
DrawText(Handle,PChar(Pages[TabIndex].Caption),Length
(Pages[TabIndex].Caption),R,DT_CENTER);<br>
end;<br>
end;<br>
<br>
end.<br>
Comment