Das eine ist eine Prozedur (ohne Objektbezug), das andere eine Methode (mit Objektbezug, hier das Formular). Die kann man nicht zuweisen. Außerdem würde es auch keinen Sinn machen, da du so nicht fachlich sauber das Formular vom Code trennen kannst. Richtig wäre:
Delphi-Quellcode:
unit unit_unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 =
class(TForm)
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses unit_unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := '
1';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Set2InLabel(Label1);
end;
end.
Delphi-Quellcode:
unit unit_unit2;
interface
uses
Vcl.StdCtrls;
procedure Set2InLabel(
const ALabel: TLabel);
implementation
procedure Set2InLabel(
const ALabel: TLabel);
begin
ALabel.Caption := '
2';
end;
end.
Die zweite
Unit sollte das Formular nicht kennen, damit keine Kreuzbeziehungen entstehen. Das Beispiel macht so natürlich wenig Sinn. Konkretere Ratschläge lassen sich ohne konkretes Beispiel aber nicht geben.