IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Создание обьектов, В чем ошибка
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Как создать массив обьектов?

Например:

var a: Array[1..36] of TImage;

Мне нужно чтобы каждый обьект появлялся в свое время и в нужном месте
Пробовал:

a[n].Create(...)

А что в скобках писать?
Если:

a[1]:=TButton.CreateParented(Form1.Handle)

Не получается.
Объект не появляется даже если задать все размеры, координаты, указать картинку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


может,

a[1]:=TImage.CreateParented(Form1.Handle)
?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Complementary Metal-Oxyde Semiconductor, простите, CMOS,
во первых, принято использовать не массив, а TList - массив указателей.

const
count = 36;
var
List : TList;
Image: TImage;
i: integer;

begin
List := TList.Create(); // создать список

// создать список картинок
for i := 0 to Pred (count) do
begin
Image := TImage.Create;
List.Add (Image);
end;

//
{использовать этот список}
//

// освободить память для картинок
for i := 0 to Pred (count) do
begin
Image := List.Items[i];
Image.Free ();
end;

List.Free (); // освободить память списка
end.

Во-вторых, не делай всё сразу, а поэтапно.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


В строчке

Image := TImage.Create;

Ошибка "Non enough actual parametrs", просит параметр типа TComponent.
Мне картинки нужно перебирать по индексу:

for n:= 1 to 36 do
i[n].Picture.BitMap.LoadFromResourceID (0, 13*Get2High(a[n])+GetLow(a[n])-1);

А в Вашем случае как? Так что-ли:

List.Items[i].Picture...

Сообщение отредактировано: CMOS -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(CMOS @ 8.07.05 21:13)
В строчке
Image := TImage.Create;
Ошибка "Non enough actual parametrs", просит параметр типа TComponent.

Ну, так дай ему этот параметр... Создание списка картинок происходит при создании формы?
Image := TImage.Create(Self);


Цитата(CMOS @ 8.07.05 21:13)
Мне картинки нужно перебирать по индексу:

For i := 0 to 35 do // На индексы обрати внимание ...
List.Items[i].Picture.BitMap.LoadFromResourceID...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


В строчке

List.Items[i].Picture.BitMap.LoadFromResourceID...

Ошибка "Record, object or class type required"
Ругается на List.Items[i]. Говорит, что точку после Items[i] не надо ставить.

var
List : TList;

Мне прогу сдавать в понедельник. Помогите, пожалуйста, кто чем может.
Алгоритм в принципе готов, осталось только это.

Сообщение отредактировано: CMOS -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Да, вот так делай:
For i := 0 to 35 do begin
image := List.Items[i];
...
image.Picture.BitMap.LoadFromResourceID...
end;


А вообще ты бы весь проект прикрепил, а то получается игра в "глухие телефоны"... Я же не знаю, КАК у тебя что описано, и ГДЕ что ты вызываешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Кажется, начинает работать!
Картинка, правда, не появляется.
Ошибка на

image.Picture.BitMap.LoadFromResourceID(0,1);

Project Project1.exe raised exception class EAccessViolation with message 'Access violation at addres 00408382 in module'PROJECT1.EXE'. Read of address FFFFFFFF. Process stopped. Use Step or Rn to continue.

Файл ресурсов добавлен.
Кстати, такая ошибка часто возникает и изчезает сама собой, даже если я ничего не делаю. Что это за ошибка?

Сообщение отредактировано: CMOS -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата(CMOS @ 9.07.05 21:34)
Кажется, начинает работать!
Картинка, правда, не появляется.
Ошибка на

image.Picture.BitMap.LoadFromResourceID(0,1);

Project Project1.exe raised exception class EAccessViolation with message 'Access violation at addres 00408382 in module'PROJECT1.EXE'. Read of address FFFFFFFF. Process stopped. Use Step or Rn to continue.

Файл ресурсов добавлен.
Кстати, такая ошибка часто возникает и изчезает сама собой, даже  если я ничего не делаю. Что это за ошибка?


Во первых LoadFromResourceID(hInstance, 1);
И перед запуском если менялись ресурсы Build вместо Complite!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата(Guest @ 18.08.05 12:06)
И перед запуском если менялись ресурсы Build вместо Complite!

Во-первых, не Complite, а Compile... (Прежде чем давать советы, надо хотя-бы научиться правильно писать...)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.09.2025 18:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name