一个超级简单的有关问题!顶者有分!

一个超级简单的问题!!顶者有分!!!
有个窗体消息的响应函数
public
    procedure   ShowEvent(var   msg:   TMessage);message   WM_USER+100;

实现如下
procedure   ShowEvent(var   msg:   TMessage);message   WM_USER+100;
begin
    ShowMessage(IntToStr(GetLastError()));
    Memo1.lines.add( 'OK ');
    ShowMessage(IntToStr(GetLastError()));
end;

一个按钮点击事件
begin
    SendMessage(Form1.handle,   WM_USER+100,   0,   0);
end;  

结果是:
0
5
0
难道是说Memo1.lines.add( 'OK ')是有错误的?但是 'OK '确实加上去了。
把Memo1.lines.add( 'OK ')去掉,结果为
0
0

很是郁闷,请问这是为什么?谢谢。
顶者有分。

------解决方案--------------------
顶!
------解决方案--------------------
第一个帮顶的给100,呵呵
------解决方案--------------------
多少年没用这个了,纯帮顶呀!!
------解决方案--------------------
帮忙!
------解决方案--------------------

------解决方案--------------------
Memo1.lines.add( 'OK ');
会返回lines的当前位置
GetLastError就处理了这个返回值,可以无视掉滴
------解决方案--------------------
顶了就有分
何乐而不为
------解决方案--------------------
调用这个
Memo1.lines.add( 'OK ');

add方法里面可能把LastError已经变化了
------解决方案--------------------
顶哟~~
------解决方案--------------------
memo1.line.add这个方法返回整型,你有没有接收返回值,当然是错误的,虽然可以加上去。你先声明一个整型,
var
i:integer
begin
ShowMessage(IntToStr(GetLastError()));
i := Memo1.lines.add( 'OK ');
ShowMessage(IntToStr(GetLastError()));
end;
------解决方案--------------------
晕,我试了一下,没有问题啊,都只提示两次0
------解决方案--------------------
Memo1加一行的源码:

procedure TMemoStrings.Insert(Index: Integer; const S: string);
var
SelStart, LineLen: Integer;
Line: string;
begin
if Index > = 0 then
begin
SelStart := SendMessage(Memo.Handle, EM_LINEINDEX, Index, 0);
if SelStart > = 0 then Line := S + #13#10 else
begin
SelStart := SendMessage(Memo.Handle, EM_LINEINDEX, Index - 1, 0);
if SelStart < 0 then Exit;
LineLen := SendMessage(Memo.Handle, EM_LINELENGTH, SelStart, 0);
if LineLen = 0 then Exit;
Inc(SelStart, LineLen);
Line := #13#10 + s;
end;
SendMessage(Memo.Handle, EM_SETSEL, SelStart, SelStart);
SendMessage(Memo.Handle, EM_REPLACESEL, 0, Longint(PChar(Line)));
end;
end;
------解决方案--------------------
学习ing,by the way,up!
------解决方案--------------------
今年过节不收分。收分只收您的分!
------解决方案--------------------
頂..
接分

------解决方案--------------------
基本说明 Memo1.lines.add( 'OK ') 确实修改了 LastError的值.
我试了,不管是否放到消息处理中,还是在按钮事件中,都有影响.