Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: TGraphicControl.Canvas global machen

  Alt 13. Feb 2007, 17:29
Hi,
FCanvas ist in TGraphicControl als private deklariert. Alles was private ist, ist nur innerhalb der gleichen Klasse/Instanz sichtbar. Erbende Klassen sehen hier nur Methoden/Eigenschaften, die als Mindestsichtbarkeit protected sind.

Zwar gibt es auch einen Weg, wie Du jetzt das Property veröffentlichen könntest, aber dafür ist TGraphicControl gar nicht gedacht! Da solltest Du nach einem anderen Vorfahren suchen, auf den Du ohne Probleme zeichnen kannst. Dazu zählt dann z.B. ein TBitmap-Objekt, dass Du dann in einem TImage anzeigen könntest.
Für ein TGraphicControl sollte stattdessen die Methode paint überschrieben werden. Diese ist in TGraphicControl virtual deklariert, kann also überschrieben werden (sollte sie auch, die ist sonst leer). Überschreibst Du diese Methode, so tust Du dies im Kontext der erbenden Klasse und hast damit zugriff auf die protected Eigenschaft.

Gruß Der Unwissende
  Mit Zitat antworten Zitat