|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
Да всего то и надо, чтобы PaintBox не выводил пустой канвас при изменении своих размеров. Как за локоть себя укусить.
|
#17
|
|||
|
|||
Чет вы ребята забыли про DoubleBuffered. Короче, кидай на форму два Scrolla, Button, ScrollBox, в него Image.
У image не забудь поставить Stretch = true. Я делал для bmp, но сути это не меняет. Теперь пиши туда этот код: Код:
var H, W: integer; //глобальные переменные, начальная высота и ширина рисунка procedure TForm1.Button1Click(Sender: TObject); begin Form1.ScrollBox1.DoubleBuffered := true; // Ыыыыы with Image1.Picture.Bitmap do begin LoadFromFile('C:\Alien.bmp'); H := Height; W := Width; Image1.Width := Width; Image1.Height := Height; end; end; procedure TForm1.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin Image1.Height := Round((ScrollPos / 50) * H); end; procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin Image1.Width := Round((ScrollPos / 50) * W); end; end. |
#18
|
|||
|
|||
Спасибо!!!
Код:
Form1.ScrollBox1.DoubleBuffered := true; // Ыыыыы Единственное дополнение: изображение теперь не мигает, но масштабируется рывками и с небольшими задержками. Если добавить после изменения размера Image строчку Код:
Image1.Invalidate; Последний раз редактировалось diagnost, 06.08.2008 в 03:05. |