Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Array in Record


arnes - Di 25.11.08 19:32
Titel: Array in Record
hey
ich hab folgendes problem:
ich weise 5 Buttons über einen Array[0..4] of boolean
entweder enabled := true oder enabled := false zu.
mit einem normalen array funktioniert das wunderbar,
packe ich aber den array in einen record gibt delphi folgende Fehlermeldung aus:
E2096 Methodenbezeichner erwartet.
auch aus der delphi Hilfe über den Fehlertyp bin ich nicht schlau geworden.

Delphi-Quelltext
1:
2:
3:
4:
type
  TButtonSettings = record
    EnabledBut :array[0..4of boolean;
end;


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
  s :string;
begin
  s := (sender as TCheckBox).Name;
  if (sender as TCheckBox).checked = false then
    begin
      TButtonSettings.EnabledBut[StrToInt(s[9])-1] := false;
    end else begin
      TButtonSettings.EnabledBut[StrToInt(s[9])-1] := true;
    end;
end;


das gleiche passiert auch bei einer einfachen zuweisung des arrays:

Delphi-Quelltext
1:
TButtonSettings.EnabledBut[0] := false;                    


woran könnte das liegen?
gruß arnes


elundril - Di 25.11.08 19:45
Titel: Re: Array in Record
probiers mal so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
  s :string;
  buttonsetting1: TButtonSetting;
begin
  s := (sender as TCheckBox).Name;
  if (sender as TCheckBox).checked = false then
    begin
      ButtonSetting1.EnabledBut[StrToInt(s[9])-1] := false;
    end else begin
      ButtonSetting1.EnabledBut[StrToInt(s[9])-1] := true;
    end;
end;


lg elundril


arnes - Di 25.11.08 20:16

vielen Dank für die schnelle Antwort
also es hat zwar funktioniert , aber nicht so wie es sollte
hab anschließend das
ButtonSetting1 :TButtonSetting;
am Anfang in

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
implementation

{$R *.dfm}

type
  TButtonSetting = record
    EnabledBut :array[0..4of boolean;
end;

var
  ButtonSetting1 :TButtonSetting;

geschrieben und nun funktioniert es wunderbar
gruß arnes


elundril - Di 25.11.08 20:48

:oops: stimmt, mein fehler, wenn du es global verwenden willst (in der gesamten unit oder programm) musst du es auch global definieren.

lg elundril