delphi难啊 高手光顾一下,解释一下行吗
PROCEDURE TMainForm.ClientWndProc(VAR Message: TMessage);
VAR
MyDC : hDC;
Ro, Co : Word;
t1,t2:integer;
begin
with Message do
case Msg of
WM_ERASEBKGND:
begin
{ MyDC := TWMEraseBkGnd(Message).DC;
t1:=ClientHeight DIV Image1.Picture.Height;
t2:=ClientWIDTH DIV Image1.Picture.Width;
FOR Ro := 0 TO t1 DO
FOR Co := 0 TO t2 DO
// co:=0;
// ro:=0;
BitBlt(MyDC, Co*Image1.Picture.Width, Ro*Image1.Picture.Height,
Image1.Picture.Width, Image1.Picture.Height,
Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
Result := 1;}
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam,lParam);
end;
end;
补充:private
FClientInstance,
FPrevClientProc : TFarProc;//这是前面的定义的 这是什么
答案:我了个去,楼上回答的是错误的。
只是定义两个变量 FClientInstance, FPrevClientProc 为TFarProc类,并不是继承。
另外这是一个消息处理过程。
with Message do
case Msg of
WM_ERASEBKGND://当消息为WM_ERASEBKGND时,执行以下逻辑
begin
{ MyDC := TWMEraseBkGnd(Message).DC;
t1:=ClientHeight DIV Image1.Picture.Height;
t2:=ClientWIDTH DIV Image1.Picture.Width;
FOR Ro := 0 TO t1 DO
FOR Co := 0 TO t2 DO
// co:=0;
// ro:=0;
BitBlt(MyDC, Co*Image1.Picture.Width, Ro*Image1.Picture.Height,
Image1.Picture.Width, Image1.Picture.Height,
Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
Result := 1;}
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam,lParam);
end;
其他:FOR Ro := 0 TO t1 DO
FOR Co := 0 TO t2 DO
// co:=0;
// ro:=0; FClientInstance,
FPrevClientProc : TFarProc;
这是继承这个 TFarProc类 1. InitPos:=Memo1.SelStart+Memo1.SelLength
Memo1.SelStart 是memo里选中的文字的开始位置
Memo1.SelLength 是memo里选中的文字的长度
两个加起来就是 选中文字的 结束位置
2. FoundPos:=Pos(FindDialog1.FindText,Copy(Memo1.Text,InitPos+1,Length(Memo1.Text)-InitPos));
InitPos+1 就是选中的文本之后的文本的起始位置
Length(Memo1.Text)-InitPos memo整个文本的长度 - 选中文本的结束位置
也就是 选中的文本之后 所有的文字的长度
那么copy函数整个的返回值就是 选中文本之后的 所有文本
所以 整个函数的意思就是 查找 查找对话框中的文本 在当前选择的文本之后的文本中的位置
比如 memo1.text 为 “abcdefg” 当前选择的文本是“b” 要查找的是“f”
FoundPos 的结果就是 4
3.Memo1.SelStart:=InitPos+FoundPos-1;
将查找到的文本选定
关于delphi:
我个人认为编程语言和开发工具仅仅是工具而已,最重要的是你的编程思想的继承,工具无所谓强大,他只是简化了你的某些操作而已
对Delphi而言,它的方便之处在于快速的界面可视化设计和开源的代码,如果需要你可以很方便地继承它给你提供的VCL库为自己所用,另外就是他方便的数据库开发,因为它为你封装了数据库操作灵活方便的ADO和BDE控件,熟悉一个工具,要熟悉它的操作,快捷键,另外就是它给你提供的别的工具所没有提供的东西
上一个:DELPHI简单问题
下一个:delphi 求解析