Noch einmal und dann nicht mehr, weil du anscheinend das Problem nicht als Problem siehst. Du hallst dich an keine Konventionen und mischt alles lustig durcheinander, als Komponente und Formular. So wie ich deinen Code verstehe ist es eine Komponente. Zumindest finde ich da Begriffe die darauf schließen lassen.
Variablem mit gleichem Namen tauchen mal als Feldvariablen, mal als Parameter auf. Zum Beispiel Canvas. Ich weiß nicht was du mit Canvas meinst, bzw. welche? Da du dich an die üblichen Konventionen nicht hältst, könnte Cnavas in der Komponente FCanvas sein, die du aber ohne F schreibst, es kann aber auch Form1.Canvas sein. Woher soll man das wissen?
Aber gehen wir mal davon aus, dass es eine Komponente ist, die aber auf irgendeine Canvas zeichnet, die als erste der Komponente unter die Augen kommt. Vielleicht ist es die Form Canvas. Das ist wie "ene mene muh und dran bist du" Canvas.
Gucken wir uns mal das an:
Delphi-Quellcode:
procedure THixHistoGraph.DrawComponent;
var
{zeichnet Komponente}
ComponentBackround : TRect; //<<<<<<
{zeichnet die Darstellungsfläche der Komponente}
HistoBackround : TRect;
begin
if FBorderstyle = bsSingle then
begin
inherited;
if (Parent = NIL) or not visible
then Exit;
begin
ComponentBackround := Rect(0, 0, Width, Height); //<<<<<< ist das Komponenten Background?
// oder von Form1? Was ist Width oder Height? Formularbreite und Höhe?
Canvas.Brush.Color := FColor; //<<<<<< welches Canvas?
Canvas.Pen.Color := FColor;
Canvas.Pen.Style := psSolid;
Canvas.FillRect(ComponentBackround);
So richtig weiß man nicht auf was du zugreifst.