请会BCB的朋友帮我把一段BCB代码转成DELPHI代码,好吗?(只有三行)。多谢!
int nIndex = SendMessage(ComboBox1->Handle, CB_FINDSTRING,
-1, (long)ComboBox1->Text.c_str());
if (nIndex!=CB_ERR) ComboBox1->ItemIndex = nIndex;
问题点数:20、回复次数:9Top
1 楼ikumei(雷欧纳德·布莱特)回复于 2002-10-07 17:24:50 得分 0
nIndex := SendMessage(ComboBox1.Handle, CB_FINDSTRING,
-1, LongInt(ComboBox1.Text.c_str()));
if nIndex <> CB_ERR then
ComboBox1.ItemIndex := nIndex;Top
2 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2002-10-07 17:29:24 得分 0
var
nIndex: integer;
szStr: array[0..255] of char;
begin
...
StrPCopy(szStr, Caption);
nIndex= SendMessage(
ComboBox.Handle,
CB_FINDSTRING,
-1,
integer(@szStr)
);
if(nIndex <> CB_ERR) then
ComboBox.ItemIndex:= nIndex;Top
3 楼qdxby(足球小子)回复于 2002-10-07 19:14:19 得分 0
以上两种方法都不行啊。哪位高人能解决啊。Top
4 楼zswang(伴水清清)(专家门诊清洁工)回复于 2002-10-07 19:58:59 得分 15
(*//
声明:
本人保证所提供的方法是所知的最好方法
解答问题纯属公益性质
所以请不要向我追问
如果有时间自会关注后续问题
//*)
var
vIndex: Integer;
begin
vIndex := SendMessage(ComboBox1.Handle, CB_FINDSTRING,
-1, Integer(PChar(ComboBox1.Text)));
if vIndex <> CB_ERR then ComboBox1.ItemIndex := vIndex;
end;
Top
5 楼qdxby(足球小子)回复于 2002-10-07 22:44:53 得分 0
伴水兄,你给的代码没有错误。但并不能实现和那段BCB代码一样的功能。
如果ComboBox1的Item有’我们‘,‘你们’,‘他们’,用那段BCB的代码在ComboBox1中输入一个’你‘,ComboBox1.Text就变成‘你们’,其中’们‘是被选中状态。我就想要这种效果。但你的那段代码作不到。
另外,如果还想实现ComboBox1的下拉框拉下来,‘你们’被选中,还
应加些什么代码?
上帝保佑你能来。
Top
6 楼zhangqi_pku()回复于 2002-10-08 07:55:08 得分 5
下面是经过测试正确的代码:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
vIndex: Integer;
begin
vIndex := SendMessage(ComboBox1.Handle, CB_FINDSTRING,
-1, lparam(lpcstr(ComboBox1.Text)));
if vIndex <> CB_ERR then
ComboBox1.ItemIndex := vIndex;
end;
Top
7 楼qdxby(足球小子)回复于 2002-10-08 08:57:19 得分 0
TO:zhangqi_pku()
不知你是怎么测试通过的,我怎么没取得我要得效果?Top
8 楼qdxby(足球小子)回复于 2002-10-09 15:01:23 得分 0
HELP,HELP。。。。。Top
9 楼zwjchina(蒲石)回复于 2002-10-09 15:19:40 得分 0
我也测试通过,唯一不符合你要求的是“你们”同时都被选中了,而不是“你”没选中,“们”被选中的状态。Top




