用TActionManager作出来个菜单,点击时候咋没反映?【在线等】

blue_bat 2004-03-19 05:13:34
如题
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
blue_bat 2004-03-22
  • 打赏
  • 举报
回复
我真的受不了了,我吧那个ActionManager删掉然后重新添了一个就好了。。。。

程序没问题了,可这是咋回事?认了吧!
结帖!!!
blue_bat 2004-03-21
  • 打赏
  • 举报
回复
不好意思,现在才来,不过问题还没解决
whaway 2004-03-21
  • 打赏
  • 举报
回复
如果是标准ACTION的话,从TActionManager中拖到TOOLBAR上就能用了;
如果是自己建的话,从TActionManager双击自定义的ACTION,写一条语句保证ACTION执行不为空就OK了;
注意:可能是你把ACTION加到了ACTIVE属性为FALSE的ACTION下,这样肯定看都看不到了。
blue_bat 2004-03-21
  • 打赏
  • 举报
回复
我真不明白,没有人回答吗?

这叫我怎样结帖?
postren 2004-03-19
  • 打赏
  • 举报
回复
我的ftp是临时的ADSL动态
postren 2004-03-19
  • 打赏
  • 举报
回复
ftp://lessBug:LessBug@218.72.8.13
方便把源码给我传过来吗? 我帮你看看
blue_bat 2004-03-19
  • 打赏
  • 举报
回复
求求你们了,如果分数不够我可以再开帖子给分,直到我得到答案为止!

本人有9k多可用分!!!
blue_bat 2004-03-19
  • 打赏
  • 举报
回复
why101(王一行) :
关联了,我看了D7自己的例子,我得和例子一模一样,可例子就可以执行没问题,而我得怎么也不能触发Action的执行时间,调试都走不到那一步!
blue_bat 2004-03-19
  • 打赏
  • 举报
回复
这是我的代码,怎么菜单点击就是没反映?
还有人在吗?


unit MainForm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, OleCtrls, MapXLib_TLB, Menus, ImgList, ComCtrls,
ToolWin, StdCtrls, Buttons, CheckLst, ComObj, BusinessSkinForm, ActnMan,
ActnCtrls, XPStyleActnCtrls, ActnList, ActnColorMaps, ActnMenus,
StdStyleActnCtrls;

type
TfrmMainForm = class(TForm)
pnlMainMap: TPanel;
mapMainMap: TMap;
pnlRight: TPanel;
spltMiddle: TSplitter;
pnlSmallMap: TPanel;
mapSmallMap: TMap;
pnlOperate: TPanel;
spltRight: TSplitter;
sbMainMap: TStatusBar;
sbTime: TStatusBar;
tmMain: TTimer;
GroupBox1: TGroupBox;
clbCompany: TCheckListBox;
Panel2: TPanel;
sbAllSelect: TSpeedButton;
sbNullSelect: TSpeedButton;
sbNotSelect: TSpeedButton;
sbDelete: TSpeedButton;
amMain: TActionManager;
mmbMain: TActionMainMenuBar;
actMapOpen: TAction;
actMapExport: TAction;
actToolsSelect: TAction;
actToolsZoomin: TAction;
actToolsZoomout: TAction;
actToolsMove: TAction;
actToolsRestore: TAction;
actDataImport: TAction;
actDataDefine: TAction;
actDataGen: TAction;
actQueryDetail: TAction;
actQueryDefine: TAction;
actHelpUserguide: TAction;
actHelpAbout: TAction;
atbMain: TActionToolBar;
procedure FormShow(Sender: TObject);
procedure tmMainTimer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure mapMainMapToolUsed(ASender: TObject; ToolNum: Smallint; X1,
Y1, X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
var EnableDefault: WordBool);
procedure clbCompanyDblClick(Sender: TObject);
procedure sbAllSelectClick(Sender: TObject);
procedure sbNullSelectClick(Sender: TObject);
procedure sbNotSelectClick(Sender: TObject);
procedure sbDeleteClick(Sender: TObject);
procedure actToolsSelectExecute(Sender: TObject);
procedure actToolsZoominExecute(Sender: TObject);
procedure actToolsZoomoutExecute(Sender: TObject);
procedure actToolsMoveExecute(Sender: TObject);
procedure actDataDefineExecute(Sender: TObject);
procedure actDataGenExecute(Sender: TObject);
procedure actQueryDetailExecute(Sender: TObject);
procedure actQueryDefineExecute(Sender: TObject);
procedure actHelpAboutExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMainForm: TfrmMainForm;
searchLayer : Variant;

implementation

uses Splash, ClientDataModule, DetailDisplay, DefineTable, MakeUserTable,
DisplaySet, About;

{$R *.dfm}

procedure TfrmMainForm.FormShow(Sender: TObject);
var
dlg : TfrmLogin;
begin
dlg := TfrmLogin.Create(self);
//dlg.ShowModal;
//测试时候注销上一句
dlg.Free;
if dmClientDM.cdsUser.RecordCount <> 1 then
begin
Application.Terminate;
end;
actToolsSelect.Execute;
end;

procedure TfrmMainForm.tmMainTimer(Sender: TObject);
begin
sbTime.Panels.Items[0].Text := FormatDateTime('YYYY-MM-DD HH:NN:SS',Now());
end;

procedure TfrmMainForm.FormActivate(Sender: TObject);
begin
searchLayer := mapMainMap.Layers.Item('Canada Major Cities');
end;

procedure TfrmMainForm.mapMainMapToolUsed(ASender: TObject;
ToolNum: Smallint; X1, Y1, X2, Y2, Distance: Double; Shift,
Ctrl: WordBool; var EnableDefault: WordBool);
Var
i : Integer;
fID : String;
pt : Variant;
curFeatures : Variant;
obj : Variant;
begin
pt := CreateOleObject('MapX.Point.4');
if ToolNum = miSelectTool then
begin
pt.Set(X1,Y1);
curFeatures := SearchLayer.SearchAtPoint(pt);
for i := 1 to curFeatures.Count do
begin
obj := curFeatures.Item(i);
Str(obj.FeatureID:4:0, fID);
self.clbCompany.Items.Add(obj.Name);
dmClientDM.curCompany := obj.Name;
//self.mmQueryDetail.Click;
end;
end;
//sbMainMap.Panels.Items[0].Text := Format('X = %d',pt.X);
//sbMainMap.Panels.Items[1].Text := Format('Y = %d',pt.Y);

end;

procedure TfrmMainForm.clbCompanyDblClick(Sender: TObject);
var
i : integer;//循环变量
begin
for i:=0 to clbCompany.Items.Count - 1 do
begin
if clbCompany.Selected[i] then
begin
dmClientDM.curCompany := clbCompany.Items.Strings[i];
// self.mmQueryDetail.Click;
exit;
end;
end;
end;

procedure TfrmMainForm.sbAllSelectClick(Sender: TObject);
var
i : integer;
begin
for i:=0 to self.clbCompany.Count - 1 do
begin
self.clbCompany.Checked[i] := true;
end;
end;

procedure TfrmMainForm.sbNullSelectClick(Sender: TObject);
var
i : integer;
begin
for i:=0 to self.clbCompany.Count - 1 do
begin
self.clbCompany.Checked[i] := false;
end;
end;

procedure TfrmMainForm.sbNotSelectClick(Sender: TObject);
var
i : integer;
begin
for i:=0 to self.clbCompany.Count - 1 do
begin
self.clbCompany.Checked[i] := not self.clbCompany.Checked[i];
end;
end;

procedure TfrmMainForm.sbDeleteClick(Sender: TObject);
var
i : integer;
begin
self.clbCompany.MultiSelect := true;
for i:=0 to self.clbCompany.Count - 1 do
begin
self.clbCompany.Selected[i] := self.clbCompany.Checked[i];
end;
self.clbCompany.DeleteSelected;
self.clbCompany.MultiSelect := false;
end;

procedure TfrmMainForm.actToolsSelectExecute(Sender: TObject);
begin
mapMainMap.CurrentTool := miSelectTool;
end;

procedure TfrmMainForm.actToolsZoominExecute(Sender: TObject);
begin
mapMainMap.CurrentTool := miZoomInTool;
end;

procedure TfrmMainForm.actToolsZoomoutExecute(Sender: TObject);
begin
mapMainMap.CurrentTool := miZoomOutTool;
end;

procedure TfrmMainForm.actToolsMoveExecute(Sender: TObject);
begin
mapMainMap.CurrentTool := miPanTool;
end;

procedure TfrmMainForm.actDataDefineExecute(Sender: TObject);
var
dlg : TfrmDefineTable;
begin
dlg := TfrmDefineTable.Create(Application);
dlg.ShowModal;
dlg.Free;
end;

procedure TfrmMainForm.actDataGenExecute(Sender: TObject);
var
dlg : TfrmMakeUserTable;
begin
dlg := TfrmMakeUserTable.Create(Application);
dlg.ShowModal;
dlg.Free;
end;

procedure TfrmMainForm.actQueryDetailExecute(Sender: TObject);
var
dlg : TfrmDetailDisplay;
begin
dlg := TfrmDetailDisplay.Create(Application);
dlg.ShowModal;
dlg.Free;
end;

procedure TfrmMainForm.actQueryDefineExecute(Sender: TObject);
var
dlg : TfrmDisplaySet;
begin
dlg := TfrmDisplaySet.Create(Application);
dlg.ShowModal;
dlg.Free;
end;

procedure TfrmMainForm.actHelpAboutExecute(Sender: TObject);
var
dlg : TfrmAbout;
begin
dlg := TfrmAbout.Create(Application);
dlg.ShowModal;
dlg.Free;
end;

end.
why101 2004-03-19
  • 打赏
  • 举报
回复
你把两者关联没有?

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧