实现在virtualStringtree中编辑的标准步骤
2008-04-09 04:20:53来源:互联网 阅读 ()
1.设置TVirtualStringTree属性:
toFullRowSelect : false;
toMultiSelect:false;
toExtendedFocous:true;
toEditable:true;
editDelay:0 //如果不调用editnode,则不会CREATE EDITOR
2.实现virtualStringtree的ONClick事件:
功能:根据当前获取焦点的node,判断是否edit该node
TMMSLibraryForm版本:
procedure TMMSLibraryForm.DataTreeClick(Sender: TObject);
var
Column:TColumnIndex;
node:PVirtualNode;
begin
if DataTree.FocusedNode=nil then Exit;
node:=DataTree.FocusedNode;
Column:=DataTree.FocusedColumn;
if Column<>3 then
DataTree.EditNode(node,Column);
end;
TSPNumbersForm版本:
procedure TSPNumbersForm.VSTreeSPnumberClick(Sender: TObject);
var
Column:TColumnIndex;
node:PVirtualNode;
begin
if VSTreeSPnumber.FocusedNode=nil then Exit;
node:=VSTreeSPnumber.FocusedNode;
Column:=VSTreeSPnumber.FocusedColumn;
VSTreeSPnumber.EditNode(node,Column);
end;
TTestNumberForm版本:
procedure TTestNumberForm.VSTreeTestNumberClick(Sender: TObject);
var
Column:TColumnIndex;
node:PVirtualNode;
begin
if VSTreeTestNumber.FocusedNode=nil then Exit;
node:=VSTreeTestNumber.FocusedNode;
Column:=VSTreeTestNumber.FocusedColumn;
VSTreeTestNumber.EditNode(node,Column);
end;
3.实现virtualStringtree的ONCreateEditor事件:
功能:如果editnode被调用,则执行此函数;之前设置editDelay:0,是为避免在不允许改动的node上出现editor
TMMSLibraryForm版本:
procedure TMMSLibraryForm.DataTreeCreateEditor(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
begin
EditLink:=TStringEditLink.create('''''''',stringlist[node.index * 5 Column])
end;
TSPNumbersForm版本:
procedure TSPNumbersForm.VSTreeSPnumberCreateEditor(
Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
out EditLink: IVTEditLink);
begin
EditLink:=TStringEditLink.create('''''''',stringlist[node.index * 7 Column]);
end;
TTestNumberForm版本:
procedure TTestNumberForm.VSTreeTestNumberCreateEditor(
Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
out EditLink: IVTEditLink);
begin
EditLink:=TStringEditLink.create('''''''',stringlist[node.index * 4 Column]);
end;
4.实现virtualStringtree的ONNewText事件:
功能:根据获取焦点的node的column,判断值的合法性,并同时更新数据库和stringlist
TMMSLibraryForm版本:
procedure TMMSLibraryForm.DataTreeNewText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; NewText: WideString);
var
sql:string;
begin
case Column of
0:
begin
if (StrToInt64Def(Trim(NewText),-1)=-1) then
begin
ShowMessage(''''"'''' Trim(NewText) ''''"'''' ''''does not represent a valid number!'''');
Exit;
end;
sql:=''''update mmslibrary set MMS_ID='''' Trim(NewText) '''' where MMS_ID='''' Stringlist.strings[node.Index*5];
end;
1:
sql:=''''update mmslibrary set MMS_Type="'''' Trim(NewText) ''''" where MMS_ID='''' Stringlist.strings[node.Index*5];
2:
sql:=''''update mmslibrary set MMS_Smil="'''' Trim(NewText) ''''" where MMS_ID='''' Stringlist.strings[node.Index*5];
4:
sql:=''''update mmslibrary set MMS_Subject="'''' Trim(NewText) ''''" where MMS_ID='''' Stringlist.strings[node.Index*5];
end;
if currentdatabase.ExecuteSqlNoQurey(sql)= 1 then
ShowMessage(''''Save to Database sucessfully!'''')
else
ShowMessage(''''Error occurs while Saving to Database!'''');
Stringlist.strings[node.Index*5 Column]:=Trim(NewText);
DataTree.RootNodeCount:=stringlist.Count div 5 ;
DataTree.Refresh;
end;
TSPNumbersForm版本:
procedure TSPNumbersForm.VSTreeSPnumberNewText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; NewText: WideString);
var
sql:string;
begin
case Column of
0:
begin
if (StrToInt64Def(Trim(NewText),-1)=-1) then
begin
ShowMessage(''''"'''' Trim(NewText) ''''"'''' ''''does not represent a valid number!'''');
Exit;
end;
sql:=''''update spnumbers set SP_SPID='''' Trim(NewText) '''' where SP_SPID='''' Stringlist.strings[node.Index*7];
end;
1:
sql:=''''update spnumbers set SP_Name="'''' Trim(NewText) ''''" where SP_SPID='''' Stringlist.strings[node.Index*7];
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:rave report的使用感想
下一篇:Create为什么可以为虚函数?
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash