Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - zufälliger Fontname?
Daniel L. - Di 02.11.10 18:09
Titel: zufälliger Fontname?
Hi,
wie könne man eine zufälligen, gültigen Fontnamen erstellen?
Delphi-Quelltext
1:
| label1.font.name := GetRandomFontmame; |
Ich weiss, wie man mit random() umgeht, aber nicht, wie und wo ich die Fonts herkriege.
Vielen Dank + Gruss: Daniel
Martok - Di 02.11.10 18:16
AFAIR gibt es in Screen.Fonts eine Liste. Kann auch in einer anderen Klasse sein, aber irgendwo in der VCL gibt es eine solche Eigenschaft.
ALF - Di 02.11.10 18:18
Jo, mein Vorschlag.
Du müsstest erst mal rausbekommen wieviele Fonts zu verfügung stehen! Also das FontArray durchsuchen. Hast Du diese Zahl, kannst Du sie zufällig generieren und dann das FontArray mit der gefundenen Zahl ansprechen. Mal so mein Gedanke.
Gruss ALf
elundril - Di 02.11.10 18:27
Screen.Fonts ist eine Stringlist. Demnach müsste folgendes funktionieren:
Delphi-Quelltext
1: 2: 3: 4:
| function GetRandomFontName(): String; begin Result := Screen.Fonts[Random(Screen.Fonts.Count)]; end; |
lg elundril
Daniel L. - Di 02.11.10 18:55
sänks ä lott ! :D
edit:
ich glaube, ohne -1:
Result := Screen.Fonts[Random(Screen.Fonts.Count)];
Stundenplan - Di 02.11.10 19:35
Mit -1, denn Count ist nur die Anzahl der Arrayelemente, das Array geht aber von 0..Count-1, Beispiel:
Wenn ich ein Array habe, welches von 0 bis 3 geht, hab ich 4 Elemente, nämlich 0, 1, 2, und 3.
Und damit du nicht versuchst, auf ein Arrayelement zuzugreifen, welches gar nicht existiert (Beim Random(Count) könnte ja auch zufällig mal Count rauskommen, aber das Array geht ja nur bis Count-1), musst du eben entsprechend 1 abziehen.
Edit: Tatsächlich Ohne -1, siehe Gausis Post unten. :oops:
Viele Grüße,
Stundenplan.
Gausi - Di 02.11.10 19:37
Ne, ohne -1, denn Random(x) liefert eine Zahl größer oder gleich 0 und echt kleiner x. ;-)
Daniel L. - Di 02.11.10 19:39
ebend :wink2:
elundril - Di 02.11.10 19:39
oh, ich dachte kleiner gleich. sorry, ich verbessere es mal schnell.
lg elundril
F34r0fTh3D4rk - Di 02.11.10 19:53
Gausi hat folgendes geschrieben : |
Ne, ohne -1, denn Random(x) liefert eine Zahl größer oder gleich 0 und echt kleiner x. ;-) |
Oder anders gesagt: random(n) hat n mögliche Ausgaben, bei 0 beginnend.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!