Einzelnen Beitrag anzeigen

xbkbk

Registriert seit: 9. Jul 2012
Ort: 37083 Göttingen
61 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Opacity von Rectangle in Frame setzen zur Laufzeit geht nicht

  Alt 13. Jan 2022, 00:33
Ok Frame2 wird nicht erzeugt? Verstehe ich nicht. In meinem Beispiel habe ich ja direkt schon einen Frame zur Designtime auf die Form gezogen, daher ging ich (zumal der Frame ja auch angezeigt wird) davon aus, dass er auch erzeugt wird.

Zum Testen habe ich ihn nun auch zur Laufzeit erzeugt:
Code:
procedure TForm1.Button2Click(Sender: TObject);
var
  MyFrame: TFrame;
begin
  MyFrame := TFrame2.Create(Self);
  MyFrame.Parent := Self;
  MyFrame.Align := TAlignLayout.Client;


  if MyFrame is TFrame2 then
  begin
    TFrame2(MyFrame).Button1.OnClick(Self);
  end;

end;
was allerdings nichts an dem Problem ändert, dass ich eine Zugriffsverletzung bekomme.

Innerhalb des Frames habe ich nun aber etwas verändert:

Code:
procedure Dings;
begin
  Frame2.rectangle1.Opacity:=1/6;
end;

procedure TFrame2.Button1Click(Sender: TObject);
begin
self.rectangle1.Opacity:=1/6;
Dings;
end;
Wenn ich dort nun im Button also self statt einer Variable nutze funktioniert das ganze. Wenn ich allerdings in meiner procedure "Dings" genau das gleiche machen will funktioniert es nicht mehr. Warum ist das so?
Felix
  Mit Zitat antworten Zitat