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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2010, 13:11   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Ты имеешь ввиду, что я не объявил StrechBlt?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2010, 13:34   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. ее не нужно обьявлять она в модуле Windows.
Ты закатал локальные переменные b и думаешь что так и надо.
У тебя картинка загружается в одну переменную, а рисовать ты пытаешся из другой, причем пустой.
Посмотри - у меня ОДНА переменная содержащая рисунок, и она глобальна чтоб можно было ее использовать везде.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2010, 13:42   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Аааааа...допер кажется . То есть если я в событии OnCreate создал переменную b и в событии рисования на DrawGridCell, то получилось, что это у меня две как бы разные переменные. В событии OnCreate в перменную b грузится рисунок и все, а в событии DrawGridCell у меня не загружен рисунок в переменную и поэтому появляется ошибка об обращении к несуществующему объекту. Так чтоли получается?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2010, 14:00   #14
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
но как быть если у меня будет нужно 10 штук нарисовать? 20? 50? 300?
А циклы на какой предмет?
Цитата:
Нужно же как-то задавать смещение.
Золотая мысль.
Цитата:
Я попробую записать видео как должно работать, чтобы понятнее было)
А вот это не надо, все и так понятно.

Значит так, алгоритм:
Код:
1. Узнаешь габариты (ширину и высоту) одного "объекта" 
(под объектом я имею ввиду единичный экземпляр того, чем ты хочешь заполонить всю канву).
Это и будет смещение, по вертикали и горизонтали.
2.Устанавливаешь координаты вывода в (0,0)
3. Цикл: Пока не вышли за нижний край канвы
      Вложенный цикл: Пока не вышли за правый край канвы
          Рисуешь "объект" в текущих координатах
          Прибавляешь смещение
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.07.2010, 14:33   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так чтоли получается?
Именно так. Более того рисунок во вторую не просто "не загружен" а не создан объект, с помошью которого ты можешь грузить изображение.
Если бы просто рисунок не был загружен скорее всего ничего бы не отрисовывалось, но прога запустилась бы.
Цитата:
mutabor
DrawGrid уже изобрели до нас
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2010, 14:38   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Неплохо получилось . Результат во вложении. Только есть несколько вопросов (уж не кидайте в меня камнями)).
1. Где в коде, когда используется StrechBlt, задается именно размеры рисуемого изображения? А то как видите, изображение по высоте нормально, но визуально не совпадает с изображением, которое в Image1. А все эти изображения должны быть абсолютно одинаковы.
2. Слева у меня есть таблица, в которой будут некоторые номера. Нужно чтобы они по порядку, начиная с первого и до последнего брались по очереди и в таком же порядке сначала отрисовывались на Image1, а потом на все изображения в таблице. Например, сначала берется значение = 8950000000, переносится на Image1, а затем отрисовывается в первой ячейке таблицы. Затем берется второе значение = 8950000001, сначала отрисовывается на Image1, а затем переносится во вторую ячейку и т.д. пока не закончатся значения в таблице. Вот как можно замутить такой код?

Код получения изображения с Image1:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 b:=TBitMap.Create;
 b:=Image1.Picture.Bitmap;
end;
Изображения
Тип файла: jpg Безымянный.jpg (38.0 Кб, 153 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2010, 15:02   #17
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 // b:=TBitMap.Create; // вот это здесь необязательно, и даже ошибка в виде утечки памяти
 b:=Image1.Picture.Bitmap;
end;
p.s. Вот кстати и еще один вопрос в наши Дельфи тесты. Спасибо artemavd
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 01.07.2010 в 15:07.
mutabor вне форума Ответить с цитированием
Старый 01.07.2010, 15:23   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

mutabor, ну, если в моем ответе выше действительно что-то забавное есть, то я рад.
З.Ы. а что на счет моих вопросов в посте №16?
З.Ы.Ы. А что такое в этом коде? (для личного интереса))
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 // b:=TBitMap.Create; // вот это здесь необязательно, и даже ошибка в виде утечки памяти
 b:=Image1.Picture.Bitmap;
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 01.07.2010, 17:59   #19
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

artemavd, не бери в голову, не хотел тебя обидеть. Просто как раз обсуждали создание тестирования по Дельфи.

Цитата:
А что такое в этом коде?
Ошибка. Ты создаешь объект и затем присваиваешь ему ссылку на другой, тем самым первый теряется безвозвратно, а это утечка памяти. В данном случае не нужно его создавать, т.к. ты ему присваиваешь ссылку на уже существующий.

Что касается вопросов из поста 16, трудно понять что тебе нужно. Во первых не используй Stretch если не нужно масштабировать, он искажает. Во вторых я не понял ничего про таблицу с номерами, объясни понятнее.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.07.2010, 19:16   #20
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
artemavd, не бери в голову, не хотел тебя обидеть.
Ни в коем случае . Я не обиделся и даже не думал этого делать.
Цитата:
Во вторых я не понял ничего про таблицу с номерами, объясни понятнее.
Придется завтра на работе видео записывать действительно

-----------------------
Вот, записал видео во флэше через CamStudio. Думаю, что сейчас поймете о чем я
Вложения
Тип файла: zip 123.zip (1.66 Мб, 8 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 02.07.2010 в 03:56.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изображение в image _-Re@l-_ Общие вопросы Delphi 2 16.05.2010 11:57
image не появляется изображение borik120 Microsoft Office Excel 1 23.02.2010 01:01
Копирование Image mustang007 Компоненты Delphi 3 10.06.2009 22:21
Как сохранить изображение Image и всё что на нём, в файл? Лукманов Александр Мультимедиа в Delphi 3 24.05.2009 00:16
как вращать изображение в image ИЛ87 Помощь студентам 2 15.12.2007 19:47