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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2008, 09:01   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Перерисовка на Image

Суть такова. На форме есть имидж с выравниваем по всей площади. При нажатии на кнопку на имидже отрисовывается 16 битмапов 4*4 (шаг по оси Х и оси Y зависит от ширины и длины имиджа (соответственно и от размеров формы). После увеличиваем размер формы нажимаем на кнопку, а так как шаг между битмапами изменился то все я их увидеть не могу ПОЧЕМУТО. Как сделать чтобы видимая облать канвы соответствовала размеру имиджа
SERG1980 вне форума Ответить с цитированием
Старый 09.04.2008, 09:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чет не очень понял вопрос, но из того что понял и представил полагаю что StretchDraw поможет
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2008, 09:12   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Очень похоже на баг с перерисовкой, НО это же имидж, к-рый в ручной перерисовке не нуждается.
Скорее всего неправильный расчет координат для отрисовки.

p.s. без кода больше сказать ничего не могу

Цитата:
Как сделать чтобы видимая облать канвы соответствовала размеру имиджа
она ему всегда соответствует
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; 09.04.2008 в 09:18.
mutabor вне форума Ответить с цитированием
Старый 09.04.2008, 09:41   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

вот эта процедура
procedure DrawVBV(Image:TImage;n:integer;type VBV:String);
var zazorx,zazory,row,col,a,b:integer;
VBV:TBitMap;
R:Trect;
j: Integer;
i: Integer;
begin
image.canvas.fillrect(image.canvas. cliprect);
VBV:=TBitMap.Create;
VBV.LoadFromFile(typeVBV);
form1.Edit3.Text:= inttostr(image.Canvas.ClipRect.Righ t);
if n<8 then col:=n else if (n in[8..16]) then col:=4 else col:=6;
row:=round(n/col);
zazorx:=trunc((Image.Width-(VBV.Width*col))/(col+1));
zazory:=trunc((Image.Height-(VBV.Height *row))/(row+1));
form1.Edit2.Text:=inttostr(zazorx)+ ' '+inttostr(zazory);
for j:=1 to row do
begin
a:=zazorx;
b:=zazory+((j-1)*(VBV.Height+zazory));
for i:=1 to col do
begin
//r:=Bounds(a,b,VBV.Width,VBV.Height) ;
Image.Canvas.Draw (a,b,VBV);
a:=a+zazorx+VBV.Width;
end;
end;
VBV.Free;
end;

шаг между картинками расчитывается правильно (складывал ширину картинок и шаг между ними и результат получался равный ширине имижда)
Глянте проект
Вложения
Тип файла: rar Image DT.rar (248.8 Кб, 27 просмотров)
SERG1980 вне форума Ответить с цитированием
Старый 09.04.2008, 09:46   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Серж, опиши задачу. По-моему все решить можно гораздо проще
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2008, 09:54   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Сейчас проект скачаю посмотрю
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 вне форума Ответить с цитированием
Старый 09.04.2008, 10:05   #7
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Серж, опиши задачу. По-моему все решить можно гораздо проще
Пусть будет отрисовка битмапов при разных размерах формы и соответственно имиджа
SERG1980 вне форума Ответить с цитированием
Старый 09.04.2008, 10:07   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Изменяй вручную размер Bitmap в Image, при изменении размера формы
Код:
procedure TForm1.FormResize(Sender: TObject);
begin
  Image1.Picture.Bitmap.Width:=Image1.Width;
  Image1.Picture.Bitmap.Height:=Image1.Height;
end;
Имидж служит для отображения картинок, поэтому размер Bitmap равен размеру картинки или первоначальному размеру Имиджа, если картинка не загружена. Изменяя размер Image, вы не меняете размер картинки, поэтому размер Bitmap при этом также не меняется.
У вас "на форме есть имидж с выравниваем по всей площади", изменяя размер формы, вы меняете размер Имиджа но не Bitmap.

Последний раз редактировалось _Dmitry; 09.04.2008 в 10:20.
_Dmitry вне форума Ответить с цитированием
Старый 09.04.2008, 10:20   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Раз уж ты пытался перерисовывать имидж, что делать необязательно, то можешь смело использовать PaintBox, баг исчезнет.
Или как Дмитрий сказал. Почему то второй раз в имидже битмап сам уже не тянется, хотя процедура вызывается та же.
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 вне форума Ответить с цитированием
Старый 09.04.2008, 10:24   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Спасибо Dmitry проблема решена
SERG1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
NPG Image Altera Компоненты Delphi 2 21.08.2008 12:30
Перерисовка формы satana Общие вопросы Delphi 4 18.09.2007 19:42
PNG в Image Grey Fox Помощь студентам 1 02.08.2007 12:24
image Elm0 Свободное общение 4 21.06.2007 17:34