2010-12-15 6 views
3

Je cherche (je pense) pour l'API Windows que je peux utiliser dans mon événement OnDrawTab dans le composant TPageControl pour afficher du texte en gris sur les onglets que je choisis. Je l'ai fait dans le passé et de mémoire c'est là où je l'ai fait (dans l'événement OnDrawTab). Malheureusement, je n'ai pas accès au code pour regarder en arrière comment je l'ai fait avant. Je suis sûr que j'ai utilisé quelque chose comme DrawText ou TextOut ou quelque chose, mais j'ai été capable d'ajouter un style de drapeau ou de format qui lui donnait l'apparence de grisé. Pour la vie de moi, je ne peux pas trouver la commande que j'ai utilisée. ODS_DISABLED drapeau semble être quelque chose comme ce que je suis après mais c'est un gestionnaire de messages Windows, donc je suis sûr que je n'ai pas utilisé cela auparavant. Je n'écris pas un composant ici, je ne gère que l'événement OnDrawTab.PageControl désactivé texte sur les onglets - texte gris

Quelqu'un me pointe-t-il dans la bonne direction?

J'utilise Delphi 6.

Merci

Jason

Répondre

4

Vous pouvez utiliser les fonctions DrawState et GrayString.

procedure TForm1.FormClick(Sender: TObject); 
var 
    s: string; 
begin 
    s := 'testar'; 
    DrawState(Canvas.Handle, 
      0, 
      nil, 
      integer(@s[1]), 
      length(s), 
      10, 
      10, 
      0, 
      0, 
      DST_TEXT or DSS_DISABLED) 
end; 
+0

OK, je suppose que vous connaissez le suédois. Sinon, "testar" signifie "test". –

+0

Merci. C'est parfait. Exactement ce que je cherchais. – Jason

+0

+1, bonne astuce. Je n'ai pas remarqué à propos de ces fonctions. merci :) –

Questions connexes