Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Keine Überladene Version...


Tweafis - Mo 02.06.03 14:30
Titel: Keine Überladene Version...
im Private-Teil einer Komponetne von TGraphicControl abgeleitet


Delphi-Quelltext
1:
2:
    procedure Line(var NCanvas: TCanvas; X1,Y1,X2,Y2: Integer); overload;
    procedure Line(var NCanvas: TCanvas; Pt1,Pt2: TPoint); overload;



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TwUhr.Line(var NCanvas: TCanvas; X1,Y1,X2,Y2: Integer);
var oldPenPos: TPoint;
begin
  oldPenPos := NCanvas.PenPos; // Alte Stiftposition speichern...
  NCanvas.MoveTo(X1,Y1);       // Linie
  NCanvas.LineTo(X2,Y2);       //       zeichnen
  NCanvas.PenPos := oldPenPos; // ...und wieder zurücksetzen
end;

procedure TwUhr.Line(var NCanvas: TCanvas; Pt1, Pt2: TPoint);
var oldPenPos: TPoint;
begin
  oldPenPos := NCanvas.PenPos; // Alte Stiftposition speichern...
  NCanvas.MoveTo(Pt1.x,Pt1.y); // Linie
  NCanvas.LineTo(Pt2.x,Pt2.y); //       zeichnen
  NCanvas.PenPos := oldPenPos; // ...und wieder zurücksetzenend;
end;


Wenn ich jetzt die Funktion im Paint teil aufrufe:

Delphi-Quelltext
1:
Line(Canvas, Middle, SekHandEnd);                    


Canvas ist das Canvas der Kompo (as far as I know)
Middle ist ein TPoint;
SekHandEnd ist ein TPoint;

Delphi-Quelltext
1:
2:
  Middle := Point(Width div 2, Height div 2);
  StdHandEnd := GetPos4Deg(StdGrad, Middle, Radius);


GetPos4Deg ist eine func die einen TPoint zurückliefert.
Ich bekomme aber folgenden Fehler:
Zitat:
[Fehler] wUhr.pas(200): Es gibt keine überladene Version von 'Line', die man mit diesen Argumenten aufrufen kann

->

Delphi-Quelltext
1:
  Line(Canvas, Middle, StdHandEnd);                    


Motzi - Mo 02.06.03 14:40

Lass bei deinem Funktions-Header das var weg...


Tweafis - Mo 02.06.03 14:48

Hmm, aber der muss doch darein schreiben, oda?

Ohne var gehts, thx.


ErnestoChe - Mo 02.06.03 14:51

Hallo,

bei der Parameter-Übergabe wird var benutzt um eine Referenz zu übergeben und nicht den Wert. Bei Objekten einer Klasse, wie bei dir TCanvas, wird ohnehin eine Referenz übergeben.

MFG

- Ernesto -


Tweafis - Mo 02.06.03 14:54

Ok, Danke :D euch allen.