为什么我得不到屏幕字体名称? (23分)

  • 主题发起人 主题发起人 wyd258963
  • 开始时间 开始时间
W

wyd258963

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体create事件中输入:
For i:=0 to Screen.Fonts.Count-1do
Combobox1.Items.Add(Screen.Fonts.Names);
为什么combobox1添加的项目全部是空的?
 
For i:=0 to Screen.Fonts.Count-1do
Combobox1.Items.Add(Screen.Fonts);
其实不用循环
Combobox1.Items.Assign(Screen.Fonts);就行了
 
方法1:
var
i: integer;
begin
for i := 0 to Screen.Fonts.Count-1do
begin
ComboBox1.Items.Add(Screen.Fonts);
end;
end;
方法2:
ComboBox1.Items := Screen.Fonts;
 
Combobox1.Items.Add(Screen.Fonts.Names);
把这句改成下面的就可以了。
Combobox1.Items.Add(Screen.Fonts);
 
Fonts是TStrings类型
你看一下面方法就知道了。
TStrings类:
property Names[Index: Integer]: string read GetName;
property Strings[Index: Integer]: string read Get write Put;
default;
...
function TStrings.GetName(Index: Integer): string;
var
P: Integer;
begin
Result := Get(Index);
P := AnsiPos('=', Result);
if P <> 0 then
SetLength(Result, P-1) else
SetLength(Result, 0);
end;
//所以你不能用
Screen.Fonts.Names
//用下面都可以。
Screen.Fonts
Screen.Fonts.Strings
 

Similar threads

后退
顶部