幫忙listview怎麽不顯示東西 |
答題得分者是:Chance36
|
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, SUIListView; type
PSiteItem = ^TSiteItem;
TSiteItem = record
Site : string;
Special : boolean;
end; TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
lstSite: TListView;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
sitelist:tlist; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var F : TextFile;
SiteItem: PSiteItem;
strSite : string;
I : integer;
begin
Sitelist:=tlist.Create;
opendialog1.Execute;
if OpenDialog1.FileName = '' then
Exit;
I := 0;
lstSite.Items.BeginUpdate;
AssignFile (F, OpenDialog1.FileName);
Reset (F);
while not Eof (F) do
begin
Readln (F, strSite);
if Trim (strSite) <> '' then
begin
SiteItem := New (PSiteItem);
SiteItem.Site := strSite;
SiteItem.Special := False;
sitelist.Add(SiteItem);
end;
end;
CloseFile (F);
with lstsite do
begin
Items.Count := sitelist.Count;
Items.EndUpdate;
Repaint;
end; end; end.
不知道程式錯在那裏。什麽也顯示不出來。
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
stockdisk 你好
修改如下段 if Trim (strSite) <> '' then begin SiteItem := New (PSiteItem); SiteItem.Site := strSite; SiteItem.Special := False; sitelist.Add(SiteItem.Site); // OR 處理顯示文字部份 及其Record 資料 //sitelist.AddObject(SiteItem.Site,SiteItem); end;_______________________________________ 深藍的魚,祝您好運..........連.連 |
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
Var SiteItem: PSiteItem; Li : TListItem ; if Trim (strSite) <> '' then begin SiteItem := New (PSiteItem); SiteItem.Site := strSite; SiteItem.Special := False; Li:=sitelist.Items.Add; Li.Caption:=SiteItem.Site ;// 設定Caption Li.Data :=SiteItem ; // 儲存Data end;發表人 - chance36 於 2004/07/14 19:32:53 |
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
我用D5
有什麼狀況呢?
順帶一提 with lstsite do begin // Items.Count := sitelist.Count; <==== 這行不需要 Items.EndUpdate; // Repaint; <==== 這行也不需要 end;啊!抱歉我看錯了,原來你還有一個lstSite: TListView; 還有sitelist:tlist; 這兩個我搞混了! _______________________________________ 深藍的魚,祝您好運..........連.連 發表人 - chance36 於 2004/07/14 20:15:05 發表人 - chance36 於 2004/07/14 20:18:18 |
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, SUIListView; type PSiteItem = ^TSiteItem; TSiteItem = record Site : string; Special : boolean; end; TForm1 = class(TForm) OpenDialog1: TOpenDialog; Button1: TButton; lstSite: TListView; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; sitelist:tlist; // 有何作用我不知道 以下程式碼沒用到 implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var F : TextFile; SiteItem: PSiteItem; strSite : string; I , j: integer; begin // Sitelist:=tlist.Create; // 應該不用 opendialog1.Execute; if OpenDialog1.FileName = '' then Exit; I := 0; lstSite.Items.BeginUpdate; AssignFile (F, OpenDialog1.FileName); Reset (F); // 清除現有內容 For j := 0 To lstSite.Items.Count-1 Do Begin Dispose(PSiteItem(lstSite.Items[j].Data)); End; lstSite.Items.Clear; while not Eof (F) do begin Readln (F, strSite); if Trim (strSite) <> '' then begin SiteItem := New (PSiteItem); SiteItem.Site := strSite; SiteItem.Special := False; Li:=lstSite.Items.Add; Li.Caption:=SiteItem.Site ;// 設定Caption Li.Data :=SiteItem ; // 儲存Data end; end; CloseFile (F); with lstSite do begin //Items.Count := sitelist.Count; Items.EndUpdate; //Repaint; end; end; end. 目前 Sitelist : TList 沒用到_______________________________________ 深藍的魚,祝您好運..........連.連 發表人 - chance36 於 2004/07/14 20:29:13 |
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
TList 只是單純的資料儲存及管理而已,並沒視覺化的的功能
而且TList的item是指標而不是String 以你的例子
Sitelist:=tlist.Create;
SiteList.Data := SiteItem; // 這樣可以
SiteList.Add(SiteItem); // 這樣可以
SiteList.Data := SiteItem.Site; // 這樣不可以 _______________________________________
深藍的魚,祝您好運..........連.連
|
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
|
stockdisk
一般會員 發表:9 回覆:14 積分:4 註冊:2003-06-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |