//下列代码在memo控件中正常发挥功能
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
lc:Longint;
CharPos:Word;
begin
lc:= SendMessage(RichEdit1.handle,EM_CHARFROMPOS,0,x+(y shl 16));//向文本框传递消息EN_CHARFROMPOS CharPos:=Word(lc);
end;//'Access violation at address 74DA95B3 in module 'RICHED.dll.''
有解决办法吗?
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
lc:Longint;
CharPos:Word;
begin
lc:= SendMessage(RichEdit1.handle,EM_CHARFROMPOS,0,x+(y shl 16));//向文本框传递消息EN_CHARFROMPOS CharPos:=Word(lc);
end;//'Access violation at address 74DA95B3 in module 'RICHED.dll.''
有解决办法吗?
解决方案 »
- 如何使DBGridEh关联lookup字段做数据检索录入即可录入又可以自动弹出下拉列表
- 请问为何我写的MDI窗体的程序,在Win2000的系统中最大化时正好可以出现在整个屏幕中间,但在XP系统下最大化窗体时总不是能完全布满整个屏幕?
- 失踪月亮的50分
- 达人帮忙一个SQL的问题(在线急等)
- 高分请教
- 我怎么也想不通这段代码又什么问题!!!!!!
- 哪里可以找到介绍sql93版世界标准的资料?
- 我要读大专,大家帮忙提点意见了@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- FForm是一个TForm的对象,longint(FForm)是什么意思?
- 请问如何用SQL语句计算相同条件的值的合并把该合赋给一个变量
- 关于delphi监控浏览器
- delphi 线程和VCL的问题?
Access violation at address <十六进制值>
in module <应用程序名>
Read of address <十六进制值> “Access violation at address 00000000.Read of adress 00000000.意思是:在地址 00000000 存取违反,禁止对地址00000000的读取 出现access violation at address 00000000. read of address 00000000.原因是:没有运行服务端软件,所以客户机会提示"Access violation at address 00000000, read of address 0000000",开启服务端程序或检查网线即可解决。 另外,可能出现这个问题的原因是因为你是在WINRAR的窗口中运行程序,而程序又找不到主要文件引起的。 解决方法:)~~
尝试用兼容方式运行该程序.右键点击图标——属性——兼容型——选中“以兼容方式运行该程序”——下面的选框中可以选择以95、98、NT4.0或2000模式来运行。推荐选择98试试看。
to (猎狐):粘贴板具体怎么使用?下面我把代码全部贴出,希望有什么办法改进一下以便在richedit中也能运行: {函数IsSparetor用于判定一个字符是否为分隔符}
function TForm1.IsSeparetor(ch: Char): Boolean;
begin
IsSeparetor :=False; if ch in [' ',',','.', '?',#13,#10] then
IsSeparetor:= True ;
end;{函数GetWord用于读取鼠标所在位置的单词}
function TForm1.GetWord(pos: Word): String;
var
st:string;
pos1,pos2:Word;
i:Longint;
w:string;
begin
w:='';
pos1:= 1;
getword:='';
{读取文本框中的内容及文本长度}
st:=Memo1.Lines.Text ;
pos2:=length(st);
{向前搜寻当前单词的起始位置}
For i:= pos - 1 downTo 1 do
If IsSeparetor(st[i]) Then
begin
pos1:= i + 1;
break
end;
{向后搜寻当前单词的结束位置}
For i:= pos To pos2 do
If IsSeparetor(st[i])Then
begin
pos2:= i - 1;
break
end;
{截取pos1-pos2间的字符,以构成一个单词}
if pos1<=pos2 then
begin
For i:= pos1 To pos2 do
w:=w+st[i];
GetWord:= '单词:'+w
end ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Lines.Add('THis si a test!');
end;
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
lc:Longint;
CharPos:Word;
begin
{向文本框传递消息EN_CHARFROMPOS}
lc:= SendMessage(Memo1.handle,EM_CHARFROMPOS,0,x+(y shl 16));{取得鼠标位于第几个字符上}
CharPos:=Word(lc);
{显示我们所点取的单词}
caption:= GetWord(CharPos);
end;