在线等高手回答!
解决方案 »
- 再探完全释放指针内存的问题!
- 公司里面第三方控键用哪些?
- 讨论以下ADO连接数据库的那种方式运行速度快,能差多少?
- 如何对 TCLientDataSet 内的数据进行求和,并插进数据集中,急需现在解决的问题,帮忙了
- 很郁闷,为什么就是得不到对方程序窗口的内容?请高手指教,在线等待
- 哪位能提供一些公司招聘的试题
- 送分。100分。delphi的元素的色彩设置功能在什么地方呀
- 谁能告诉我虚拟桌面是怎么实现的
- 请问panel2.caption:=format('origin:(%d,%d)',[x,y])如何解释?
- 如何在MEMO控件最前面插入一行?
- 大家用什么版本控制工具
- 请问哪位有LZW压缩算法的源代码
定义接受:
procedure WMPaint(var msg: TWMPaint); message WM_PAINT;
procedure WMEraseBkGnd(var msg: TWMEraseBkGnd); message WM_ERASEBKGND; procedure TDisableDBEdit.WMEraseBkGnd(var msg: TWMEraseBkGnd);
var
Canvas: TCanvas;
begin
if Enabled then
inherited
else
begin
Canvas:= TCanvas.Create;
try
Canvas.Handle := msg.DC;
SaveDC(msg.DC);
try
canvas.Brush.Color := ClBlue;//在这里写入你的禁止色 canvas.Brush.Style := bsSolid;
canvas.Fillrect(clientrect);
msg.Result := 1;
finally
RestoreDC(msg.DC, - 1);
end;
finally
canvas.free
end;
end;
end;
procedure TDisableDBEdit.WMPaint(var msg: TWMPaint);
var
Canvas: TCanvas;
ps: TPaintStruct;
CallEndPaint: Boolean;
begin
if Enabled then
inherited
else
begin
CallEndPaint := False;
Canvas:= TCanvas.Create;
try
if msg.DC <> 0 then
begin
Canvas.Handle := msg.DC;
ps.fErase := true;
end
else
begin
BeginPaint(Handle, ps);
CallEndPaint:= True;
Canvas.handle := ps.hdc;
end;
if ps.fErase then
Perform(WM_ERASEBKGND, Canvas.Handle, 0);
SaveDC(canvas.handle);
try
Canvas.Brush.Style := bsClear;
Canvas.Font := Font;
Canvas.Font.Color := CLYELLOW;//你的禁止时的文字色
Canvas.TextOut(1, 1, Text);
finally
RestoreDC(Canvas.Handle, - 1);
end;
finally
if CallEndPaint then
EndPaint(handle, ps);
Canvas.Free
end;
end;
end;
当你disable时候激活另一个不就可以了?