[考题]如何获得PopupMenu、MainMenu、OpenDialog....这些非可视元件在设计期间放置的坐标 非可视元件:由TComponent继承下来,但不是从Control继承下来比如:设计期间在窗体上放置一个PopupMenu1在运行期间获取其放置坐标(Left,Top) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ide是可以 获取的 移动时候 有hit提示。hook获取 哈哈。。ide接口 tools api里应该有方法 RTTI或者给每种类型的组件作一个LocationSetter #- - var ALeft,ATop:Integer;begin ALeft :=LongRec(PopupMenu1.DesignInfo).Lo; ATop := LongRec(PopupMenu1.DesignInfo).Hi;end; wywry正确type TComponent = class(TPersistent, IInterface, IInterfaceComponentReference) private//... procedure ReadLeft(Reader: TReader); procedure ReadTop(Reader: TReader); procedure WriteLeft(Writer: TWriter); procedure WriteTop(Writer: TWriter);//... end;procedure TComponent.WriteLeft(Writer: TWriter);begin Writer.WriteInteger(LongRec(FDesignInfo).Lo);end;procedure TComponent.WriteTop(Writer: TWriter);begin Writer.WriteInteger(LongRec(FDesignInfo).Hi);end;总结:这个问题告诉我们,解决VCL问题,最好途径就是分析VCL代码。 动态修改浏览器中地网页页面具体内容 如何将查询的结果显示在DBGrid上? SPCOM/MSCOMM通信数据接收缓存/读取问题 AcitveX 放在浏览器里,刷新页面到另一个页后里面的事务是否还在运行 向Excel的一个单元格中输入数据时,怎么实现数据的多行显示!! 如何在DBGRID里,把货币型的字段显示出来?显示成前面有“¥”的~~高手进~ 请教Rose的活动图中如何设置连线的角度 我在运行程序时候提示的一个错误! 江门市或深圳的DELPHI高手可以留下QQ吗? 数据库窗体无法访问?急救!!! DBGird的两个问题 不规则窗口的创建~
hook获取 哈哈。。ide接口 tools api里应该有方法
var
ALeft,ATop:Integer;
begin
ALeft :=LongRec(PopupMenu1.DesignInfo).Lo;
ATop := LongRec(PopupMenu1.DesignInfo).Hi;
end;
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
private
//...
procedure ReadLeft(Reader: TReader);
procedure ReadTop(Reader: TReader);
procedure WriteLeft(Writer: TWriter);
procedure WriteTop(Writer: TWriter);
//...
end;procedure TComponent.WriteLeft(Writer: TWriter);
begin
Writer.WriteInteger(LongRec(FDesignInfo).Lo);
end;procedure TComponent.WriteTop(Writer: TWriter);
begin
Writer.WriteInteger(LongRec(FDesignInfo).Hi);
end;总结:这个问题告诉我们,解决VCL问题,最好途径就是分析VCL代码。