【问题标题】:Passing Tobject to another form?将 Tobject 传递给另一种形式?
【发布时间】:2012-08-17 10:08:16
【问题描述】:

我正在用 Delphi XE2 编写一个支持触摸屏的应用程序。

我有一个带有TEdits 的表格。当我点击它们时,我调用了我编写的程序,以显示另一个始终在顶部最大化的表单,其中带有带有标签(用于标题)的 TTouchkeyboard 和用于键盘输入的 TEdit

我的程序(vkeyboard 是我的表单名称,带有TTouchkeyboard):

procedure TLogin.showkeyboard(numeric,password: Boolean; 
  caption,value:string;Sender:TObject);
begin
  if numeric then 
    vkeyboard.TouchKeyboard1.Layout := 'NumPad' // make the TTouchkeyboard on the form numeric or alpha
  else 
    vkeyboard.TouchKeyboard1.Layout := 'Standard';
  if password then 
    vkeyboard.input.PasswordChar := '*' //make the TEdit show * or normal characters
  else 
    vkeyboard.input.PasswordChar := #0;
  vkeyboard.title.Caption := caption;
  vkeyboard.input.Text := value;
  vkeyboard.Show;
end;

我正在尝试将Form1.Edit1 对象发送到vkeyboard 表单,但我不知道如何正确执行!

为什么?因为我希望能够在输入表单 (vkeyboard) 上单击完成,然后追溯谁是发件人,然后更新主表单编辑中的文本!

procedure Tvkeyboard.sButton1Click(Sender: TObject);
begin
  (temp as TEdit).Text := input.Text; // send back the text to the right object
  vkeyboard.Hide;
end;

这小部分当然没有用...我想我需要指定临时对象属于 X 形式?

为了清楚起见,我想追溯谁调用了该过程,或者至少能够在过程中指定它,然后将文本(从第二种形式到主要形式)返回到右侧TEdit

【问题讨论】:

    标签: delphi


    【解决方案1】:

    欢迎您将任何您想要的参数传递给您想要的任何函数。如果您需要在另一个函数中使用传递的值,则需要将其保存在某个位置,以便后面的函数仍然可以访问它。

    使用您的示例,您似乎为您的showkeyboard 函数提供了一个Sender 参数。我假设您正在传递对触发键盘显示的TEdit 控件的引用。存储在vkeyboard 中的Tvkeyboard 对象稍后需要使用该值,因此将该值的副本提供给Tvkeyboard 对象。声明一个TEdit 字段:

    type
      Tvkeyboard = class(...)
        ...
      public
        EditSender: TEdit;
    

    然后,在showkeyboard 中设置该字段:

    vkeyboard.EditSender := Sender;
    

    最后,在设置文本时使用该字段:

    procedure Tvkeyboard.sButton1Click(Sender: TObject);
    begin
      EditSender.Text := input.Text; // send back the text to the right object
      Self.Hide;
    end;
    

    既然您知道它始终是TEdit 控件,您可以更改showkeyboardSender 参数的类型以反映该特定类型:

    procedure TLogin.showkeyboard(..., Sender: TEdit);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多