AGB  ·  Datenschutz  ·  Impressum  







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

schriftstile in einer Combobox

Ein Thema von chrio89 · begonnen am 16. Sep 2008 · letzter Beitrag vom 16. Sep 2008
Antwort Antwort
chrio89

Registriert seit: 11. Sep 2008
Ort: Erfurt
29 Beiträge
 
Delphi 7 Personal
 
#1

schriftstile in einer Combobox

  Alt 16. Sep 2008, 16:57
Hi ich hab gleich mal 2 Fragen:

1. kann man in einer Combobox für Items verschiedene Schriftstile verwenden (Ich würde gern bestimmte einträge gesondert hervorheben)

[edit=SirThornberry]zweite Frage entfernt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 17:06
Zitat von chrio89:
Hi ich hab gleich mal 2 Fragen:

1. kann man in einer Combobox für Items verschiedene Schriftstile verwenden (Ich würde gern bestimmte einträge gesondert hervorheben)
Hallo, das gesuchte Stichwort heißt OwnerDraw
Thomas
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 17:12
Es gab bei Delphi imemr so ein Beispiel-Projekt, wo alle verfügbaren Schriftarten eingelesen wurden und in eienr Combobox in der jeweiligen Schriftart dargestellt wurden (so wie man das von Word etc kennt). Guck dir das mal an.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 17:14
ComboBox.Items.Assign( Screen.Fonts);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 17:15
Zitat von mkinzler:
ComboBox.Items.Assign( Screen.Fonts);
Das zeigt nur alle Schriften in der ComboBox an, ändert jedoch nicht die Schriftstile

Zitat:
(Ich würde gern bestimmte einträge gesondert hervorheben)
Thomas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 18:14
Mal so ganz auf die Schnelle könntest du auch einen TFontDialog nehmen, um eine Schriftart auszuwählen.
Im Event OnDoubleClick einbauen.

Die ComboBox, die gleich den Schriftstil anzeigt hat nämlich auch zwei entscheidende Nachteile:
1.) es müssen ALLE Schriftarten auf dem Rechner geladen werden. Das dauert seine Zeit und hat einen hohen Resourcenverbrauch zu Folge. Es soll ja Leute geben, die sich über 1000 Fonts auf ihrem Rechner installiert haben...
2.) Bei Spezialfonts (z.B. Barcode-Fonts, Wingdings, WebDings,...) wird der Fontname nicht vernünftig angezeigt. Das ist vielleicht nicht so schlimm, weil man gerade die Spezialfonts eh nicht benützen möchte, sieht aber unfein aus.

Die Schriftart wird ja wohl relativ selten ausgewählt. Der TFontDialog mag für manche vielleicht etwas altmodisch aussehen, ist aber vom Kosten/Nutzen-Verhältnis genau richtig.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 18:28
@shima: So wie Chris es beschrieben hat, möchte er einfach bei einigen Items ein anderer Schriftstil verwenden.
Er hat nichts geschrieben von (alle) Schriftarten in die ComboBox laden

Zitat:
kann man in einer Combobox für Items verschiedene Schriftstile verwenden (Ich würde gern bestimmte einträge gesondert hervorheben)
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#8

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 20:43
Hallo,

ein kleines Beispiel als Anregung:

Delphi-Quellcode:
procedure TFormEditor.ComboLetterDrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  with ComboLetter.Canvas do
  begin
    FillRect(Rect);
    Font.Name := ComboLetter.Items[Index];
    Font.Size := 10;
    TextOut(Rect.Left + 1, Rect.Top, ComboLetter.Items[Index]);
  end;
end;

procedure TFormLetterEditor.ComboLetterMeasureItem(Control: TWinControl;
  Index: Integer; var Height: Integer);
begin
  if Index = -1 then exit;
  with ComboLetter.Canvas do
  begin
    Font.Name := ComboLetter.Items[Index];
    Font.Size := 10;
    Height := TextHeight('Xx') + 2;
  end;
end;
In den Eigenschaften muss Style auf csOwnerDrawVariable stehen!

Gruß RoGa
Ronald
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: schriftstile in einer Combobox

  Alt 16. Sep 2008, 21:14
könntest du bitte für deine zweite Frage ein neues Thema erstellen damit es nicht ein riesen Durcheinander wird. Zudem kannst du dann entsprechend der zweiten Frage auch einen dafür entsprechenden Titel wählen. Danke
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 17:04 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