Ich bin neu in die Zeiger eingestiegen und habe folgendes Konstrukt:
Das Formular:
Delphi-Quellcode:
type
TfrmVariables = class(TForm)
cbList: TComboBox;
eName: TEdit;
eValue: TEdit;
{...}
procedure cbListChange(Sender: TObject);
private
parser : ^TExCQParser;
public
{...}
procedure setVariables(Data : TExCQParser);
end;
procedure TfrmVariables.cbListChange(Sender: TObject);
begin
eName.Text := parser^.Variables.Items[cbList.ItemIndex].Name; // <<<
eValue.Text := FloatToStr(parser^.Variables.Items[cbList.ItemIndex].Variable.Values[0]);
end;
procedure TfrmVariables.setVariables(Data: TExCQParser);
var
i : Integer;
begin
parser := @Data;
cbList.Clear;
for i := 0 to parser^.Variables.Length - 1 do
begin
cbList.Items.Add(parser^.Variables.Items[i].Name);
end;
end;
Jetzt tritt in cbListChange (Z. 17) der Fehler auf:
Zitat:
---------------------------
XXXX
---------------------------
Zugriffsverletzung bei Adresse 004626AA in Modul 'XXXX.exe'. Lesen von Adresse 00000030.
---------------------------
OK
---------------------------
Aufruf:
Delphi-Quellcode:
procedure TForm1.Button21Click(Sender: TObject);
begin
frmVariables.Show;
frmVariables.setVariables(Parser);
end;
Davor ist die Form nicht sichtbar, und die Funktion "setVariables" führt er ordnungsgemäß aus.
Wenn es nicht am Code liegt, werde ich mich wohl an den Programmierer des Parsers wenden müssen