procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
vBuffer: array[0..256] of Char;
vConversionList: DWORD;
S: string;
begin
I := Screen.Imes.IndexOf('中文 (简体) - 微软拼音');
if I < 0 then Exit;
S := '你';
I := Integer(Screen.Imes.Objects[I]); vConversionList := ImmGetConversionList(I, 0, PChar(S), nil, 0, GCL_REVERSECONVERSION);
if vConversionList <= 0 then Exit;
vConversionList := ImmGetConversionList(I, 0, PChar(S), @vBuffer, vConversionList, GCL_REVERSECONVERSION);
if vConversionList <= 0 then Exit;
vBuffer[Byte(vBuffer[24]) + 1 * 2 + 1] := #0;
S := '';
for I := Byte(vBuffer[24]) to Byte(vBuffer[24]) + 1 * 2 do
AppendStr(S, vBuffer[I]);
Memo1.Lines.Add(S);
end;
var
I: Integer;
vBuffer: array[0..256] of Char;
vConversionList: DWORD;
S: string;
begin
I := Screen.Imes.IndexOf('中文 (简体) - 微软拼音');
if I < 0 then Exit;
S := '你';
I := Integer(Screen.Imes.Objects[I]); vConversionList := ImmGetConversionList(I, 0, PChar(S), nil, 0, GCL_REVERSECONVERSION);
if vConversionList <= 0 then Exit;
vConversionList := ImmGetConversionList(I, 0, PChar(S), @vBuffer, vConversionList, GCL_REVERSECONVERSION);
if vConversionList <= 0 then Exit;
vBuffer[Byte(vBuffer[24]) + 1 * 2 + 1] := #0;
S := '';
for I := Byte(vBuffer[24]) to Byte(vBuffer[24]) + 1 * 2 do
AppendStr(S, vBuffer[I]);
Memo1.Lines.Add(S);
end;
解决方案 »
- Delphi 如何保存数据到Excel中
- 怎么判断mediaplayer控件已经打开,或是已经关闭
- Socket同时传多个文件的问题请大侠指点迷津
- 想着好久啦!请各位帮手.......(如何显示日志记录...和打印记录)
- 如何在DBEDIT中输入一个这样格式的时间....或有没有现在的控件
- 请问谁有做过将数据显示至多个液晶电视上呢
- 又一个delphi论坛成立了: http://www.91delphi.com 吔!!
- 急,急,关于频繁刷新的问题???
- 請問可以用純delphi做出像 網站bbs論壇或 NOTES中電子公告欄的樣子嗎?? 高手給我建議建議....
- 自定义文件格式保存
- 各位高手,小弟问一个问题:
- 100分的问题,关于内存释放-----急急急!!!!!!!!
另外,你可以调试一下,看执行到那一步出错(或不是你预期的)。