動態產生物件的事件問題 |
尚未結案
|
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
各位大大好:
如何對動態産生的物件,調用onmousemove方法?
type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } public mymap:TMapEdit; procedure mymapmousemove(Sender: TObject; Shift: TShiftState; X, Y: Integer); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin myMap := TMapEdit.Create(self); myMap.Parent := self.Panel1; myMap.Align := alclient; mymap.Geoset := 'United States'; end; //為什么程序執行不到這裏? procedure TForm1.mymapmousemove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin mymap.AutoMoveMap(x, y, true); end; |
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
请问各位大大,我在调试中遇到一个问题,百思不得其解,请指教。
type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public mymap: TMapEdit; end; var Form1: TForm1; procedure TForm1.Button1Click(Sender: TObject); begin mymap := TMapEdit.Create(self); 运行到这里就报错误: class EPrivilege with message 'Privilieged instruction' mymap.Parent := Panel1; mymap.Align := alclient; mymap.Geoset := 'United States'; end; procedure TForm1.Button2Click(Sender: TObject); begin if assigned(mymap) then if assigned(mymap.Layers.InsertionLayer) then mymap.CloseEditLayer; end;TMapEdit是从一个activex控件继承下来的。 TOleControl——>TMap——>TMapEdit type TMapEdit = class(TMap) private FZLH: string; protected public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function LayersCount: Integer; //当前地图图层数量 procedure CloseGeoset; //关闭地图集 published property ZLH: string read FZLH write FZLH; end; [/code] Thanks 發表人 - zzmbeyond01 於 2004/06/09 18:47:58 |
zzmbeyond01
中階會員 發表:98 回覆:167 積分:53 註冊:2003-09-07 發送簡訊給我 |
大大:< >< >
实在是搞不走了。。
我现在改成了类引用的方式,还是不行1
是不是从activex控件(mapinfo公司的mapx控件)派生新类,有限制呢?< >< >
代码如下:
// unit1 type TControlClass=class of TWinControl; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private procedure CreateControlObj(ControlObj:TControlClass); public { Public declarations } mapshow:TMapshow; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin createcontrolobj(TMapShow); end; procedure TForm1.CreateControlObj(ControlObj: TControlClass); var aobj:TWinControl; amapobj:TMapShow; begin aobj:=controlobj.Create(self); //这里运行不过去,需要F9好几遍(连续抱错),才能将地图显示出来 aobj.Parent:=self; aobj.Align:=alclient; if aobj is TMapShow then begin amapobj:=aobj as TMapShow; amapobj.Geoset:='United States'; end; end; //********************************派生类单元 unit2 type TMapShow = class(TMap) private protected public constructor Create(Aowner:TComponent); override; destructor Destroy; override; end; implementation { TMapShow } constructor TMapShow.Create(Aowner:TComponent); begin inherited create(aowner); end; destructor TMapShow.Destroy; begin inherited; end;< > < > |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |