Hallo Gemeinde.
Mein TImage Nachfahre
TGraphPaper macht mir Kummer. Das Ding soll einfach sowas wie kariertes Rechenblatt darstellen, wo ich dann später ein Koordinaten-System uä. reichzeichne. Ich leite also von TImage ab:
Code:
TGraphPaper = CLASS(TImage)
Im Konstruktor steht:
Code:
CONSTRUCTOR TGraphPaper.Create(MyParent: TWinControl; Title: STRING);
BEGIN
INHERITED CREATE(MyParent);
Parent := MyParent;
...
Mit
INHERITED CREATE(MyParent) wird die
SetBounds Methode von TImage aufgrufen (INHERITED SetBounds(ALeft, ATop, AWidth, AHeight)-- denn mein GraphPaper soll sich mit dem Resizing seines Parents neuzeichnen - bzw. dessen Größe entsp. anpassen.
Das wird hier erledigt:
Code:
PROCEDURE TGraphPaper.SetBounds(ALeft, ATop, AWidth, AHeight: INTEGER);
BEGIN
INHERITED SetBounds(ALeft, ATop, AWidth, AHeight);
Zeichnen;
...
Jetzt zum eigentlichem Problem:
In der Methode
Zeichnen greife ich auf
WIDTH und
HEIGHT zu, um die Anzahl der Rechenkästchen zu bestimmen, die gezeichnet werden sollen. Dort knallt es aber, da eine Division durch Null erfolgt, weil:
WIDTH und
HEIGHT zu diesem Zeitpunkt (Create) den Wert Null haben. Klar die Zeile
Parent := MyParent; kommt ja auch erst später (ich frage mich gerade: Bekommt es an dieser Stelle, die Größe seines Parents
).
Aber wie kann ich denn meinem Objekt nun initial eine Größe zuweisen,
bevor das SetBounds gerufen wird?
Ich hoffe ich konnte mich halbwegs verständlich machen.
Vielleicht hat jemand ja eine Idee?
Lieben Dank
Gruß, Jazzman