在一个TScrollBox里创建了Tlabel,Tedit,Tcombobox,Tmemo几种控件,创建时分别用la,ed,cm,mm为前缀标注空间,问题是,我如何分别得到Tedit,Tcombobox,Tmemo里的信息?如Tedit里如何得到text,Tcombobox里如何得到ItemIndex,Tmemo里如何得到Lines.谢谢

解决方案 »

  1.   

    var
      ed:Tedit;
    begin
      ed:=TEdit.Create(Self);
      ed.Parent:=Self;
      ed.Text:='你给它赋值';
      ed.OnExit:=你的自定义过程;
      ed.OnKeyPress:=你的自定义过程;
      ed.SetFocus;
    end;
      

  2.   

    访问TScrollBox的对应 ControlCount, Controls 应该就可找到 label ...,
      

  3.   

    for i:=0 to WinControl.ControlCount-1 do begin
       str:=str+WinControl.Controls[i].GetNamePath+#13;
                                             end;
    我只能得到控件的名字,得不到内容呀~~~~~~~~~~~~smiler007(笑一笑) 兄,我是要得到内容,不是给它赋值呀 ^O^估计是我说的不清楚吧,创建控件以后,用户输入内容,我现在要得到用户输入的内容,不知道怎么办呀,给位帮忙呀,谢谢
      

  4.   

    var
      ed:Tedit;
    begin
      ed:=TEdit.Create(Self);
      ed.Parent:=Self;
      ed.name="text1";
      ed.OnKeyPress:=你的自定义过程;
      ed.SetFocus;
    end;var
    begin
    for i:=0 to scrollbox.ControlCount-1 do begin
    if scrollbox.controls[i].name='text1' then
    do your things that you want to do
    end;
      

  5.   

    名字是字符型的呀,一个字符型的字段怎么能表示一个控件信息
    创建的Tedit的名字叫text1,而怎么得到text1.text的内容。
      

  6.   

    var
    begin
    for i:=0 to scrollbox.ControlCount-1 do begin
    if scrollbox.controls[i].name='text1' then
    do your things that you want to do
    end;
      

  7.   

    我是要得到内容,不是给它赋值呀 ^O^
    假设你要得到创建的EDIT的TEXT值
    注意到这句了吗?
    ed.OnExit:=你的自定义过程;
    在你的这个自定义过程中,假设这个过程名字叫做XXX
    它的内容是
    procedure TForm1.xxx(Sender as Object);
    var
      S:String;
    begin
      S := (Sender As TEdit).Text;  //得到输入的值 
    end;
      

  8.   

    还可以在那个过程中释放创建的EDITprocedure TForm1.xxx(Sender as Object);
    begin
      S := (Sender As TEdit).Text;  //得到输入的值,S最好是全局变量 
      PostMessage( handle, UM_DESTROYCONTROL, 0, Integer(Sender));
    end;
      

  9.   

    哦,明白了,多谢。
    用onchange写一个过程,记录.text或lines的变化到参数,然后按button键把参数搞定就行了,对吧~~~~~呵呵
    但是~~~~~~~~~~还有问题,在贴了,多谢多谢smiler007(笑一笑)。祝各位节日愉快