字体转换问题,各位帮忙啦(50分)

  • 主题发起人 主题发起人 yinchen
  • 开始时间 开始时间
Y

yinchen

Unregistered / Unconfirmed
GUEST, unregistred user!
查了大富翁上的相关资料 感觉还是模糊.现在窗体上有几个Edit(FontName,FontSize,FontColor),一个ComboBox(FontStyle,item为粗体,一般)
用FontDialog 选择后
if FontDialog1.Execute then
begin
FontName.Text:=FontDialog1.Font.Name;
FontSize.Text:=IntToStr(FontDialog1.Font.Size);
FontColor.Text:=??//要求是int型的
end;
Font的style的值怎么取?
ComboBox的选项根据选择的粗细不同而变,然后再从这些Edit和combobox的值读出来,配给一个Label1的Font属性,
Label1.Font.Name:=P_FontName;
Label1.Font.Size:=P_FontSize;
Label1.Font.Color:=??//stringtocolor()有用吗?因为color的值是int型的
//Label1.Font.Style:=P_FontStyle;
想问一下各位怎么来实现?
 
唉,高手不屑一顾,达人懒得回复,让我们这些刚入门的人咋办啊
 
我再抬
各位,进来看看哦
 
FontColor.Text:=ColorToStr(FontDialog1.Font.Color);
或者
FontColor.Text:=IntToStr(Integer(FontDialog1.Font.Color));
强制转换一下就可以了.
Label1.Font.Color:=StringToColor(Edit5.text);
 
TFontStyle的定义是这样的,只能逐个判断:
TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);
 
if FontDialog1.Execute then
begin
FontName.Text:=FontDialog1.Font.Name;
FontSize.Text:=IntToStr(FontDialog1.Font.Size);
FontColor.Text:=IntToHex(FontDialog1.Font.Color,2);
FontStyle.Text:='';
if fsBold in FontDialog1.Font.Style then
FontStyle.Text:='粗体';
if fsItalic in FontDialog1.Font.Style then
FontStyle.Text:=FontStyle.Text+'斜体';
if fsUnderline in FontDialog1.Font.Style then
FontStyle.Text:=FontStyle.Text+'下划线';
if fsStrikeOut in FontDialog1.Font.Style then
FontStyle.Text:=FontStyle.Text+'删除线';
end;

Label1.Font.Name:=FontName.Text;
Label1.Font.Size:=strtoint(FontSize.Text);
Label1.Font.Color:=StrToInt('$'+FontColor.Text);
Label1.Font.Style:=[];
ComboBox1.Items.Clear;
ComboBox1.Items.Add('粗体');
ComboBox1.Items.Add('斜体');
ComboBox1.Items.Add('下划线');
ComboBox1.Items.Add('删除线');
case ComboBox1.ItemIndex of
0: Label1.Font.Style:=Label1.Font.Style+[fsBold];
1: Label1.Font.Style:=Label1.Font.Style+[fsItalic];
2: Label1.Font.Style:=Label1.Font.Style+[fsUnderline];
3: Label1.Font.Style:=Label1.Font.Style+[fsStrikeOut];
end;
 
多人接受答案了。
 
后退
顶部