So ...
Delphi-Quellcode:
unit oem_ref;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
sgr_def, sgr_data, StdCtrls, ExtCtrls;
type
TForm6 =
class(TForm)
sp_XYLine1: Tsp_XYLine;
sp_XYPlot1: Tsp_XYPlot;
Panel1: TPanel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Button2: TButton;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Memo1: TMemo;
sp_XYPlot2: Tsp_XYPlot;
sp_XYLine2: Tsp_XYLine;
sp_XYPlot3: Tsp_XYPlot;
sp_XYLine3: Tsp_XYLine;
Memo2: TMemo;
procedure ReferenzErmitteln;
procedure ReferenzZeichnen;
procedure Ref;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
FActiveFlagsSave : Word;
FDebugMode : Boolean;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form6: TForm6;
implementation
uses oem_main,oemlib;
{$R *.DFM}
var
ref:
Array [0..260]
Of Integer;
und zwei Prozeduren
Delphi-Quellcode:
procedure TForm6.Ref;
var i:integer;
sp:TSpectrum;
begin
if not FDebugMode then
begin
Close;
exit;
end;
OEMData.Devices[0].DebugFlags:=OEMData.Devices[0].DebugFlags or df_start;
while OEMData.Devices[0].DebugFlags and df_start <> 0 do;
sp_XYLine1.Clear;
sp_XYLine1.LockInvalidate:=true;
sp:=OEMData.Devices[0].Spectrum;
for i:=0 to 260 do
begin
sp_XYLine1.AddXY(i,Sp[i]);
end;
sp_XYLine1.LockInvalidate:=false;
end;
procedure TForm6.ReferenzErmitteln;
var
i:integer;
sp:TSpectrum;
begin
sp:=OEMData.Devices[0].Spectrum;
for i:=0 to 260 do
begin
ref[i] := sp[i];
end;
with Memo1 do
begin
ScrollBars := ssBoth;
Lines[0] := 'Mal kucken';
for i := 0 to 260 do
Lines.Add(IntToStr(i)+' '+IntToStr(ref[i]))
end;
end;
Die Prozedur Ref wird mit einer Schleife immer wieder ausgeführt und zeichnet mir das ermittelte Spektrum meiner CCD-Zeile auch wunderbar.
In ReferenzErmitteln will ich nun einen Referenz-Array auslesen und global verfügbar machen (ref[i]). Wenn ich den Vektor in der Prozedur deklariere funktioniert das auch einwandfrei und die Werte werden mir in der Memo-Box richtig angezeigt ... leider nur in der Prozedur.
thx4replies