[Lazarus] How do I change properties for GUI-components from another unit?

Howard Page-Clark hdpc at talktalk.net
Tue May 12 00:43:09 CEST 2015


On 11/05/2015 22:41, Anders Eriksson wrote:
> How do I change properties for GUI-components from another unit?
>
> e.g. hide a button or change a label text from a different unit.

Two example units that inter-communicate might be as follows:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
   Forms, StdCtrls;

type

{ TForm1 }

   TForm1 = class(TForm)
     Button1: TButton;
     Label1: TLabel;
     procedure FormShow(Sender: TObject);
   end;

var
   Form1: TForm1;

implementation

uses unit2;

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormShow(Sender: TObject);
begin
   Form2.Show;
end;

end.

================================================

unit Unit2;

{$mode objfpc}{$H+}

interface

uses
   Forms, StdCtrls;

type

   TForm2 = class(TForm)
     BChange: TButton;
     procedure BChangeClick(Sender: TObject);
   end;

var
   Form2: TForm2;

implementation

uses Unit1;

{$R *.lfm}

procedure TForm2.BChangeClick(Sender: TObject);
begin
   Form1.Button1.Hide;
   Form1.Label1.Caption:='Changed';
end;

end.

==================================================

The uses clauses are the critical feature.

Howard




---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com





More information about the Lazarus mailing list