Einzelnen Beitrag anzeigen

josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Ausführen einer Methode bei MethodAddress jetzt habe ich noch ne AV

  Alt 4. Feb 2024, 20:58
ich habe es wohl nicht so mit Klassen, eigenen Komponenten und Vererben (vererben klingt auch so negativ irgendwie)

also die Elternklasse ist TGraphicControl..

Ich erstelle eine neue Komponente TT

die sieht dann erstmal nackt so aus:

Delphi-Quellcode:

unit Test;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls;

type
  TTest = class(TGraphicControl)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('TEest', [TTest]);
end;

end.
Funktioniert soweit.

wenn ich jetzt diese Komponente auf ne Form ziehe und folgenden Code habe als Beispiel:

Delphi-Quellcode:

procedure TFMain.BtnTestCompClick(Sender: TObject);
var
  aComp: TComponent;
  aComp_Name: string;
begin

aComp_Name := 'Test1';

aComp := FMain.FindComponent(aComp_Name);

(acomp as TGraphicControl).Height := 200;

end;
läuft das Progrämmchen auch, aber es kommt eine Zugriffsverletzung bei der letzten Zeile mit "acomp as'.

Habe bestimmt nur ne Kleinigkeit übersehen? Die Eigenschaft height ist ja standardmässig auch vorhanden in TGraphicControl

Geändert von josef-b ( 4. Feb 2024 um 21:09 Uhr)
  Mit Zitat antworten Zitat