dj
Nybegynder
27. marts 2002 - 03:10
#1
Du bliver vidst nødt til at parse det ved hjælp af f.eks. nogle if sætninger, tvivler på du kan convertere et sæt til en streng uden at gøre det manuelt :)
Jeg har lavet et lille eksempel, sikkert ikke den mest optimale løsning, men det var hvad jeg lige kunne komme på her på de sene nattetimer :)
-------------------------------------------
function StyleToStr(myStyle: TFontStyles):String;
var
res: String;
begin
if fsBold in myStyle then
res:=res+'Bold;';
if fsItalic in myStyle then
res:=res+'Italic;';
if fsUnderline in myStyle then
res:=res+'Underline;';
if fsStrikeOut in myStyle then
res:=res+'StrikeOut;';
result:=res;
end;
function StrToStyle(styleStr: String):TFontStyles;
var
res: TFontStyles;
temp: String;
begin
res := [];
while pos(';',styleStr)>0 do begin
temp := copy(styleStr,0,pos(';',styleStr)-1);
showmessage(temp);
styleStr := copy(styleStr,pos(';',styleStr)+1,length(styleStr));
if comparetext(temp,'bold')=0 then
res := res + [fsBold];
if comparetext(temp,'italic')=0 then
res := res + [fsItalic];
if comparetext(temp,'underline')=0 then
res := res + [fsUnderline];
if comparetext(temp,'strikeout')=0 then
res := res + [fsStrikeout];
end;
result:=res;
end;
-------------------------------------------
Her er lige et eksempel på hvordan du kan bruge dem:
Showmessage(Styletostr(richedit1.Font.style));
richedit1.font.style := StrToStyle('underline;Strikeout;')
//DJ
dj
Nybegynder
27. marts 2002 - 03:11
#2
btw. den der "showmessage(temp);" i StrToStyle kan du bare lige fjerne, den var der kun lige for lidt debuggings skyld :p