![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пользовался кто нибудь функцией PaintTo для прорисовки WinControl ов на канвас битмэпа? Помогите! У меня ничего не получается.
Kost © (2001-12-14 14:10:00)Пользовался кто нибудь функцией PaintTo для прорисовки WinControl"ов на канвас битмэпа? Помогите! У меня ничего не получается.
Kost (2001-12-16 12:12:00) [1]И, все таки, не работает. Кнопка в битмэп не рисуется. TPanel рисуется а TButton и TBitBtn нет.
DK (2001-12-16 02:26:00) [2]Всё работает!!!
Может ты просто не обрабатываешь нажатие на кнопку?
procedure TForm1. Button1Click(Sender: TObject);
procedure TForm1. BitBtn1Click(Sender: TObject);
Kost (2001-12-15 13:05:00) [3]Имеется форма TForm1. На нее помещена "подопытная кнопка" BitBtn1.
Имеется желание, по нажатию на другую кнопку - Button1 сделать следующее:
- нарисовать изображение BitBtn1 на канвас битмэпа с помощью PaintTo
- вывести полученный битмэп на канву формы
НЕ ПОЛУЧАЕТСЯ! BitBtn1 не рисуется в битмэп! ПОЧЕМУ! ГДЕ Я НЕ ПРАВ?
procedure TForm1.FormCreate(Sender: TObject);
begin
//Создаем битмэп
bmp := TBitmap.Create;
bmp.Width := 150;
bmp.Height := 150;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//При нажатии на кнопку рисуем BitBtn1 на канвас битмэпа
BitBtn1.PaintTo(bmp.Canvas.Handle, 0, 0);
Invalidate; //Чтобы вызвать перерисовку формы
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
//Выводим на канву формы битмэп
Canvas.Draw(0,0, bmp);
end;
DK (2001-12-15 03:52:00) [4]2valery_f
Можно вопрос:
Как это? Контрол есть, а хэндла нет. Разве такое может быть?
valery_f (2001-12-14 18:16:00) [5]Пользовался. Единственное "но" - изначально невидимый WinControl не имеет хэндла и дает эксэпшн при PaintTo. Если это свой компонент - зови CreateHandle, если нет - сделай его видимым потом спрячь - хэндл появится и PaintTo заработает.