: blazingfire(烈焰) ,不是啊,
我是说要象“弹出式菜”单那样在任意给定位置(光标处)出现啊有没有办法?

解决方案 »

  1.   

    xxmmmx(踢踏)那么这个123要怎么给了。假如是要在光标处出现!!??
      

  2.   

    用API函数取 得鼠标的当前屏幕坐标
      

  3.   

    shuixin13(心帆) 请问是getcursorpos吗?还是。
      

  4.   


    请问:procedure TLogoAppForm.RichEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      getcuosorpo(cpoint);//得到光标位置
      if key='.' then 
       //要使popform窗体在光标处出现怎样写了
    end;
      

  5.   

    unit Unit1;interfaceuses
      SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
      Dialogs, Forms,Form, Formprpt;type
      TForm1 = class(MForm)
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      F2HasCreated:boolean;
    implementationuses Unit2;{$R *.DFM}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Button=mbRight then
      begin
        if not F2HasCreated then
        begin
          Form2:=TForm2.Create(self);
          F2HasCreated:=True;
        end;
        Form2.BorderStyle:=bsNone;
        Form2.Color:=clRed;
        Form2.Top:=Y+Form1.Top+20;
        Form2.Left:=X+Form1.Left;
        Form2.Show;
      end
      else
      begin
        if F2HasCreated then
          Form2.Free;
        F2HasCreated:=False;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      F2HasCreated:=False;
    end;end.
    着是我机器上的原代码,差不多了
      

  6.   

    谢谢 blazingfire(烈焰) 
    可否再解决一难题?procedure TLogoAppForm.RichEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      getcuosorpo(cpoint);//得到光标位置
      if key='.' then 
       //要使popform窗体在光标处出现怎样写了
    end; 
    编译时 if key='.'老提示出错何故?
      

  7.   

    key='.' 中key是word型而 '.'是什么其他型,要转换吧,但我不知道用哪个
    函数???? 
      

  8.   

    如果你是在在keydown里处理的话,key要求是word类型,一般都是vk_开头的,比如enter键就是vk_return,‘.’键可能是vk_point,我现在是在网吧,没办法帮你测试,你自己测试看看!如果你是在keypress里处理的话,就用‘#’+键值就可以了。
      

  9.   

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var P:TPoint;
    begin
       if button=mbright then
       begin
         form2:=Tform2.create(self);
         GetCursorPos(p);
         form2.left:=p.x;
         form2.top:=p.y;
         form2.showmodal;
         form2.free;
       end;
    end;
      

  10.   

    你的程序的确是在光标(鼠标)位置弹出,比如你用Tmemo那么就要取出memo的光标位置,在用form的let,top求出screen位置就ok了
      

  11.   

    scripting(scripting) 
    老兄,“比如你用Tmemo那么就要取出memo的光标位置”这个做何解释?我是用
    Trichedit,要得到当前输入的位置(光标位置,不是鼠标位置)!!1究竟要怎么做?请指教!!!