Proceduren tegner tabulatorerne på en TTabControl. Den der p.t. er valgt vil blive farvet grøn. Det udkommenterede er den stump kode der sætter et stykke grafik ind. Snuppet fra M.Cantu himself, men kan godt gøres pænere.
procedure TFormMain.TCKortDrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var TabText: string; OutRect: TRect; OldColor : TColor; begin TabText := TTabControl(Control).Tabs[TabIndex]; OutRect := Rect; InflateRect (OutRect, -3, -3); OutRect.Left := OutRect.Left + {BmpSide} + 3; OldColor := Control.Canvas.Font.Color; try if Active then Control.Canvas.Font.Color := clGreen; DrawText(Control.Canvas.Handle, PChar(TabText), length(TabText),OutRect, dt_Left or dt_SingleLine or dt_VCenter); finally Control.Canvas.Font.Color := OldColor; end;
Nu sker der det, at teksten bliver grøn på den aktive TAB. Jeg kunne godt tænke mig at et ikon var tilføjet og som får en anden farve hvis noget er ændret på fanebladet.
Jeg synes du er lidt hurtig og burde sætte dig ned og kigge på koden. Så havde du ikke spurgt vedr. den grønne farve. Hvis noget er ændret på fanebladet, sætter du en boolsk var. og tjekker på det i koden hvor du veksler mellem to bitmaps
Dette lille program tegner et image (fra TImageList der indeholder 3 16x16 bitmaps) og placerer teksten ved siden af. Jeg har ikke lige tid til at finde ud af hvordan man gør fanebladet breddere - men det må være muligt.
Kig dog i koden! Du har fået hele pas-filen og mangler kun at putte komponenterne på en form før tingene kan oversættes.
Af koden fremgår det at det er en TPageControl. Der er også en TImageList som jeg har fyldt 3 knap-billeder i (se c:\programmer\fælles filer\borland shared\images\buttons). Med højreklik på TPageControl'en har jeg oprettet ditto 3 TTabSheet's. Endelig har jeg sat OwnerDraw = true.
Prøv det. Det er en vigtig forudsætning for at blive klogere, at man kigger på den hjælp man får og det kan godt være smiger bringer dig langt (:-) men prøv at studere det jeg har lagt op.
På rutinens navn (pcMainDrawTab) fremgår det ligeledes, at den er koblet på TPageControl'lens OnDrawTab-event.
... der er nogle gange hvor det kunne være rart at uploade filer til eksperten - men uden ekstra kontrol vil siden sikkert mættes af billeder af hjernedøde Britney S. uden hår. Det og andre useriøsheder.
Hvis jeg må lige tilsidst lige nævne. Det du har givet mig putter et ikon og gør teksten grøn når fanebladet bliver aktivt. Det jeg egentlig havde forstillet mig var, at som udgangspunkt var der et ikon på fanebladet. Når så noget på det aktive faneblad bliver ændret så skulle et andet ikon vises istedet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.