Et lille problem med en funktion
Hej...jeg er nybegynder i borland delphi 7.
Jeg har en funktion som skal plotte nogen koordinater (x,y,z) ind på fire forskellige Tpaneler.
Problemet er det at funktionen (func_PlotCoor) vil jeg gerne kunne køre fra flere forskellige procedurer men det virker sørme ikke..
Jeg får følgende fejl:
[error]unit1.pas[56]:unsatisfied forward or external declaration 'Tform1.views1panel_perspClick'
min kode ser således ud:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Unit2;
type
TMyPanel = class(TPanel)
protected
procedure Paint;
override;
end;
type
TForm1 = class(TForm)
Coor_x: TEdit;
Label2: TLabel;
Coor_y: TEdit;
Label3: TLabel;
Coor_z: TEdit;
Label4: TLabel;
Create_Point: TButton;
Views1: TViews;
Label1: TLabel;
Label5: TLabel;
Label6: TLabel;
Perspp0_x: TEdit;
Perspp0_y: TEdit;
Perspp0_z: TEdit;
Butt_makePerspektiv: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Perspp1_x: TEdit;
Perspp1_y: TEdit;
Perspp1_z: TEdit;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Perspp2_x: TEdit;
Perspp2_y: TEdit;
Perspp2_z: TEdit;
Label15: TLabel;
Label16: TLabel;
procedure Create_PointClick(Sender: TObject);
procedure Butt_makePerspektivClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Views1: TViews;
implementation
{$R *.dfm}
function func_PlotCoor(xo,yo,zo :Integer ) : integer;
begin
//plot koordinater i xy-planen
TMyPanel(Views1.Panel_xy).Canvas.Polyline([Point(xo + 3, yo + 3),
Point(xo - 3, yo - 3)]);
TMyPanel(Views1.Panel_xy).Canvas.Polyline([Point(xo - 3, yo + 3),
Point(xo + 3, yo - 3)]);
//plot koordinater i yz-planen
TMyPanel(Views1.Panel_yz).Canvas.Polyline([Point(yo + 3, zo + 3),
Point(yo - 3, zo - 3)]);
TMyPanel(Views1.Panel_yz).Canvas.Polyline([Point(yo - 3, zo + 3),
Point(yo + 3, zo - 3)]);
//plot koordinater i xz-planen
TMyPanel(Views1.Panel_xz).Canvas.Polyline([Point(xo + 3, zo + 3),
Point(xo - 3, zo - 3)]);
TMyPanel(Views1.Panel_xz).Canvas.Polyline([Point(xo - 3, zo + 3),
Point(xo + 3, zo - 3)]);
end;
procedure TMyPanel.Paint;
begin
inherited Paint;
Canvas.MoveTo(0,0);
Canvas.LineTo(height,width);
end;
procedure TForm1.Create_PointClick(Sender: TObject);
//Procedure der skal gemme koordinaterne og plotte dem i alle tre
//koordinatsystemer i det vilkårlige plan (Ax + By + Cz + D = 0
var
x,y,z: string;
coorx, coory, coorz: integer;
begin
x := Coor_x.text;
y := Coor_y.Text;
z := Coor_z.Text;
//konvertere string (x, y og z) til integer
coorx := StrToInt(x);
coory := StrToInt(y);
coorz := StrToInt(z);
//plotter xy yz xz
func_PlotCoor(coorx, coory, coorz);
end;
end.
Er der nogen der kan fortælle mig hvad hvor fejlen ligger og hvordan jeg løser dette problem uden at skulle have skrevet hele funktionen ind i hver enkel procedure som den skal kaldes fra?
