AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aktives TabSheet farblich hervorheben

Ein Thema von Chemiker · begonnen am 16. Dez 2006 · letzter Beitrag vom 17. Dez 2006
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 14:19
Hallo,

ich würde gerne den Reiter in einem aktive TabSheet farblich hervorheben, damit es leichter für den Benutzer ist, zu Erkennen welcher TabSheet aktiv ist.

Ich habe zur Zeit keinen Ansatzpunkt.

Kann mir jemand weiterhelfen?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 14:21
Moin Chemiker,

Du müsstest dazu nur die Eigenschaft OwnerDraw des PageControls auf true setzen, und kannst dann im Ereignis OnDrawTab das Tab nach Herzenslust gestalten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 14:27
Zitat von Chemiker:
Hallo,

ich würde gerne den Reiter in einem aktive TabSheet farblich hervorheben, damit es leichter für den Benutzer ist, zu Erkennen welcher TabSheet aktiv ist.

Ich habe zur Zeit keinen Ansatzpunkt.

Kann mir jemand weiterhelfen?

Bis bald Chemiker
Hallo,

das aktive Sheet ist doch im Vordergrund, deutlicher gehts nicht - und dazu gibt es noch die Eigenschaft Hilighted.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 15:33
Hallo,

Zitat:
Hallo,

das aktive Sheet ist doch im Vordergrund, deutlicher gehts nicht - und dazu gibt es noch die Eigenschaft Hilighted.

Gruss Reinhard
Bei einem PageControl ist es noch deutlich, aber wenn man innerhalb des TabSheet einen weiter PageControl mit mehren TabSheet hat ist es für einen Benutzer nicht immer so deutlich.

Mit Highlighted wir der Tabsheet permanent farblich hervorgehoben und nicht nur der Aktive.

Zitat:
Moin Chemiker,

Du müsstest dazu nur die Eigenschaft OwnerDraw des PageControls auf true setzen, und kannst dann im Ereignis OnDrawTab das Tab nach Herzenslust gestalten.
Mit dem Aufruf in dem Ereignis OnDrawTab

TabSheet1.Brush.color := clred; verschwindet die Bezeichnung der Reiter und die Farbe wird erst beim 2 wechsel des Tabsheets angezeigt.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 18:52
Moin Chemiker,

hier mal ein kleines Beispiel:

Delphi-Quellcode:
procedure TfrmcsDLMain.pcMainDrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
  if Active then begin
    Control.Canvas.Brush.Color := clInfoBk;
    Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold];
  end else begin
    Control.Canvas.Brush.Color := clBtnFace;
    Control.Canvas.Font.Style := Control.Canvas.Font.Style - [fsBold];
  end;
  Control.Canvas.FillRect(Rect);
  Control.Canvas.TextOut(Rect.Left+2,Rect.Top+2,(Control as TPageControl).Pages[TabIndex].Caption);
end;
Das die Bezeichnung verschwindet ist nicht weiter verwunderlich, denn wenn das auf OwnerDraw gestellt ist, muss Du auch die Beschriftung selber zeichnen (TextOut).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 20:06
Hallo,

die beiden Anweisungen

Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold]; habe ich gelöscht, weil sie dazu führten das über die Reiter hinaus geschrieben wurde.

Darüberhinaus habe ich in der Anweisung

Control.Canvas.TextOut(Rect.Left+2,Rect.Top+2,(Control as TPageControl).Pages[TabIndex].Caption); die 2 von Rect.Left und Rect.Top durch eine 5 ersetzt.

Das sieht schon ganz gut aus, da ist nur noch ein Problem:

ich habe 2 PageControls, bei dem äußern PageControl ist ein Rahmen um die Beschriftung was nicht so gut aussieht, bei dem Inneren ist dieser nicht.

Wie kann man vermeiden das der Rahmen um die Beschriftung der Reiter gezeichnet wird.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: Aktives TabSheet farblich hervorheben

  Alt 16. Dez 2006, 20:40
Hi,

Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold]; kannst du mit Sicherheit lassen, wenn du die Breite mit einem bestimmten Faktor (kA, wie dieser lautet) veränderst.


Unter dem letzten Problem mit den beiden PageControls kann ich mir leider nichts vorstellen. Hast du da etwa zwei PageControls praktisch ineinander oder was meinst du ? Kannst ja mal einen Screenshot hochladen.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Aktives TabSheet farblich hervorheben

  Alt 17. Dez 2006, 10:24
Hallo,


Zitat:
Delphi-Quellcode: markieren
Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold];


kannst du mit Sicherheit lassen, wenn du die Breite mit einem bestimmten Faktor (kA, wie dieser lautet) veränderst.
ich habe nicht verstanden was Du damit meinst?

Zitat:
Unter dem letzten Problem mit den beiden PageControls kann ich mir leider nichts vorstellen. Hast du da etwa zwei PageControls praktisch ineinander oder was meinst du ? Kannst ja mal einen Screenshot hochladen.
Ja ich habe mehre PageControls ineinander.

Ein Screenschot kann ich leider nicht so einfach Hochladen, weil ich mit dem "Delphi-Rechner" nicht ins Internet gehe, auf dem "Delphi-Rechner" ist kein Virenscanner, Firewall usw.. Es wird auch nicht ständig Bill G. benachrichtigt welche Unterhose ich grade beim Programmieren anhabe. Ich muss auch nicht ständig irgendwelche LiveUpdates von Windows, Norton usw. durchführen.

Ich kann den Rechner anstellen und mit einer vernünftigen Geschwindigkeit arbeiten.

Entschuldigung das musste ich mal loswerden, weil der Bildschirm heute mal wieder ständig mit Sicherheitswarnungen der Firewall vollgeschrieben wird und Norten mich grade wieder zu einem LiveUpdate auffordert und ich das letzte Update erst gestern durchgeführt habe.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Aktives TabSheet farblich hervorheben

  Alt 17. Dez 2006, 12:29
Delphi-Quellcode:
Delphi-Quellcode: markieren
Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold];


kannst du mit Sicherheit lassen, wenn du die Breite mit einem bestimmten Faktor (kA, wie dieser lautet) veränderst.
Damit wollte ich sagen, dass du die Breite der TabSheets mit einem Faktor multiplizierst, welcher immer passt, denn:
du hast in einem TabSheet
asd
im Anderen
asdasdasdasdasdasdasd
.
Der Zweite ist also von sich aus größer und müsste, genauso wie der erste TabSheet, mit einem Faktor multipliziert werden, so dass es perfekt passt. Allerdings ist das verändern der Breite eines Sheets nicht leicht, musst mal im Forum suchen.


[OT]
Stell doch Norton ruhig.
[/OT]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz