ChOwn1.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:1k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit ChOwn1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     ButtonChange: TButton;
  10.     ButtonList: TButton;
  11.     ListBox1: TListBox;
  12.     procedure ButtonChangeClick(Sender: TObject);
  13.     procedure ButtonListClick(Sender: TObject);
  14.     procedure Button1Click(Sender: TObject);
  15.   private
  16.     { Private declarations }
  17.   public
  18.     { Public declarations }
  19.   end;
  20. var
  21.   Form1: TForm1;
  22. implementation
  23. uses ChOwn2;
  24. {$R *.DFM}
  25. procedure ChangeOwner (Component, NewOwner: TComponent);
  26. begin
  27.   Component.Owner.RemoveComponent (Component);
  28.   NewOwner.InsertComponent (Component);
  29. end;
  30. procedure TForm1.ButtonChangeClick(Sender: TObject);
  31. begin
  32.   if Assigned (Button1) then
  33.   begin
  34.     // change parent
  35.     Button1.Parent := Form2;
  36.     // change owner
  37.     ChangeOwner (Button1, Form2);
  38.   end;
  39. end;
  40. procedure TForm1.ButtonListClick(Sender: TObject);
  41. var
  42.  I: Integer;
  43. begin
  44.   ListBox1.Items.Clear;
  45.   for I := 0 to ComponentCount - 1 do
  46.     ListBox1.Items.Add (Components[I].Name);
  47. end;
  48. procedure TForm1.Button1Click(Sender: TObject);
  49. begin
  50.   ShowMessage ('My owner is ' +
  51.     ((Sender as TButton).Owner as TForm).Caption);
  52. end;
  53. end.