delphi2010用vclskin5.4出现错误,错误出现了不同的情况:
这次是:
procedure TWinSkinForm.NewWndProc(var aMsg: TMessage);
const
s = ' ';
var
b: boolean;
begin
{$IFDEF test}
// dolog(MsgtoStr(aMsg));
{$ENDIF}
done2 := false;
with aMsg do begin
case Msg of
CM_BEWAIT: begin
// If message comes from Billenium Effects
if aMsg.LParam = BE_ID then aMsg.Result := BE_ID
else aMsg.Result := 1;
end;
CM_BENCPAINT: begin
if amsg.LParam = BE_ID then begin
// If a device context is provided then render the non client area in it
if amsg.WParam <> 0 then
updatenc(amsg.WParam);
amsg.Result := BE_ID;
end
end;
CM_DialogChar:
CMDialogChar(amsg);
// CM_RELEASE: postmessage(hwnd,wm_close,0,0);
{CM_MENUCHANGED: begin
OldWndProc(amsg);
refresh;
done2:=true;
end;}
CN_SkinChanged: begin
SkinChange;
done := true;
end;
WM_SETTEXT: begin
if IsWindowVisible(hwnd) then begin
// mdiform has problem, change caption when created
{if isunicode or (formstyle=sfsmdichild) then //{liugaohui
OldWndProc(amsg)
else begin
sendmessage(hwnd,WM_SETREDRAW,0,0);
OldWndProc(amsg);
sendmessage(hwnd,WM_SETREDRAW,1,0);
Application.ProcessMessages;
end; } //liugaohui}
OldWndProc(amsg);
if (windowstate = swsmax) then
postmessage(skinmanager.clienthwnd, CN_NewMDIChild, hwnd, 0);
if windowstate = swsmin then
updatenc(0)
else refresh;
end else begin //visible=false
OldWndProc(amsg);
end;
done2 := true;
end;
else OldWndProc(amsg);
end;
end;
// if not Done2 then OldWndProc(amsg);
end;
// RedrawWindow(hwnd,0,0,RDW_FRAME or RDW_INVALIDATE or RDW_UPDATENOW);
请问这段源码有问题吗?
First chance exception at $7C812AFB. Exception class EInvalidPointer with message 'Invalid pointer operation'. Process myreader.exe (3996)
这次是:
procedure TWinSkinForm.NewWndProc(var aMsg: TMessage);
const
s = ' ';
var
b: boolean;
begin
{$IFDEF test}
// dolog(MsgtoStr(aMsg));
{$ENDIF}
done2 := false;
with aMsg do begin
case Msg of
CM_BEWAIT: begin
// If message comes from Billenium Effects
if aMsg.LParam = BE_ID then aMsg.Result := BE_ID
else aMsg.Result := 1;
end;
CM_BENCPAINT: begin
if amsg.LParam = BE_ID then begin
// If a device context is provided then render the non client area in it
if amsg.WParam <> 0 then
updatenc(amsg.WParam);
amsg.Result := BE_ID;
end
end;
CM_DialogChar:
CMDialogChar(amsg);
// CM_RELEASE: postmessage(hwnd,wm_close,0,0);
{CM_MENUCHANGED: begin
OldWndProc(amsg);
refresh;
done2:=true;
end;}
CN_SkinChanged: begin
SkinChange;
done := true;
end;
WM_SETTEXT: begin
if IsWindowVisible(hwnd) then begin
// mdiform has problem, change caption when created
{if isunicode or (formstyle=sfsmdichild) then //{liugaohui
OldWndProc(amsg)
else begin
sendmessage(hwnd,WM_SETREDRAW,0,0);
OldWndProc(amsg);
sendmessage(hwnd,WM_SETREDRAW,1,0);
Application.ProcessMessages;
end; } //liugaohui}
OldWndProc(amsg);
if (windowstate = swsmax) then
postmessage(skinmanager.clienthwnd, CN_NewMDIChild, hwnd, 0);
if windowstate = swsmin then
updatenc(0)
else refresh;
end else begin //visible=false
OldWndProc(amsg);
end;
done2 := true;
end;
else OldWndProc(amsg);
end;
end;
// if not Done2 then OldWndProc(amsg);
end;
// RedrawWindow(hwnd,0,0,RDW_FRAME or RDW_INVALIDATE or RDW_UPDATENOW);
请问这段源码有问题吗?
First chance exception at $7C812AFB. Exception class EInvalidPointer with message 'Invalid pointer operation'. Process myreader.exe (3996)
解决方案 »
- 为什么在服务中无法访问注册表
- 高分寻求TCP连接方案!
- 怎么样把数据库中的内容按照要求导入到listview中,并显示成dbgrid的样子?急!
- 请问怎样让任务栏上的图标闪动?
- 老家被盗,损失了上万元财物,让我逮到那狗娘养的小偷一定废了那丫的!
- ===delphi 自带的InstallShield不能使用中文,怎样才能可以?===
- 请问如何用TADOStoredProc调用存储过程
- 懂组件事件的‘调度方法’(Event-Dispatching Method)的高手请进!!!!!!!!!!!!!!!!
- 我的电脑里怎么没有strutils
- 各位高手幫幫小弟。
- delphi+access新手请教:代码有错误,请指点
- FORM1和FORM2同时显示,请问如何在FORM1中控制FORM2的对象?
我移植的时候,告诉我n多三方控件编译出错。
偶然看到易博龙没计划让D2010直接兼容D7。
那么,这些控件就需要作者再次修改了。
ps,如果作者转行了,没有改呢?
呵呵,那你用到它的程序就不能升级了呗。
等稳定版2010出来再仔细研究吧。