Hallo Alzaimar,Martin und Uli,
vielen Dank für die Hilfe. Wie bereits erwähnt habe ich zur Zeit Urlaub und habe zu Hause kein Windows-PC. Ich arbeite zuhause nur noch mit Linux und programmiere mit Lazarus/FPC. Was übrigens hervorragend funktioniert.
Ich habe also ein kleines Programm in Lazarus nachgebildet.
Der Hinweis, in dem onResize-Ereignis Höhe und Breite gleichzusetzen, ist sehr gut. Der Einheitskreis ist hinreichend rund.
Hier die Form samt Einheitskreis: s. Anhang
Hier das Programm:
Delphi-Quellcode:
unit charttestu;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, TAGraph, TASeries, Math;
type
{ TForm1 }
TForm1 =
class(TForm)
BitBtn1: TBitBtn;
btStart: TButton;
Chart1: TChart;
Chart1LineSeries1: TLineSeries;
Panel1: TPanel;
procedure btStartClick(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormResize(Sender: TObject);
begin
Panel1.Height:=Form1.Height-40;
Panel1.Width:=Panel1.Height;
end;
procedure TForm1.btStartClick(Sender: TObject);
var i :integer;
x,y :double;
begin
i:=0;
Chart1LineSeries1.Clear;
while i<360
do begin
x:=cos(pi*i/180);
y:=sin(pi*i/180);
Chart1LineSeries1.AddXY(x,y);
inc(i,15);
end;
end;
initialization
{$I charttestu.lrs}
end.
Es sei noch erwähnt, dass hier die Chart-Komponente in einem Panel eingebettet ist, was natürlich nicht unbedingt sein muss.
Soweit bin ich zufrieden.
Jetzt fehlt nur noch das hervorgehobene Achsenkreuz durch den Ursprung.
Wer hat noch einen Tipp?
Gruß, Linkat