这是个菜问题,你的一句话就能帮很大的忙(50分)

  • 主题发起人 主题发起人 chong_ch
  • 开始时间 开始时间
C

chong_ch

Unregistered / Unconfirmed
GUEST, unregistred user!
1。定义变量lts_1 TStrings,在赋值语句lts_1.String[0]:='a'发生内存错误,估计是未
分配初始化空间,如果是,该如何初始化,我现在手头没参考书
2。如何将一个包含字符串数组的TStrings变量写入ListBox,使ListBox包含多列,之后该
如何调用不同列?
3。先谢过
 
要不我把源码贴上:
var
ls_1: TStrings;
begin
ListBox1.Clear;
ls_1.Strings[0] := 'a'; //内存访问错误
ls_1.Strings[1] := 'b';
ListBox1.Items.AddStrings(ls_1);
end;
急!

 
1. 用下面的初始化
lts_1 = TStringList.Create;
TStrings是虚拟类,需用其子类初始化!
2.若直接写(没有其他的),可以如下:
ListBox.Items.Assign(TStrings);
若有其他的,你可以一个一个的加,
listBox.Items.Add(TStrings.Items);
至于调用不同的列,每个Item都有他的Index
 
用ListBox1.Items.AddStrings(ls_1)也可!
 
代码修改后如下:
var
ls_1: TStrings;
begin
ListBox1.Clear;
ls_1 := TStringList.Create;
ls_1.Strings[0] := 'a'; //访问越界
ls_1.Strings[1] := 'b';
ListBox1.Items.AddStrings(ls_1);
ls_1.Free;
end;
调试时系统报错:ls_1.String[0]访问越界,是否应该调用分配内存函数?手头没有参考
书,请务必同时写出释放内存函数,在这里对雪树表示真挚的谢意
 
代码如下:
var
i:integer;
begin
lts_1 := TStringList.Create;
try
for I := 0 to lts_1.Count - 1 do
ListBox1.Items.Add(lts_1);//写入ListBox
finally
lts_1.free;
end;

//使用时直接调用
定义 s:string;
s:=listbox1.strings;//i表示序号,注意第一排序号为0
 
var ls_1: TStrings;
begin
ListBox1.Clear;
ls_1 := TStringList.Create;
ls_1.Add('a');
ls_1.Add('b');
ListBox1.Items.AddStrings(ls_1);
ls_1.Free;
end;
 
采用liuly方法仅能在ListBox1中添加两行,而不是一行两列
 
今天礼拜天,我的问题依然还没解决。
我想我的问题可以归纳为:怎样在一个ListBox中插入多列?
再次感谢所有关注过我的问题的所有朋友
 
var
ls_1: TStrings;
begin
ls_1 := TStringList.Create;
try
with ls_1 do begin
Add('这个方法可以使用');
Add('你可以试一试');
Add('祝你好运');
end;
with ListBox1 do begin
Width := 210;
Items.Assign(ls_1);
ItemIndex := 0;
end;
finally
ls_1.free;
end;
end;
 
ListBox不能实现多列,要多列,你要是使用ListView。设置它的属性
ViewStyle为vsReport,然后使用columns editor添入列的标题。
添加每一行的代码模式为:
var ListItem: TListItem;
begin
with ListView1 do
begin
Items.Clear;
ListItem := Items.Add;
ListItem.Caption := '第一列'
ListItem.SubItems.Add('第二列');
ListItem.SubItems.Add('第三列');
...
end;
end;
 
youdelphi的方法运行后仍为一列多行,另外我认为ListBox应该有多列处理功能,因为
它有个属性为Columns。
我决定采用其他方法实现,不过如果有切实可行办法望不吝告知,再次感谢。礼多人不
怪,希望大家别嫌烦。
分数不多,请笑纳
 
后退
顶部