还是屏幕截词代码!!!!(300分)

  • 主题发起人 主题发起人 awater
  • 开始时间 开始时间
A

awater

Unregistered / Unconfirmed
GUEST, unregistred user!
还是屏幕截词代码!!!!那里有啊!@@@@@@@
 
http://211.101.4.25/delphibbs/dispq.asp?lid=728239
 
抄上面的
1、添加form,在上面添加一个richedit,名字叫rich1
2、在form的onload事件中往rich1里面随便添加一段文字做测试用:
procedure TForm1.FormCreate(Sender: TObject);
begin
; rich1.Lines.Add('cAkk is a good boy');
end;

3、定义rich1的onmousemove事件:
procedure TForm1.rich1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var txt:String;
begin
; txt:= RichWordOver(rich1, X, Y);
; //截词结果显示在form的caption上
; If Caption <> txt Then
; ; ;Caption:= txt;
end;

4、定义函数RichWordOver

Function TForm1.RichWordOver(rch:trichedit; X,Y:integer):string;
var pt:tpoint;
; ; pos,
; ; start_pos,
; ; end_pos:Integer;
; ; ch,txt:String;
; ; txtlen:Integer;
begin

; ; pt.X:= X;
; ; pt.Y:= Y;
; ; pos:=rch.Perform(EM_CHARFROMPOS, 0, longint(@pt));
; ; If pos <= 0 Then Exit;
; ; txt:= rch.Text;
; ; For start_pos:= pos downTo 1 do
; ; begin
; ; ; ; ch:=copy(rch.text,start_pos, 1);
; ; ; ; If Not (
; ; ; ; ; ; ( (ch >= '0') And (ch <= '9') ) Or
; ; ; ; ; ; ( (ch >= 'a') And (ch <= 'z') ) Or
; ; ; ; ; ; ( (ch >= 'A') And (ch <= 'Z') ) Or
; ; ; ; ; ; (ch = '_')
; ; ; ; ) Then break;
; ; end;

; ; inc(start_pos);

; ; txtlen:= Length(txt);
; ; For end_pos:= pos To txtlen do
; ; begin
; ; ; ; ch:= copy(txt, end_pos, 1);
; ; ; ; If Not (
; ; ; ; ; ; ( (ch >= '0') And (ch <= '9') ) Or
; ; ; ; ; ; ( (ch >= 'a') And (ch <= 'z') ) Or
; ; ; ; ; ; ( (ch >= 'A') And (ch <= 'Z') ) Or
; ; ; ; ; ; (ch = '_')
; ; ; ; ) Then break;
; ; end;
; ; dec(end_pos);

; ; If start_pos <= end_pos Then
; ; ; ; result:=copy(txt, start_pos, end_pos - start_pos + 1);
End;
 
接受答案了.
 
后退
顶部