![]() |
Procedure funktioniert nicht?
Hallo Leute,
Mein Procedure funktioniert nicht?
Delphi-Quellcode:
Fehlermeldung:
procedure TChangeFont.FormCreate(Sender: TObject);
var i, minFontSize, maxFontSize:Integer; begin minFontSize:=4; maxFontSize:=48; for i:=minFontSize to maxFontSize do ListBox3.Items.Add(IntToStr(i)); Listbox1.Items := Screen.Fonts; ListBox2.Items.AddObject('Regular',TObject(fsNormal)); ListBox2.Items.AddObject('Italic',TObject(fsItalic)); ListBox2.Items.AddObject('Bold',TObject(fsBold)); [b]ListBox2.Items.AddObject('Bold Italic',TObject(fsBold, fsItalic)); [/b] //ERROR end; [Error] ChangeFontu.pas(94): ')' expected but ',' found Peter Kiers |
Re: Procedure funktioniert nicht?
Es muss heißen "[fsBold, fsItalic]"...
|
Re: Procedure funktioniert nicht?
Delphi-Quellcode:
Fehlermeldung:
ListBox2.Items.AddObject('Bold Italic',TObject([fsBold, fsItalic]));
[Error] ChangeFontu.pas(94): Invalid typecast P. |
Re: Procedure funktioniert nicht?
Du kannst dort auch nicht beides übergeben sondern nur eines davon.
|
Re: Procedure funktioniert nicht?
:arrow: Kleiner Tipp am Rande: Wenn du die Zeile der Fehlermeldung (nicht im Code, sondern in der Liste) markierst und [F1] drückst, öffnet sich die Hilfe uns sagt dir, was zu der Meldung führt. :idea:
:arrow: Und: schreibe besser folgendes:
Delphi-Quellcode:
Das fügt die Fonts der Listbox hinzu. Mit deinem Code weist du hingegen die Fonts den Strings zu, ist nicht so glücklich ;-)
ListBox1.Items.AddStrings(Screen.Fonts);
:arrow: Ach so, TFontStyles = set of TFontStyle TObject() funktioniert mit TFontStyle, aber nicht mit dem Set of, also TFontStyles. Das ist der Fehler. Eine Lösung habe ich momentan leider nicht :drunken: Aber wozu brauchst du das denn? Sieht nach einer Auswahl von Schriftart und Schriftstil aus. Vielleicht kannst du der Listbox einfach nur einen String hinzufügen, und später per IF den entsprechenden Stil setzen:
Delphi-Quellcode:
So in der Art.
if (Listbox2.Items[ListBox2.ItemIndex] = 'Italic') then
? := fsItalic else if ... |
Re: Procedure funktioniert nicht?
Mir würde jetzt spontan noch einfallen: "fsBold or fsItalic"...
...aber irgendwie bin ich mir zu dieser späten Stunde garnicht mehr so sicher... (ich verstehe gerade noch nicht mal deine Prozedur... :drunken:) |
Re: Procedure funktioniert nicht?
Ich Gibe auf.
Peter Kiers |
Re: Procedure funktioniert nicht?
Zitat:
Delphi-Quellcode:
Gruß Hawkeye
procedure TChangeFont.FormCreate (Sender: TObject)
var i, minFontSize, maxFontSize: Integer; Styles: TFontStyles; begin Listbox1.Items.Assign (Screen.Fonts); with ListBox2.Items do begin Styles := []; AddObject('Regular', TObject(Byte(Styles))); Styles := [fsItalic]; AddObject('Italic', TObject(Byte(Styles))); Styles := [fsBold]; AddObject('Bold', TObject(Byte(Styles))); Styles := [fsBold, fsItalic]; AddObject('Bold Italic', TObject(Byte(Styles))); end; minFontSize := 4; maxFontSize := 48; for i := minFontSize to maxFontSize do ListBox3.Items.Add(IntToStr(i)); end; procedure TChangeFont.ListBox2Click (Sender: TObject) begin with ListBox2 do if (ItemIndex >= 0) then Label1.Font.Style := TFontStyles(Byte(Items.Objects[ItemIndex])); end; |
Re: Procedure funktioniert nicht?
Hawkeye219, Du bist der Beste.
Danke, Peter Kiers |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz