![]() |
Globales Array - Verständnisfrage
Hallo,
ich bin vor kurzem mit Delphi "konfrontiert" wurden und hab da mal eine Verständnisfrage. Herr Google brachte mich nicht so richtig weiter ... ich gehe mal davon aus, dass es auch eine recht einfache Frage für euch ist =) Nun zu meinem Problem: Ich möchte 260 Werte in ein Array schreiben und dies in meiner Unit für all die anderen Pozeduren verfügbar machen. Dann geh ich mal davon aus, dass das in nem globalen Array am besten aufgehoben ist oder? Die Werte über die serielle Schnittstelle einlesen klappt auch wunderbar ... nur bekomme ich die Werte halt nur in meiner Prozedur und halt nicht global. Ich habe dazu einen ähnlichen Ansatz gefunden ... ![]() Wenn ich diesen Ansatz übernehme ...
Delphi-Quellcode:
... meckert der Compiler ständig an der Stelle *in x-beliebiger Prozedur* ...
{$R *.DFM}
ref: Array [0..260] Of Integer; procedure TForm6.FormActivate(Sender: TObject); . . .
Delphi-Quellcode:
... mit Array-Typ erforderlich rum.
for i:=0 to 260 do
begin ref[i] := sp[i]; end; Ich freue mich freuen wenn ihr einem n00b wie mir helft. thx4replies |
AW: Globales Array - Verständnisfrage
Wo und wie ist denn
Delphi-Quellcode:
definiert?
sp
|
AW: Globales Array - Verständnisfrage
ich weiß nicht was sp[i] ist, ob der Fehler von da kommt, in jedem Fall ist Dein Array nur in Form6 bekannt da Du es unterhalb von Implementation eingebaut hast.
Du kannst Arrays auch ganz normal als Variablen Deklarieren und Prozeduren mitgeben, am unkompliziertesten geht dies mit dynamischen Arrays. |
AW: Globales Array - Verständnisfrage
Nebenbei bemerkt sind 0..260 dann 261 Werte ;)
|
AW: Globales Array - Verständnisfrage
Zitat:
Zitat:
Vielleicht schwer ausgedrückt ... ich schieb morgen früh gleich ein paar Zeilen Code nach. Zitat:
Ich danke jetzt schon für eure Antworten |
AW: Globales Array - Verständnisfrage
Man könnte Dir besser helfen wenn man nicht soviel raten müsste, Du also etwas mehr Code am Stück posten würdest.
|
AW: Globales Array - Verständnisfrage
Zitat:
|
AW: Globales Array - Verständnisfrage
So ...
Delphi-Quellcode:
und zwei Prozeduren
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;
Delphi-Quellcode:
Die Prozedur Ref wird mit einer Schleife immer wieder ausgeführt und zeichnet mir das ermittelte Spektrum meiner CCD-Zeile auch wunderbar.
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; 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 |
AW: Globales Array - Verständnisfrage
was mir auffällt 2* ref ???
Delphi-Quellcode:
var
ref: Array [0..260] Of Integer; TForm6.Ref; |
AW: Globales Array - Verständnisfrage
Autsch :roll:
thats it :) Danke Bummi =) btw: Schönes Forum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz