請問我該如何獲取一個窗體中listbox控件內的值啊?

juntao_peng 2006-05-31 11:56:11
請問我該如何獲取一個窗體中listbox控件內的值啊?
比如我想在delphi中寫段代碼獲取一個運行程序窗體內listbox中的值,請問該怎么解決啊?
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞哥 2006-05-31
  • 打赏
  • 举报
回复
对窗体发消息,还知道,不知道对里面。发消息怎么弄

隔楼的兄弟说的对窗体适用
postren 2006-05-31
  • 打赏
  • 举报
回复
呵呵,用LB_GETTEXT消息

An application sends an LB_GETTEXT message to retrieve a string from a list box.

LB_GETTEXT
wParam = (WPARAM) index; // item index
lParam = (LPARAM) (LPCTSTR) lpszBuffer; // address of buffer
xixuemao 2006-05-31
  • 打赏
  • 举报
回复
楼上的对listbox好像不可以吧
GARNETT2183 2006-05-31
  • 打赏
  • 举报
回复
先用FindWindow/FindWindowEx拿到ListBox的句柄,之后用GetWindowtext可以拿到...
或用
Wm_GetText这个消息...
SendMessage(hList,WM_GetText,256,integer(@szText[0]));
juntao_peng 2006-05-31
  • 打赏
  • 举报
回复
請樓上的兄臺具體點,給個實例好麼?呵。。謝謝
postren 2006-05-31
  • 打赏
  • 举报
回复
先用FindWindow/FindWindowEx找到该ListBox的句柄
然后给它发消息,让它告诉你

xixuemao 2006-05-31
  • 打赏
  • 举报
回复
上面代码太麻烦,修改一下:
procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
begin
sl:= TStringList.Create;
GetListBoxText(listbox1.Handle,sl);
//sl就是listbox中的内容
end;

procedure GetListBoxText(mHandle: THandle;
var sl: TStringList);
var
vItemCount: Integer;
I: Integer;
S: string;
begin
vItemCount := SendMessage(mHandle, LB_GETCOUNT, 0, 0);
for I := 0 to vItemCount - 1 do
begin
SetLength(S, SendMessage(mHandle, LB_GETTEXTLEN, I, 0));
SendMessage(mHandle, LB_GETTEXT, I, Integer(@S[1]));
sl.Add(S);
end;
end;
xixuemao 2006-05-31
  • 打赏
  • 举报
回复
http://www.daima.com.cn/Info/106/Info35291/


function GetListBoxText(mHandle: THandle; mStrings: TStrings): Boolean;
var
vItemCount: Integer;
I: Integer;
S: string;
begin
Result := False;
if not Assigned(mStrings) then Exit;
mStrings.BeginUpdate;
try
mStrings.Clear;
vItemCount := SendMessage(mHandle, LB_GETCOUNT, 0, 0);
for I := 0 to vItemCount - 1 do begin
SetLength(S, SendMessage(mHandle, LB_GETTEXTLEN, I, 0));
SendMessage(mHandle, LB_GETTEXT, I, Integer(@S[1]));
mStrings.Add(S);
end;
SetLength(S, 0);
finally
mStrings.EndUpdate;
end;
Result := True;
end; { GetListBoxText }

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧