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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 18:20   #1
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию Выполнить одно действие со списком переменных.

Как можно написать данный код более грамотно?
Код:
  spt0:= TBitMap.Create;
  spt1:= TBitMap.Create;
  spt2:= TBitMap.Create;
  spt3:= TBitMap.Create;
  spt4:= TBitMap.Create;
  spt5:= TBitMap.Create;
  spt6:= TBitMap.Create;
  spt7:= TBitMap.Create;
  spt8:= TBitMap.Create;
  spt9:= TBitMap.Create;
  spt10:= TBitMap.Create;
т.е. нужно выполнить одно действие со списком переменных.
даешь высокое напряжение
Vova777 вне форума
Старый 04.01.2013, 18:21   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

вот так:
Код:
var
  a:array[0..10] of TBitMap;
  i:ShortInt;
begin
  for i:=0 to Length(a) do
  a[i]:=TBitMap.Create;
end;
Человек_Борща вне форума
Старый 04.01.2013, 18:28   #3
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
вот так:
ошибка: Access violation... Read of address 00000000...

Я что-то не понял, и какие же имена он присвоит этим переменным?
даешь высокое напряжение

Последний раз редактировалось Vova777; 04.01.2013 в 18:36.
Vova777 вне форума
Старый 04.01.2013, 18:34   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

да там ошибка с циклом, пролетает на 1у больше.
А в целом смысл понятен.
Человек_Борща вне форума
Старый 04.01.2013, 18:35   #5
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
да там ошибка с циклом, пролетает на 1у больше.
А в целом смысл понятен.
Я что-то не понял, и какие же имена он присвоит этим переменным?
даешь высокое напряжение
Vova777 вне форума
Старый 04.01.2013, 18:37   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

for i:=0 to Length(a)-1 do
или
for i:=0 to High(a) do
или
for i:=0 to 10 do
Цитата:
Я что-то не понял, и какие же имена он присвоит этим переменным?
Ни какие, все указатели на созданные битмапы в массиве
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.01.2013 в 18:40.
Аватар вне форума
Старый 04.01.2013, 18:42   #7
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ни какие, все указатели на созданные битмапы в массиве
Я понял, что он считает на 1 больше, исправил.

Можно мне теперь пример, как мне работать с подобными переменными?
Мне надо теперь так сделать:
Код:
  spt0.LoadFromFile(...);
т.е. переменная spt0 - это теперь первый элемент массива, соответственно spt10 - последний.
даешь высокое напряжение
Vova777 вне форума
Старый 04.01.2013, 18:45   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

a[0].LoadFromFile(...);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 04.01.2013, 19:04   #9
Vova777
Уважаемый
Форумчанин
 
Аватар для Vova777
 
Регистрация: 04.07.2010
Сообщений: 318
По умолчанию

Спасибо, понял.
даешь высокое напряжение
Vova777 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
действие с двусвязным списком Тиса Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2012 19:27
Выполнить действие один раз. IVANSour Общие вопросы Delphi 5 02.02.2009 22:01
выполнить действие. IVANSour Общие вопросы Delphi 6 01.02.2009 22:53
Выполнить действие один раз. IVANSour Общие вопросы Delphi 11 01.02.2009 14:17