报错信息:
Cannot assign a TFont to a TFont
......如何解决?
Cannot assign a TFont to a TFont
......如何解决?
解决方案 »
- delphi6属性编辑器有没有修改过的属性字体变粗的功能?
- 在线等待:WebBrowser 只读
- cxGrid如何保存表格格式
- 我安装Delphi7。0时的问题,一个星期了,郁闷啊
- 关于com+的新手问题,请各位帮忙
- 提示无效句柄
- 怎样编程实现从win98把win2000的共享目录映射成网络硬盘?(100分,在线等待)
- 小弟新发的额软件,文件命名助手,欢迎大家使用!
- 在三层开发过程中,如果客户端是win95,则需要安装WinSocket2.0,问题是在程序中怎样判断客户端是否安装了WinSocket2.0版本?
- 为什么在多次循环后,无法写入数据表中?
- datetimepicker显示数据库中一时间字段的时间
- 如何遍历一个文件夹的文件得到它们的文件名?
Memo1.Font := FontDialog1.Font;
Memo1.Font := FontDialog1.Font;
是把引用(REFRENCE)位置改变了而已,
不能达到,复制的效果.
他的错是说.
你不能有这么做.
TFont1.Assign(TFont2);
这句不通过,
大概就是这个意思.
Font.Size := ...
没代码!
就是做个DLL调用的MDIChild窗体,在这个窗体里随便找个showhint设为true,写点hint
run一下,现象就知道了!
function FontToOleFont(Font: TFont): Variant;
var
Temp: IFontDisp;
begin
GetOleFont(Font, Temp);
Result := Temp;
end;
procedure OleFontToFont(const OleFont: Variant; Font: TFont);
begin
SetOleFont(Font, IUnknown(OleFont) as IFontDisp);
end;function TOleControl.GetTFontProp(Index: Integer): TFont;
var
I: Integer;
begin
Result := nil;
for I := 0 to FFonts.Count-1 do
if FControlData^.FontIDs^[I] = Index then
begin
Result := TFont(FFonts[I]);
if Result.FontAdapter = nil then
SetOleFont(Result, GetIDispatchProp(Index) as IFontDisp);
end;
end;procedure TOleControl._SetTFontProp(Index: Integer; Value: TFont);
begin
SetTFontProp(Index, Value);
end;你看去,这是源码,也就是DLL做为一个通用性的模块,所以不能只是按照Delphi中的给值或Assign,你要通过接口调用实行转化才可以实现。例子很多,可以参考Delphi 的 Demo,建议,在做这之前,先看一看TLB单元源码。
就是想showhint!!!!!!!!!
按照你的说法,那我在Delphi做的主程序调用delphi做的Dll应该是没问题才对!?
这个问题是这样子出现的:传递了TScreen!
但是我想要用到MDICount之类的属性又必须传递TScreen!
怎么办?方案一:不传递TScreen找出一个可以“安全”替代的方法
方案二:继续寻找方法解决......:(
传递了TScreen又想ShowHint之类的操作
就得主程序和Dll在Build前都要在Option中的Packages中勾选Runtime Packages这样就可以回避问题!为什么呢?!