Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

Por que esse código simples não funciona ... Encontre agências semelhantes


Kost   (2001-12-15 13:06) [0]

Existe um formulário TForm1. BitBtn1 "botão experimental" é colocado sobre ele.
Há um desejo, clicando em outro botão - Button1 para fazer o seguinte:
- desenhar uma imagem BitBtn1 na tela do bitmap usando o PaintTo
- saída do bitmap recebido para a tela do formulário

NÃO RECEBIDO! BitBtn1 não é desenhado no bitmap! PORQUE ONDE ESTOU DIREITO?

procedimento TForm1.FormCreate (Sender: TObject);
começar
// Cria um bitmap
bmp: = TBitmap.Create;
bmp.Width: = 150;
bmp.Altura: = 150;
end;

procedimento TForm1.Button1Click (Sender: TObject);
começar
// Quando você clicar no botão, desenhe BitBtn1 na tela do bitmap
BitBtn1.PaintTo (bmp.Canvas.Handle, 0, 0);
Invalidar // Para forçar o formulário a ser redesenhado
end;

procedimento TForm1.FormPaint (Sender: TObject);
começar
// Imprime o formulário de bitmap para a tela
Canvas.Draw (0,0, bmp);
end;



Song   (2001-12-15 22:18) [1]

А почему Вы:
1) рисуете канвас с помощью PaintTo? Можно напрямую задавать глиф через Canvas.Draw - так будет правильней.
2) перерисовываете форму? нужно всего лишь перерисовать тот контрол который вы обновили, т.е.
ou assim:
With BitBtn1 Do
Começar
UpDate;
Invalidate;
End;

либо просто BitBtn1.RePaint;



Kost   (2001-12-16 12:25) [2]

Я этим примером хотел показать что в битмэп (точнее на канвас битмэпа) невозможно нарисовать TBitBtn (или TButton) с помощью PaintTo.
У WinControl"ов есть такая член-функция
WinControl.PaintTo(DC: HDC; X,Y:integer)
с помощью которой, якобы, можно изображение винконтрола нарисовать на любом канвасе. Я попытался нарисовать изображение кнопки (TBitBtn) на канвасе битмэпа. Не получается. Провел исследования с другими WinControl"ами, получается, например с TPanel. T.e. изображение панели можно, с помощью PaintTo перенести в битмэп. Изображение TBitBtn, повторю, почемуто этой функцией не рисуется в битмэп.
Т.е. эта функция для разных WinControl"ов работает как бог на душу положит.



Song   (2001-12-16 22:31) [3]

Я думаю, вся проблема не в PaintTo, а в DС (тип HDC), он в случае с TBitBtn не корректно указывается, т.е. система воозвращает неккоректный handle для канваса кнопки :((



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.82 MB
Hora: 0.032 c
14-22398
Jey
2001-11-10 18:55
2002.01.08
Aqui foi para o cliente de IRC fazer ....


1-22161
Yegor Bulychev
2001-12-19 22:13
2002.01.08
Memorando ajuda!


1-22181
Comida
2001-12-21 11:12
2002.01.08
Como proibir o movimento do mouse?


3-21975
Dr. Web
2001-12-06 09:12
2002.01.08
criando um banco de dados Interbase de um programa


1-22016
Leviatã
2001-12-13 23:05
2002.01.08
Formulário de aparência





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol