Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизНедоступность значения свойства типа массив Найти похожие ветки
← →
AZ © (2004-10-30 07:22) [0]Объясните, пожалуйста, почему при установке свойства AuxParams
из другого модуля при входе в процедуру SetAuxParams массив недоступен?
(В отладке при установке курсора на .Name сообщение "FAuxParams[Index].Name=Inaccessible value)
Как следствие недоступности, Access violation...
type
TAuxParam = record
Name: string[63];
Value: single;
Module: integer;
Channel: integer;
Use: boolean;
end;
// Форма создается в Runtime
TfrmAuxParams = class(TForm)
.
.
.
procedure btAuxExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure SetAuxParams(Index: integer; const Value: TAuxParam);
function GetAuxParams(Index: integer): TAuxParam;
public
{ Public declarations }
FAuxParams: array[0..3] of TAuxParam;
property AuxParams[Index: integer]: TAuxParam read GetAuxParams
write SetAuxParams;
end;
.
.
.
procedure TfrmAuxParams.SetAuxParams(Index: integer; const Value: TAuxParam);
begin
FAuxParams[Index].Name:=Value.Name;
//------------------^^^ Место курсора при трассировке
.
.
end;
← →
AZ © (2004-10-30 07:54) [1]В догонку.
Если в Project>Options>Forms установить frmAuxParams в Autocreate, то все ОК. Сейчас стоит в Enable forms (мне нужно создавать форму в Runtime).
В чем фокус?
← →
DiamondShark © (2004-10-30 12:00) [2]Как создаётся форма?
Чему равен Index?
← →
AZ © (2004-10-30 20:04) [3]>DiamondShark © (30.10.04 12:00) [2]
>Как создаётся форма?
>Чему равен Index?
Как обычно.
Индекс нормальный, в пределах(равен 0).
← →
Игорь Шевченко © (2004-10-30 20:50) [4]AZ © (30.10.04 20:04) [3]
Ты будешь удивлен, но у меня все прекрасно работает:procedure TForm1.Button1Click(Sender: TObject);
const
MyAuxParam: TAuxParam = (Name: "AuxParam"; Value: 0.0; Module: 0; Channel: 0;
Use: true);
begin
with TfAuxParams.Create(Application) do begin
AuxParams[0] := MyAuxParam;
AuxParams[1] := MyAuxParam;
AuxParams[2] := MyAuxParam;
Show;
end;
end;
Остальной код скопирован из твоего поста.
Кстати, совет, объявить поле FAuxParams в разделе private :)
← →
AZ © (2004-10-31 07:11) [5]Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c