首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-03-30 
一个超级简单的问题!!顶者有分!!!有个窗体消息的响应函数publicprocedureShowEvent(varmsg:TMessage)mess

一个超级简单的问题!!顶者有分!!!
有个窗体消息的响应函数
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的值.
我试了,不管是否放到消息处理中,还是在按钮事件中,都有影响.


放到Timer事件中,似乎没有影响,但是在Timer事件发生前,你在Memo1中按一下空格键,就有影响了.
[解决办法]
顶啊
[解决办法]
顶,不是干这行的帮不了你
[解决办法]
那就顶~
[解决办法]
DELPHI忘干净了,帮顶下~
[解决办法]
GetLastError()
就是这个函数截取了Memo的当前索引值
而系统却不知道
所以你添加的时候系统并不知道Memo的当前索引值
所以无法在重复的行添加


{小弟是这么理解的,自己也觉得不正确}

[解决办法]
应该在一个API之后紧接着调用GetLastError, delphi的函数已经执行了N个API,
GetLastError返回的已经不是你要的了。
[解决办法]
那就先顶。。。虽然不懂delphi~
[解决办法]
顶顶顶
[解决办法]
UP~
[解决办法]
顶了这么多,应该已经解决了吧,我就不看了,也顶!
[解决办法]
顶顶顶 给分
[解决办法]
接分!
[解决办法]
看不懂
[解决办法]
接分+顶
[解决办法]
先顶再看。。。。
[解决办法]
先顶再看
[解决办法]
先顶再看..
[解决办法]
用ollydbg来调试看看,呵呵,接分!关注!顶!
[解决办法]
jf
[解决办法]
顶,给分|:!
[解决办法]
接分
[解决办法]
JF
[解决办法]

[解决办法]
SendMessage(Memo.Handle, EM_SETSEL, SelStart, SelStart);
SelStart指向字符串末尾的位置,你叫windows如何不拒绝访问(getlasterror=5)
[解决办法]
up
[解决办法]
顶一个~~~
[解决办法]
顶~
[解决办法]

[解决办法]
骗子。。。
[解决办法]
jing
[解决办法]
顶就有分 ?
[解决办法]
啊哦```我看不懂
嘻嘻```不晓得什么意思``


[解决办法]
顶你一下
[解决办法]
顶~一个
[解决办法]
支持一下,顶
[解决办法]
ding
[解决办法]
专门顶的!~
[解决办法]
顶呀,真有分吗??
[解决办法]
顶啊
[解决办法]
Delphi用的不多,帮顶!!!!
[解决办法]
jf
[解决办法]
不会.不过顶一下
[解决办法]
偷换概念
[解决办法]
up
[解决办法]
帮你顶一下

[解决办法]
帮你顶一下
[解决办法]
接点分~~~
[解决办法]
帮你顶
[解决办法]
帮你顶,
不过看你SHOWMESSAGE()两次,会出来0 5 0 三次提示?
[解决办法]
up
[解决办法]
jf
[解决办法]
up
[解决办法]
学习一下…………
[解决办法]
楼主:
第一次的输出是
0
5
0
还是
0
5
我在这里没有发现你有三个输出阿????
[解决办法]
路过~~捡分~~ 买米~~~~

热点排行