unit asdfUnit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
RadioGroup1: TRadioGroup;
TreeView1: TTreeView;
Panel2: TPanel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
function treefinditem(sender:ttreeview;nodeitem:ttreenode;name:string):ttreenode;
function treeadditem(sender:ttreeview;itemlist:tstrings;book:tbook;resort:boolean):ttreenode;
function getfieldlist(cclb:integer):tstringlist;
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }function TForm1.getfieldlist(cclb: integer): tstringlist;
var fieldlist:tfieldlist;
begin
fieldlist.Clear ;
if cclb=0 then
begin
fieldlist.Add(table1.fieldbyname('bm').AsString );
fieldlist.Add(table1.fieldbyname('zc').AsString );
end else
begin
fieldlist.Add(table1.fieldbyname('zc').AsString );
fieldlist.Add(table1.fieldbyname('bm').AsString );
end;
fieldlist.Add(table1.fieldbyname('xm').AsString );
result:=fieldlist;
end;function TForm1.treeadditem(sender: ttreeview; itemlist: tstrings;
book: tbook; resort: boolean): ttreenode;
var thisnode,node:ttreenode;
i:integer;
begin
node:=nil;
for i:=0 to itemlist.Count -1 do
begin
thisnode:=treefinditem(sender,node,itemlist[i]);
if thisnode<>nil then node:=thisnode else
begin
if i<itemlist.Count -1 then
begin
if i=0 then node:=sender.items.add(node,itemlist[i])
else node:=sender.items.addchild(node,itemlist[i])
end else
begin
if i=0 then node:=sender.items.addobject(node,itemlist[i],book)
else node:=sender.items.addchildobject(node,itemlist[i],book);
node.stateindex:=node.level+1;
if resort and (node.parent<>nil) then node.Parent.alphasort;
end;
end
end;
result:=node;end;function TForm1.treefinditem(sender: ttreeview; nodeitem: ttreenode;
name: string): ttreenode;
begin
if nodeitem=nil then nodeitem:=sender.items.getfirstnode
else
nodeitem:=nodeitem.getFirstChild ;
if(nodeitem<>nil) and(nodeitem.Text <>name) then
repeat
nodeitem:=nodeitem.getNextSibling ;
until (nodeitem=nil) or(nodeitem.Text=name);
result:=nodeitem;
end;procedure TForm1.FormCreate(Sender: TObject);
var cclb:integer;
fieldlist:tstringlist;
begin
cclb:=radiogroup1.ItemIndex ;
fieldlist:=tstringlist.Create ;
treeview1.Items.BeginUpdate;
treeview1.Items.Clear ;
table1.DisableConstraints ;
table1.First ;
while not table1.Eof do
begin
treeadditem(treeview1,getfieldlist(cclb),table1.GetBook ,false);
table1.Next
end;
treeview1.AlphaSort;
table1.EnableConstraints ;
treeview1.Items.EndUpdate ;
treeview1.Items[2].Selected :=true;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
formcreate(sender);
end;end.
错误提试
[Warning] asdfUnit1.pas(42): Variable 'fieldlist' might not have been initialized
[Hint] asdfUnit1.pas(104): Value assigned to 'fieldlist' never used
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
RadioGroup1: TRadioGroup;
TreeView1: TTreeView;
Panel2: TPanel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
function treefinditem(sender:ttreeview;nodeitem:ttreenode;name:string):ttreenode;
function treeadditem(sender:ttreeview;itemlist:tstrings;book:tbook;resort:boolean):ttreenode;
function getfieldlist(cclb:integer):tstringlist;
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }function TForm1.getfieldlist(cclb: integer): tstringlist;
var fieldlist:tfieldlist;
begin
fieldlist.Clear ;
if cclb=0 then
begin
fieldlist.Add(table1.fieldbyname('bm').AsString );
fieldlist.Add(table1.fieldbyname('zc').AsString );
end else
begin
fieldlist.Add(table1.fieldbyname('zc').AsString );
fieldlist.Add(table1.fieldbyname('bm').AsString );
end;
fieldlist.Add(table1.fieldbyname('xm').AsString );
result:=fieldlist;
end;function TForm1.treeadditem(sender: ttreeview; itemlist: tstrings;
book: tbook; resort: boolean): ttreenode;
var thisnode,node:ttreenode;
i:integer;
begin
node:=nil;
for i:=0 to itemlist.Count -1 do
begin
thisnode:=treefinditem(sender,node,itemlist[i]);
if thisnode<>nil then node:=thisnode else
begin
if i<itemlist.Count -1 then
begin
if i=0 then node:=sender.items.add(node,itemlist[i])
else node:=sender.items.addchild(node,itemlist[i])
end else
begin
if i=0 then node:=sender.items.addobject(node,itemlist[i],book)
else node:=sender.items.addchildobject(node,itemlist[i],book);
node.stateindex:=node.level+1;
if resort and (node.parent<>nil) then node.Parent.alphasort;
end;
end
end;
result:=node;end;function TForm1.treefinditem(sender: ttreeview; nodeitem: ttreenode;
name: string): ttreenode;
begin
if nodeitem=nil then nodeitem:=sender.items.getfirstnode
else
nodeitem:=nodeitem.getFirstChild ;
if(nodeitem<>nil) and(nodeitem.Text <>name) then
repeat
nodeitem:=nodeitem.getNextSibling ;
until (nodeitem=nil) or(nodeitem.Text=name);
result:=nodeitem;
end;procedure TForm1.FormCreate(Sender: TObject);
var cclb:integer;
fieldlist:tstringlist;
begin
cclb:=radiogroup1.ItemIndex ;
fieldlist:=tstringlist.Create ;
treeview1.Items.BeginUpdate;
treeview1.Items.Clear ;
table1.DisableConstraints ;
table1.First ;
while not table1.Eof do
begin
treeadditem(treeview1,getfieldlist(cclb),table1.GetBook ,false);
table1.Next
end;
treeview1.AlphaSort;
table1.EnableConstraints ;
treeview1.Items.EndUpdate ;
treeview1.Items[2].Selected :=true;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
formcreate(sender);
end;end.
错误提试
[Warning] asdfUnit1.pas(42): Variable 'fieldlist' might not have been initialized
[Hint] asdfUnit1.pas(104): Value assigned to 'fieldlist' never used
解决方案 »
- 上位机开发使用什么数据库?
- Number is out of range问题
- Delphi中ActionMainMenuBar做菜单,但是当子窗体最大化后它的图标就不见了???
- 将adoquery数据集的内容导出到word文件中。
- 请问怎样能把这几张表合为一张表?
- 使用netapi32.dll中的NetUserAdd函数时发生的问题...如何解决???
- delphi中怎样实现sql脚本文件中的语句。
- 两个问题。1是关于sql server中的表导出为txt文件的方法,2是查询一段日期内的sql语句(无未结帖记录
- 有分不想要!!
- socket函数为什么总是返回-1?
- 如何得到服务器windows或Systems的安装路径?
- 简单问题求解如何让一个窗体B(如果被打开了的话)随着另一个窗体A的关闭而关闭。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
RadioGroup1: TRadioGroup;
TreeView1: TTreeView;
Panel2: TPanel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
function treefinditem(sender:ttreeview;nodeitem:ttreenode;name:string):ttreenode;
function treeadditem(sender:ttreeview;itemlist:tstrings;book:tbook;resort:boolean):ttreenode;
function getfieldlist(cclb:integer):tstringlist;
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }function TForm1.getfieldlist(cclb: integer): tstringlist;
var fieldlist:tfieldlist;
begin
fieldlist.Clear ; //显示这里错了
if cclb=0 then
begin
fieldlist.Add(table1.fieldbyname('bm').AsString );
fieldlist.Add(table1.fieldbyname('zc').AsString );
end else
begin
fieldlist.Add(table1.fieldbyname('zc').AsString );
fieldlist.Add(table1.fieldbyname('bm').AsString );
end;
fieldlist.Add(table1.fieldbyname('xm').AsString );
result:=fieldlist;
end;function TForm1.treeadditem(sender: ttreeview; itemlist: tstrings;
book: tbook; resort: boolean): ttreenode;
var thisnode,node:ttreenode;
i:integer;
begin
node:=nil;
for i:=0 to itemlist.Count -1 do
begin
thisnode:=treefinditem(sender,node,itemlist[i]);
if thisnode<>nil then node:=thisnode else
begin
if i<itemlist.Count -1 then
begin
if i=0 then node:=sender.items.add(node,itemlist[i])
else node:=sender.items.addchild(node,itemlist[i])
end else
begin
if i=0 then node:=sender.items.addobject(node,itemlist[i],book)
else node:=sender.items.addchildobject(node,itemlist[i],book);
node.stateindex:=node.level+1;
if resort and (node.parent<>nil) then node.Parent.alphasort;
end;
end
end;
result:=node;end;function TForm1.treefinditem(sender: ttreeview; nodeitem: ttreenode;
name: string): ttreenode;
begin
if nodeitem=nil then nodeitem:=sender.items.getfirstnode
else
nodeitem:=nodeitem.getFirstChild ;
if(nodeitem<>nil) and(nodeitem.Text <>name) then
repeat
nodeitem:=nodeitem.getNextSibling ;
until (nodeitem=nil) or(nodeitem.Text=name);
result:=nodeitem;
end;procedure TForm1.FormCreate(Sender: TObject);
var cclb:integer;
fieldlist:tstringlist;
begin
cclb:=radiogroup1.ItemIndex ;
fieldlist:=tstringlist.Create ;
treeview1.Items.BeginUpdate;
treeview1.Items.Clear ;
table1.DisableConstraints ;
table1.First ;
while not table1.Eof do
begin
treeadditem(treeview1,getfieldlist(cclb),table1.GetBook ,false);////显示这里错了 table1.Next
end;
treeview1.AlphaSort;
table1.EnableConstraints ;
treeview1.Items.EndUpdate ;
treeview1.Items[2].Selected :=true;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
formcreate(sender);
end;end.
错误提试
[Warning] asdfUnit1.pas(42): Variable 'fieldlist' might not have been initialized
[Hint] asdfUnit1.pas(104): Value assigned to 'fieldlist' never used
fieldlist.clear;
var fieldlist:tfieldlist;
begin fieldlist:=Tfieldlist.create(nil);//加上这一句
fieldlist.Clear ; //显示这里错了
104行说分配给fieldlist得值没有被使用,不算错。这只是个hint而已。你查查源代码,看看是否有使用?
fieldlist:=Tfieldlist.create(nil)