Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Array aus Labeln mit Events

  Alt 3. Nov 2013, 12:24
Willkommen in der DP.

Du sprichst hier aber von RunTime und nicht von DesignTime

Das Array sollte ein Feld der Form sein.
Der Owner/Parent sollte nicht Form1 sondern Self sein - das ist sicherer, falls du mal eine weitere Instanz dieser Form erzeugen möchtest.

Delphi-Quellcode:
type
  TForm1 = class( TForm )
    ...
  private
    FLabels : array[1..4,1..12] of TLabel;
  protected
    procedure LabelsClick( Sender : TObject );
  public
    ...
  end;

var
  Form1: TForm1;

procedure TForm1.FormCreate(Sender: TObject);
var
  i,j : integer;
  LLabel : TLabel;
begin
 for i := 1 to 4 do
   for j := 1 to 12 do
   begin
     LLabel := TLabel.Create(Self);

     LLabel.Parent := Self;
     LLabel.Left := 144+(i-1)*48;
     LLabel.Top := 160+(j-1)*48;
     LLabel.visible := true;
     LLabel.color := clGray;
     LLabel.caption := ' ';
     LLabel.font.size := 15;
     
     LLabel.OnClick := LabelsClick; // <- Event zuweisen

     FLabels[i,j] := LLabel;
  end;
end;

procedure TForm1.LabelsClick( Sender : TObject );
var
  LLabel : TLabel;
begin
  // In Sender ist die Referenz zum Label enthalten, also brauchen wir nur casten
  LLabel := Sender as TLabel;
  LLabel.Font := clRed;
end;
Nur die Herkunft deiner Variablen click bei if click = 3 then ist mir schleierhaft ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 3. Nov 2013 um 13:01 Uhr)
  Mit Zitat antworten Zitat