TFONT "auseinandernehmen"
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
TFONT "auseinandernehmen"
hallo zusammen,
gibts irgendwo ne Funktion die die einzelnen Infos aus TFont zurückliefert. Ich brauche die Werte schriftart, underline bold usw. _einzeln_.
Danke Gruss KH
gibts irgendwo ne Funktion die die einzelnen Infos aus TFont zurückliefert. Ich brauche die Werte schriftart, underline bold usw. _einzeln_.
Danke Gruss KH
Re: TFONT "auseinandernehmen"
Was meinst du damit? Sind doch alles Properties von TFont.khh hat geschrieben: gibts irgendwo ne Funktion die die einzelnen Infos aus TFont zurückliefert. Ich brauche die Werte schriftart, underline bold usw. _einzeln_.
Bold etc kriegst du so raus:
FontIsBold:= fsbold in Font.Style;
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Das muss du selbst machen. Als was brauchst du diese Informationen den ? Um sie in einer Datei zu speichern ?
Wenn ja ist das kein Problem nur bei der Font.Style Eigenschaft muss du etwas mehr aufwandtreiben um das als String zurückzubekommen.
und was ist der Schriftgrad ? ist das sowas wie Font.Style ? oder meinst du damit die Schrift Größe ?
Wenn ja ist das kein Problem nur bei der Font.Style Eigenschaft muss du etwas mehr aufwandtreiben um das als String zurückzubekommen.
und was ist der Schriftgrad ? ist das sowas wie Font.Style ? oder meinst du damit die Schrift Größe ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Das geht im Prinzip ganz einfach hier ein Beispiel:
Code: Alles auswählen
function FontToStr(fs:TFontStyles):String;
var
str:String;
begin
str:='';
if fsBold in fs then str:='fsBold,';
if fsItalic in fs then str:=str+'fsItalic,';
if fsStrikeOut in fs then str:=str+'fsStrikeOut,';
result:=str;
end;
Zuletzt geändert von pluto am Di 6. Mai 2008, 11:50, insgesamt 4-mal geändert.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Wenn du die Werte einzeln brauchst, musst du sie auch jeweils separat abfragen, ja.khh hat geschrieben:heisst das ich muss alle Möglichkeiten einzeln abfragen?
Die Schriftart rufst du dabei durch Font.Name ab, also z.B.
Code: Alles auswählen
Schriftart := Label1.Font.Name;
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Schrift Größe = Font.Size 1
Schrift Farbe = Font.Color 2
Schrift Style = Font.Style
Schrift Art = Font.Name
2 Wenn du den Color Wert in einen String haben möchtest solltest du ColorToString verwenden
1 Wenn du die Size in einen String haben möchtest solltest du IntToStr verwenden.
Ich habe noch erweiterte Funktionen dafür geschrieben wenn du meine uColorList verwendest.
Dann hast du zugriff von über 600 Farb werten *G*.
Bei den Brush und Pen Sachen geht das im Übrigen genauso. Ich habe mir auch noch diese Praktische Funktion geschrieben:
Schrift Farbe = Font.Color 2
Schrift Style = Font.Style
Schrift Art = Font.Name
2 Wenn du den Color Wert in einen String haben möchtest solltest du ColorToString verwenden
1 Wenn du die Size in einen String haben möchtest solltest du IntToStr verwenden.
Ich habe noch erweiterte Funktionen dafür geschrieben wenn du meine uColorList verwendest.
Dann hast du zugriff von über 600 Farb werten *G*.
Bei den Brush und Pen Sachen geht das im Übrigen genauso. Ich habe mir auch noch diese Praktische Funktion geschrieben:
Code: Alles auswählen
function GetColor(const aValue:String):TColor;
var
w:TColor;
s,h:String;
r,g,b:Byte;
begin
w:=clNone;
if aValue[1] = '#' then begin
h:=copy(aValue,2,Length(aValue));
r:=StrToInt(GetToken(h,',',1));
g:=StrToInt(GetToken(h,',',2));
b:=StrToInt(GetToken(h,',',3));
w:=RGB(r,g,b);
end; // = #
if (w = clNone) and (aValue[1] = '&') then begin
h:=copy(aValue,2,Length(aValue));
w:=StrToInt('$' + Copy(h, 5, 2) + Copy(h, 3, 2) + Copy(h, 1, 2))
end; // &
if w = clNone then begin
s:=copy(aValue,1,2);
if s = 'cl' then
w:=String2ToColor(aValue);
if (w = clNone) and (s <> 'pl') then
w:=String2ToColor('pl_'+aValue);
end;
result:=w;
end; // GetColor
Evlt. hilft das ja weiter. Aber für diese Funktion brauchst du im Moment meine uColorList die es hier im Forum gibt, sonst müsstest du diese Funktion anpassen.Meine Farben :PL_
Lazarus Farben :cl
RGB Farben :#22,33,44
HTML Farben :&dc143c
Findet er nix, nimt er Automatisch pl_
MFG
Michael Springwald
Michael Springwald