Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2014, 16:27   #1
Pykhov
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 20
По умолчанию Проблемы с созданием динамического массива

при попытки вызвать функцию addPen() для добавления нового элемента массива происходит ошибка
Код:
type
TPen=class
    Name:string;
    address:Word;
    column:string;
    value:Single;
  end;
  Tdatabase = record
    Name:string;
    Host:string;
    Port:word;
    Login,pass:string;
    TableName:string;
  end;
  Tdevice =class
    Name:string;
    Host:string;
    Port:word;
    DataBases:Tdatabase;
    pens:array of TPen;
    function addPen(NamePen: string; addressPen: Word):boolean;
  end;

function Tdevice.addPen(NamePen: string; addressPen: Word): boolean;
begin
  try
      SetLength(self.pens,Length(self.pens)+1);
      pens[Length(pens)].Name:=NamePen;
      pens[Length(pens)].address:=addressPen;
      pens[Length(pens)].column:='';
      pens[Length(pens)].value:=-1111;
      Result:=True;
  except
    Result:=False;
  end;
end;

...
dev:Tdevice;
dev.addPen('1',1);

Последний раз редактировалось Stilet; 26.02.2014 в 18:03.
Pykhov вне форума Ответить с цитированием
Старый 26.02.2014, 16:29   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
dev:=TDevice.Create;
dev.AddPen('1',1);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.02.2014, 16:30   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

pens[Length(pens)-1].Name:=NamePen;
или
pens[High(pens)].Name:=NamePen;
остальные аналогично
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.02.2014, 16:35   #4
Pykhov
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
pens[Length(pens)-1].Name:=NamePen;
или
pens[High(pens)].Name:=NamePen;
остальные аналогично
Спасибо все заработало
Pykhov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы при передаче двумерного динамического массива в функцию С++ Leiph Общие вопросы C/C++ 1 23.04.2012 13:26
Проблема с созданием динамического списка gvilon Паскаль, Turbo Pascal, PascalABC.NET 3 06.10.2011 23:08
роблема с созданием объекта динамического массива Класса GDA230105 C++ Builder 3 26.07.2011 09:25
Проблемы с созданием билдера Mihanches Общие вопросы Delphi 6 20.10.2010 13:33
Проблемы с созданием таймера girkoff Общие вопросы C/C++ 11 07.02.2010 18:57