碰到这样一个问题,我想做一个按拼音首字查询的form,在一个edit里输入拼音简写,每输一个字母,希望跳出一个类似于dbgrid的里面是条件符合的记录,再接着输,就会根据你的拼音变化,把不符合的记录剔除掉。然后你用鼠标点击一条记录,就被选择出来,而跳出的选择框就消失掉。

解决方案 »

  1.   

    希望各位强人,帮忙贴个源码,如果是vcl做的,请告之名称
      

  2.   

    他们能显示输入汉字对应的首字符
    function Tform1.GetPY(hzchar:string):char; //????????
    begin
       case Word(hzchar[1])shl(8)+Word(hzchar[2]) of
         $B0A1..$B0C4:result:='A';
         $B0C5..$B2C0:result:='B';
         $B2C1..$B4ED:result:='C';
         $B4EE..$B6E9:result:='D';
         $B6EA..$B7A1:result:='E';
         $B7A2..$B8C0:result:='F';
         $B8C1..$B9FD:result:='G';
         $B9FE..$BBF6:result:='H';
         //$BBF7..$BFA5:result:='I';
         $BBF7..$BFA5:result:='J';
         $BFA6..$C0AB:result:='K';
         $C0AC..$C2E7:result:='L';
         $C2E8..$C4C2:result:='M';
         $C4C3..$C5B5:result:='N';
         $C5B6..$C5BD:result:='O';
         $C5BE..$C6D9:result:='P';
         $C6DA..$C8BA:result:='Q';
         $C8BB..$C8F5:result:='R';
         $C8F6..$CBF9:result:='S';
         $CBFA..$CDD9:result:='T';
         //$B0C5..$:result:='U';
         //$B0C5..$:result:='V';
         $CDDA..$CEF3:result:='W';
         $CEF4..$D188:result:='X';
         $D189..$D4D0:result:='Y';
         $D4D1..$D7F9:result:='Z';
       else
         result:=char(0);
       end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
       j:integer;
       hzchar,s:string;
       hzstr:array[0..100] of char;
    begin
      s:='';
      strcopy(hzstr,pchar(edit1.Text));
      for j:=0 to length(edit1.Text) div 2-1 do   //?????? Pystr
        begin
          hzchar:=hzstr[2*j]+hzstr[2*j+1]; // ???????
          s:=s+uppercase(GetPY(hzchar));
        end;
      showmessage(s);
    end;