| Autor |
Beitrag |
mb
      
Beiträge: 185
|
Verfasst: Mo 03.03.03 14:40
Hallo!
Habe zwei Fragen zum PageControl:
1. Wie kann ich den Reiter der aktiven Registerkarte (anders-)farbig darstellen bzw. hervorheben ??
2. Wie kann ich es erreichen, dass bei mehrzeiligen Registern diese in der Reihenfolge bleiben, also nicht immer die aktive Reihe unten ist?? Ist dies möglich? (Ich möchte keine einzeiligen Reiter, da es zu viele sind)
3. ...oder gibt es eine andere (einfache) möglichkeit die Pages zu steuern und die Reiter ganz auszublenden ? (allerdings wollte ich nicht ein ganz neues Control selbst erstellen ... SelectPage( ... ) und derartige Befehle sind mir schon bekannt)
_________________ Gruß,
MB
|
|
mb 
      
Beiträge: 185
|
Verfasst: Di 04.03.03 13:32
Hat wirklich keiner hier ne Idee, wie das geht...
z.B. die Reiter einer Page farbig darzustellen ??
_________________ Gruß,
MB
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Di 04.03.03 13:46
| mb hat folgendes geschrieben: | Hat wirklich keiner hier ne Idee, wie das geht...
z.B. die Reiter einer Page farbig darzustellen ?? |
Hallo
slber zeichnen bei ondrawtab des pagecontrols
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| //ownerdraw des pagecontrols auf true stellen procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin with control as TCustomTabControl do begin //hintergrund canvas.brush.color:=clBtnFace; canvas.fillrect(rect); //Text ausgeben if tabindex=0 then canvas.font.color := clred else canvas.font.color := clgreen; if active then canvas.font.style:=[fsbold] else canvas.font.style:=[]; canvas.textout(rect.left+10,rect.top+3,PageControl1.Pages[tabindex].Caption); end; end; |
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
mb 
      
Beiträge: 185
|
Verfasst: Di 04.03.03 13:56
Danke für die zügige Antwort. Leider funktioniert das bei mir nicht. Ähnlich hatte ich es bereits versucht, aber auch mit Deinem Code-Snippet sehe ich nach neuer Compilierung keinen Unterschied - unter XP - egal, ob Luna aktiv oder inaktiv ist...
Weißt Du zufällig, ob es möglich ist, dass die Reihenfolge der Registerkarten (mehrzeilig) gleich bleibt, und dass nicht immer die aktive Reihe unten ist?
_________________ Gruß,
MB
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Di 04.03.03 14:00
| mb hat folgendes geschrieben: | Danke für die zügige Antwort. Leider funktioniert das bei mir nicht. Ähnlich hatte ich es bereits versucht, aber auch mit Deinem Code-Snippet sehe ich nach neuer Compilierung keinen Unterschied - unter XP - egal, ob Luna aktiv oder inaktiv ist...
|
| Keldorn hat folgendes geschrieben: |
//ownerdraw des pagecontrols auf true stellen
|
gelesen?
Win XP habe ich nicht unter W2K gehts
| Zitat: |
Weißt Du zufällig, ob es möglich ist, dass die Reihenfolge der Registerkarten (mehrzeilig) gleich bleibt, und dass nicht immer die aktive Reihe unten ist? |
Nein, leider keine Ahnung
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
mb 
      
Beiträge: 185
|
Verfasst: Di 04.03.03 14:22
| Zitat: |
//ownerdraw des pagecontrols auf true stellen
|
Ok, danke. Wie dumm von mir. So geht es. Leider ist dann natürlich das ganze XP-Design hinüber. Besser wäre es, wenn die Registerkarten weiterhin "schattiert" dargestellt würden, und nur die Schriftfarbe anders wäre ... aber das ist wahrscheinlich ja nicht soo einfach möglich.
Danke trotzdem!
_________________ Gruß,
MB
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Di 04.03.03 14:33
XP hab ich nicht, wie gesagt.
dann nimm mal die Zeilen für den Hintergrund raus (canvas.fillrect) und zeichne nur den Text , das kann dann aber andere Probleme bringen.
mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
mb 
      
Beiträge: 185
|
Verfasst: Di 04.03.03 15:07
Ja, das hatte ich spontan auch schon versucht. Bringt aber keinen Erfolg. Sobald "OwnerDraw" auf TRUE gesetzt ist, ist das XP-Design nicht mehr aktiv. Außerdem werden - solage eben OwnerDraw auf TRUE ist - auch im DesignModus nicht mehr die Titel der Registerkarten angezeigt...
Die Methode ist mir nun prinzipiell klar, jedoch in meinem aktuellen Fall ungeeignet, da ich das XP-Design haben will 
_________________ Gruß,
MB
|
|
mb 
      
Beiträge: 185
|
Verfasst: Di 04.03.03 15:07
oops... die ist irgenwie zweimal angekommen...
_________________ Gruß,
MB
|
|