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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 18:23   #1
viktory
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 14
По умолчанию

Добрый вечер, уважаемые форумчане.
Пишу курсач, проблема заключается в следующем: дно океана представлено как матрица 10Х10. В зависимости от того, что находится на клетке площади(пустая или какой то вид рыбы)заполняется матрица. После на форму нужно вывести соответствующие картинки. Собственно с выводом у меня и проблема. Не пойму как и во что выводить. Image? но ведь их 100 штук будет. А в StringGrid или DrawGrid не получается.
И второй вопросик: как по щелчку на Button закрыть форму?
Спасибо за уделенное моей проблеме время.

up
с закрытием формы разобралась, а вот вывод матрицы картинок не знаю как осуществить
Этот старый мир весьма забавен. Над ним нельзя не смеяться. Ведь если не смеяться, можно сойти с ума.

Последний раз редактировалось Stilet; 30.10.2009 в 08:05.
viktory вне форума Ответить с цитированием
Старый 29.10.2009, 20:04   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Цитата:
А в StringGrid или DrawGrid не получается.
Вообще DrawGrid на мой взгляд наиболее подходит для отображения большого количества картинок...напишите что конкретно не получается,а мы поможем и подскажем
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 30.10.2009, 08:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Все очень просто (если я правильно понял задачу.
Кидаешь на форму ImageList в него картинки этих рыб
Далее заполняешь массив:
Код:
var a:array[1..10,1..50] of byte;
...
var q,w:byte;
begin
 DrawGrid1.RowCount:=length(a);
 DrawGrid1.ColCount:=length(a[high(a)]);
   for q:=low(a) to high(a) do begin
    for w:=low(a[q]) to high(a[q]) do begin
     a[q,w]:=random(ImageList1.Count);
    end;
   end;
   DrawGrid1.DefaultColWidth:=ImageList1.Width;
   DrawGrid1.DefaultRowHeight:=ImageList1.Height;
   DrawGrid1.Repaint;
end;
После чего процедура отрисовки в ДравГриде отрисовывает нужную рыбу в нужном квадрате
Код:
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if a[arow,acol]<>0 then begin
  ImageList1.Draw(DrawGrid1.Canvas,rect.left,rect.top,a[arow,acol]);
 end;
end;
И не нужно тут никаких 100 штук. Сколько ты рыб добавишь (разновидностей) столько и понарисовывает из массива.

Смысл ясень?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с боьшим файлом (С++ Builder6) ongleb Общие вопросы C/C++ 4 04.08.2009 20:21
C++Builder6. Как поместить ComboBox в StringGrid? Igor_M Общие вопросы C/C++ 0 04.06.2009 08:55
Ввод данных из файла в С++Builder6. RokDemon Общие вопросы C/C++ 1 03.06.2009 22:41
Builder6 - .ехе требует компонентов на другом компе ChukCha Общие вопросы C/C++ 2 22.02.2009 18:25
2 задачи в C++Builder6 Sashok=) Помощь студентам 2 31.10.2008 23:15