![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |