我要实现点击treeview的节点,右侧显示对应的窗体。代码如下:
procedure TFguide.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempNode:TTreeNode;
SelectCodeStr:string;
begin
If TreeView1.SelectionCount=0 then abort;
TempNode:=Treeview1.GetNodeAt(x, y);
selectcodestr:=trim(TempNode.Text);
if selectcodestr='xxxx' then
begin
Application.CreateForm(TForm1, Form1);
form1.showmodal;
end;
end;系统总是提示我“地址冲突”!请问是怎么回事?
另:在delphi6中自带的控件中有能生成平滑按钮的控件吗,象IE中的按钮一样?我用的是toolbar.
procedure TFguide.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempNode:TTreeNode;
SelectCodeStr:string;
begin
If TreeView1.SelectionCount=0 then abort;
TempNode:=Treeview1.GetNodeAt(x, y);
selectcodestr:=trim(TempNode.Text);
if selectcodestr='xxxx' then
begin
Application.CreateForm(TForm1, Form1);
form1.showmodal;
end;
end;系统总是提示我“地址冲突”!请问是怎么回事?
另:在delphi6中自带的控件中有能生成平滑按钮的控件吗,象IE中的按钮一样?我用的是toolbar.
解决方案 »
- 请教一个多线程问题:在三个线程里都同时用到了 同一个全局变量 的问题???
- 高分求浏览器源代码,要求有个性
- Delphi8安装??
- 请问怎样将一个网页(含图片)保存在EXE文件中,是否可以作为资源引入?
- ADOCONNECTION TIMEOUT 问题
- 各位前辈,我准备学习DELPHI 7.0能推荐几本好书吗?谢谢!!!
- DBGrid查询?
- 关于高度变化
- IE代理服务器设置,为什么SOCKET没有选中?
- :Frame有何用途,与Form有何区别?
- 用PrintDBGridEh1打印dbgrideh怎么打印窗体上另外的一些edit.text和lablel的内容?
- 请教如何用 PrintDBGridEh 每页加入页码?
procedure TFguide.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempNode:TTreeNode;
SelectCodeStr:string;
begin
TempNode:=Treeview1.GetNodeAt(x, y);
if not Assigned(TempNode) then exit;
selectcodestr:=trim(TempNode.Text);
if selectcodestr='xxxx' then
begin
Application.CreateForm(TForm1, Form1);
form1.showmodal;
end;
end;
username,password,sqlstr:string ;
begin
username:=trim(Eusername.Text);//Eusername是用户名输入
password:=trim(Epassword.Text);//Epassword是密码输入
if username='' then
begin
showmessage('用户名不能为空!');
Eusername.SetFocus;
exit;
end;
if password='' then
begin
showmessage('密码不能为空!');
Epassword.SetFocus;
exit;
end;
with DataModule1.ADOQUERY1 do //DataModule1.ADOQUERY1是我的一个数据模块中的adoquery
begin
close;
sql.clear;
sqlstr:='select * from yhxx where user=:V1 ';
sql.Add(sqlstr);
Parameters.ParamByName('V1').value:=username;
try
OPEN;
except
on EDatabaseError do
messagedlg('数据库操作错误!',mtError,[mbok],0);
end;
if isempty then
begin
showmessage('无此用户名,请重新录入!');
Eusername.SetFocus;
exit;
end
else
begin
close;
sql.Clear;
sqlstr:='select * from yhxx where user=:V1 and pass=:V2';
sql.Add(sqlstr);
Parameters.ParamByName('V1').value:=username;
Parameters.ParamByName('V2').value:=password;
try
OPEN;
except
on EDatabaseError do
messagedlg('数据库操作错误!',mtError,[mbok],0);
end;
if isempty then
begin
showmessage('密码输入有误,请重新输入密码!');
Epassword.SetFocus;
exit;
end
else
begin
Flogin.Hide;
if DataModule1.ADOQUERY1.FieldByName('super').AsString='否' then
begin
Fmain.TBuserman.Enabled:=false;
Fmain.TBsetting.Enabled:=false;
Fmain.N3.Enabled:=false;
end;
fmain.Logined:=true;
Fmain.ShowModal;
end;
end;
end;
end;工程文件代码是:
program Ptag;uses
Forms,
Umain in 'Umain.pas' {Fmain},
DataMudule in 'DataMudule.pas' {DataModule1: TDataModule},
Ulogin in 'Ulogin.pas' {Flogin};
{$R *.res}begin
Application.Initialize;
Application.CreateForm(TFmain, Fmain);
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TFlogin, Flogin);
Flogin.ShowModal;
Application.Run;
end.
在我运行登陆窗体时,不论我输入密码是否正确,系统都将登陆主窗体Fmain.请问是怎么回事??急
ShellExecute(0,'open','help.chm',NIL, NIL,SW_MAXIMIZE);
2,如果想要单击节点出现相应,用树型控件的的change事件,调用treeview.selected.text等等就可以了
很可能是第二个if is empty 处出的错
回答一下第一个吧
源码中有一处错误,没有对TempNode:=Treeview1.GetNodeAt(x, y);
中TempNode是否为空判断
应加入
if TempNode=nil then
begin
exit;
end;
就可以啦
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pnode: TTreeNode;
begin
pnode := TreeView1.GetNodeAt(X, Y);
if pnode <> nil then
begin
end;
end;