从form2中speedbutton按钮事件中发送字符串到form1的控件中的问题(在线等侍)(当然form1弹出form2也是用speedbutton按钮的,

  • 主题发起人 主题发起人 telliu
  • 开始时间 开始时间
T

telliu

Unregistered / Unconfirmed
GUEST, unregistred user!
从form2中speedbutton按钮事件中发送字符串到form1的控件中的问题(在线等侍)(当然form1弹出form2也是用speedbutton按钮的,免得抢光标焦点去了,呵呵(还有最后一点点了,请高手指点一下就OK了)谢谢 (30分)<br />procedure TForm2.sendClick(Sender: TObject);
var
s:string;
sendpchar :pchar;
//sendhand1 :THandle;
begin
s :=send.Caption;
sendpchar :=pchar(s);
form1.ActiveControl.SetTextBuf(sendpchar);
//sendhand1 :=form1.ActiveControl.Handle;
//sendmessage(sendhand1,wm_settext,length(s), longint(pchar(s)));
end;

问题是edit memo等可以正常接收,但是像stringgrid这些有cell单元的,应该如何写进去呢?
在线等侍中,谢谢
 
用消息拦截啊!
procedure TForm1.CCCTEST(var Msg:TMessage);
if ase msg.lParam=wm_settext then
....................
 
to :indexhome 能说明白点嘛?
我改成
procedure TForm2.sendClick(Sender: TObject);
var
s:string;
sendpchar :pchar;
//sendhand1 :THandle;
begin
s :=send.Caption;
sendpchar :=pchar(s);
if form1.ActiveControl.Name = 'StringGrid1' then
begin
form1.StringGrid1.Cells[form1.stringgrid1.Col,form1.stringgrid1.Row] :=s;
exit;
end;
form1.ActiveControl.SetTextBuf(sendpchar);
//sendhand1 :=form1.ActiveControl.Handle;
//sendmessage(sendhand1,wm_settext,length(s), longint(pchar(s)));
end;
虽然可以,但觉得很笨。
 
procedure TForm2.sendClick(Sender: TObject);
var
s:string;
sendpchar :pchar;
intr,intc :integer;
begin
s :=send.Caption;
sendpchar :=pchar(s);

if (form1.ActiveControl is TstringGrid) then
begin
intr:=TstringGrid(form1.ActiveControl).row;
intc:=TstringGrid(form1.ActiveControl).col;
TstringGrid(form1.ActiveControl).cells[intc,intr] :=s;
exit;
end;

form1.ActiveControl.SetTextBuf(sendpchar);
end;

改成这样。现在还有一个问题,这样cell里的内容不是被覆盖了!我想做插入的,就像Tedit().selstart 能知道光标定位在哪个字符那,这样我就能插入了,可是stringgrid没提供。苦啊。
有谁能知道如何做
 
stringgrid里面是包含一个Tcustedit来进行输入!不是,直接填写的!
当stringgrid焦点离开Tcustedit就hide了!所以你的要求基本不能实现!
除非你继承一个stringgrid来操作!
 
我不知道应该如何做了,我弄了一下午都没搞定,麻烦dcsdcs你帮帮忙。想一想好难办,因为我这个只是做试验,在我程序里还有其它的呢。像drawgrid等等,哪不是晕了。我可以加分我还有一百多分呢
 
SendMessage(self.StringGrid1.Handle,WM_CHAR,65,0);
 
?????这样就行了????
能说说这样做怎样起到了我想到的功能?谢谢
 
我自己搞定了,谢谢大家
 
后退
顶部