AGB  ·  Datenschutz  ·  Impressum  







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

Procedure funktioniert nicht?

Ein Thema von PeterKiers · begonnen am 5. Aug 2006 · letzter Beitrag vom 7. Aug 2006
Antwort Antwort
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#1

Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:15
Hallo Leute,

Mein Procedure funktioniert nicht?

Delphi-Quellcode:
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;
Fehlermeldung:

[Error] ChangeFontu.pas(94): ')' expected but ',' found

Peter Kiers
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:18
Es muss heißen "[fsBold, fsItalic]"...
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#3

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:23
ListBox2.Items.AddObject('Bold Italic',TObject([fsBold, fsItalic])); Fehlermeldung:

[Error] ChangeFontu.pas(94): Invalid typecast

P.
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:29
Du kannst dort auch nicht beides übergeben sondern nur eines davon.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:35
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.

Und: schreibe besser folgendes:
ListBox1.Items.AddStrings(Screen.Fonts); Das fügt die Fonts der Listbox hinzu. Mit deinem Code weist du hingegen die Fonts den Strings zu, ist nicht so glücklich

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
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:
if (Listbox2.Items[ListBox2.ItemIndex] = 'Italic') then
  ? := fsItalic
else if ...
So in der Art.
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

Registriert seit: 31. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:38
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... )
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#7

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 22:50
Ich Gibe auf.

Peter Kiers
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Procedure funktioniert nicht?

  Alt 5. Aug 2006, 23:09
Zitat von PeterKiers:
Ich Gibe auf.
Warum? Weil es nicht auf Anhieb funktioniert?

Delphi-Quellcode:
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;
Gruß Hawkeye
  Mit Zitat antworten Zitat
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#9

Re: Procedure funktioniert nicht?

  Alt 7. Aug 2006, 17:36
Hawkeye219, Du bist der Beste.

Danke,

Peter Kiers
  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 04:56 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