捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:RzPageControl实现的多文档界面
axfx 42644 2012/8/24 15:21:43
谢谢!
svein 41901 2011/10/12 17:24:19
小声的问一下,如何对Form2的变量进行赋值?
svein 41900 2011/10/12 17:22:25
小声的问一下,如何对Form2的变量赋值?
xs2005 41881 2011/9/29 12:54:51
确实可以。谢谢分享
kinglihui 41656 2011/6/21 13:04:43
多谢楼主提供
besttcx 41571 2011/5/18 8:54:38
正好用到,谢谢
movedown 41462 2011/4/15 15:53:15
原来是这样写:
如果Form1是主窗体,RzPageControl在Form1中,Form2生成在RzPageControl中,独立窗体Form3需要访问Form2中的控件(比如label1)。Form3中的代码如下:
(Form1.RzPageControl1.ActivePage.Controls[0] as TForm2).label1.Caption="xxxx"
movedown 41459 2011/4/14 16:42:08
同问搂主还有mos,如果需要调用另一个Form3需要访问Form2中的控件,应该怎么写呢?
tomcat21 41440 2011/4/6 10:17:18
在raize的demo中就有这种啊。
大家打开demo程序,这段就有如何搞多页面的。
procedure TfrmMain.actCustomFramingExecute(Sender: TObject);
begin
  if FCustomFramingFrame = nil then
  begin
    FCustomFramingFrame := TFmeCustomFraming.Create( Application );
    FCustomFramingFrame.Parent := TabCustomFraming;
    FCustomFramingFrame.Align := alClient;
    FCustomFramingFrame.Init;
  end;

  pgcWorkArea.ActivePage := TabCustomFraming;
  LoadNotes( 'CustomFraming' );
  UpdateSelectedPage( actCustomFraming );
end;
leo_chenji 41422 2011/3/31 16:43:54
To ghs_79 :问个弱弱的问题,如果要在Form2中调用Form3中控件的值,如原来是写在Form2中Form3.Label1.Caption,那现在要如何写呢?
777m 41421 2011/3/31 1:14:20
非常感谢!困扰了我好几天的问题。
ghs_79 41420 2011/3/30 16:29:39
在DockUtils中的消息定义
const
  UM_Base = WM_USER;
  UM_DOCKFORMCLOSE = UM_Base + 1;
  UM_NEWFORM = UM_Base + 2;
type
  TDockTabSheet = class(TRzTabSheet)
  protected
    procedure UMDOCKFORMCLOSE(var message: TMessage); message UM_DOCKFORMCLOSE;
    procedure UMNEWFORM(var message: TMessage); message UM_NEWFORM;
  end;
ghs_79 41419 2011/3/30 16:22:13
满足777m的要求,实现了在form2中调用form3的需要。不知道如何发附件。所以把思路写出来。在from3中注册自己。
initialization
  RegisterClasses([TForm3]);
finalization
  UnRegisterClasses([TForm3]);
在DockUtils中增加消息处理。
procedure TDockTabSheet.UMNEWFORM(var message: TMessage);
var
  tmpForm: Pchar;
  tmpClass: TFormClass;
begin
  tmpForm := PChar(message.WParam);
  //ShowMessage(tmpForm);
  tmpClass := TFormClass(FindClass(tmpForm));
  ShowDockForm(tmpClass, PageControl);
end;
使用方法
procedure TForm2.Button3Click(Sender: TObject);
begin
  SendMessage(self.HostDockSite.Handle, UM_NEWFORM, integer( pchar('TForm3')), 0);
end;
777m 41413 2011/3/27 20:25:16
新手问下各位大大, 在楼主的代码如果要实现Form3中调用Form2中自过程,要怎么写?
ghs_79 41403 2011/3/25 14:23:40
多谢mos的分享,及movedown的分析评论。
movedown 41402 2011/3/24 23:12:44
哦,楼主的方法通过TabSheet的关闭按钮关闭时,也不会触发显示的窗口的close事件。
movedown 41401 2011/3/24 23:08:23
另外,mos的方法,在关闭Sheet时,不会触发需要显示的窗口的close事件。
movedown 41400 2011/3/24 23:01:48
mos方法不错。补充一下,在主窗体使用该函数时,需要注册一下需要显示的窗口类。如:
initialization
RegisterClass(TForm2);

finalization
UnregisterClass(TForm2);
mos 41398 2011/3/24 18:04:33
procedure FormToSheet(PageControl : TRzPageControl;  {主窗体上的 RzPageControl 控件}
          Tmp_FormName: String);         {需要显示的窗体}
var
  I :integer;
  Tmp_Sheet   : TRzTabSheet;
  TabSheet_No : Integer;
  FormClass   : TFormClass;
  Tmp_Form    : TForm;
  Form_Name   : String;
begin
  TabSheet_No :=-1;
  for I := 0 to PageControl.PageCount - 1 do
  begin
    if PageControl.Pages[I].Name = 'Tab_'+Tmp_FormName then
    begin
      TabSheet_No := I;
      Break;
    end;
  end;
  case TabSheet_No of
  -1 : begin
         Form_Name :=Tmp_FormName;
         FormClass := TFormClass(GetClass('T'+Form_Name));
         if FormClass = NIL then Exit;
         Tmp_Form :=TForm(FindGlobalComponent(Form_Name));
         if not Assigned(Tmp_Form) then
         begin
          Application.CreateForm(FormClass,Tmp_Form);
          Tmp_Form.BorderStyle :=bsNone;
          Tmp_Form.Align :=alClient;
          Tmp_Form.Color :=PageControl.Color ;
         end;
         Tmp_Sheet := TRzTabSheet.Create(PageControl);
         Tmp_Sheet.Name := 'Tab_'+Tmp_FormName;
         Tmp_Sheet.Caption := Tmp_Form.Caption;
         Tmp_Sheet.PageControl := PageControl;
         PageControl.ActivePage := Tmp_Sheet;
         Tmp_Form.Tag :=PageControl.TabIndex;
         Tmp_Form.ParentWindow := Tmp_Sheet.Handle;
         Tmp_Form.Tag :=Tmp_Sheet.TabIndex;
         Tmp_Sheet.InsertControl(Tmp_Form);
         Tmp_Form.Show;
       end;
  else
    begin
      PageControl.Pages[i].TabVisible := True;
      PageControl.ActivePageIndex := TabSheet_No;
    end;
  end;
end;

我就是用这个创建,在主窗体中调用这个过程就可以!
如果各位有比较好的办法也请通知下小弟我,小弟QQ:735160117
xujin3000 41381 2011/3/16 15:12:52
对于mos比楼主的好,好在哪里,很有兴趣
第一页 上一页 下一页 最后页 有 25 条纪录 共2页 1 - 20
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表