Desenhar Bmps nos comps padrões do Delphi
to fazendo um sistema de skin, dai eu preciso saber como desenhar bitmaps em botões, checkbox, ..... etc.....
ouse naum for possível, queria alguma base p/ eu mesmo poder criar componentes q aceitem bmps.....
valew...
ouse naum for possível, queria alguma base p/ eu mesmo poder criar componentes q aceitem bmps.....
valew...
::d::a::m::m::i::t::
Curtidas 0
Respostas
Marcelo Saviski
13/02/2004
talvez funcione, mas se você tiver a handle do componente, pode blitar um bitmap para lá:
vc tb pode usar outros parametros no lugar do copy também, como [color=green:635b930c03]SRCINVERT [/color:635b930c03], [color=green:635b930c03]SRCAND [/color:635b930c03]etc.... que realizam operação booleanas nos pixels
BitBlt(Componente.handle, X, Y, Width, Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
vc tb pode usar outros parametros no lugar do copy também, como [color=green:635b930c03]SRCINVERT [/color:635b930c03], [color=green:635b930c03]SRCAND [/color:635b930c03]etc.... que realizam operação booleanas nos pixels
GOSTEI 0
::d::a::m::m::i::t::
13/02/2004
cara... naum funcionou.....
eu consegui desenhar em um label utilizando o canvas...
mas foi soh no label.....
aguem ai tem mais alguma sugestão....???
vlew
eu consegui desenhar em um label utilizando o canvas...
mas foi soh no label.....
aguem ai tem mais alguma sugestão....???
vlew
GOSTEI 0
Beppe
13/02/2004
Nem todos os controles tem um OnPaint ou exportam um Canvas. O método mais apropriado para renderizar diferente, seria sobrepor o método Paint do controle. Lá você pode usar o Canvas.
Desta maneira, cada vez que o controle precise ser repintado, ele será pintado como você quer, isto não é possível sem herdar(ou um OnPaint).
Seria isso?
procedure TMeuControle.Paint; begin inherited; // pinta como quiser end;
Desta maneira, cada vez que o controle precise ser repintado, ele será pintado como você quer, isto não é possível sem herdar(ou um OnPaint).
Seria isso?
GOSTEI 0
Marcelo Saviski
13/02/2004
um detalhe!
BitBlt([b:50e0dc29c1]GetDC[/b:50e0dc29c1](Componente.handle), X, Y, Width, Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
talvez funfa agora....
BitBlt([b:50e0dc29c1]GetDC[/b:50e0dc29c1](Componente.handle), X, Y, Width, Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
talvez funfa agora....
GOSTEI 0
::d::a::m::m::i::t::
13/02/2004
[quote:cc6391dce6=´Marcelo Saviski´]um detalhe!
BitBlt([b:cc6391dce6]GetDC[/b:cc6391dce6](Componente.handle), X, Y, Width, Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
talvez funfa agora....[/quote:cc6391dce6]
agora sim!!!!
valew tb beppe..... vo faze isso q tu disse tb...
valew....
BitBlt([b:cc6391dce6]GetDC[/b:cc6391dce6](Componente.handle), X, Y, Width, Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
talvez funfa agora....[/quote:cc6391dce6]
agora sim!!!!
valew tb beppe..... vo faze isso q tu disse tb...
valew....
GOSTEI 0
::d::a::m::m::i::t::
13/02/2004
agora ta funcionando tudo certo....
mas eu naum consigo colocar o caption no meu btn....
eu usei o TetOut, mas daí naum consigo ajeitar fonte e tb naum consigo deixar o caption centralizado.......
e agora???????
valwwwwww :lol:
mas eu naum consigo colocar o caption no meu btn....
eu usei o TetOut, mas daí naum consigo ajeitar fonte e tb naum consigo deixar o caption centralizado.......
e agora???????
valwwwwww :lol:
GOSTEI 0
Marcelo Saviski
13/02/2004
só uma dica, você pode fazer assim para facilitar o trabalho em um Objeto que não tenha um canvas
[color=green:0986166284]Canvas := TCanvas.Create;
Canvas.Handle:= GetDC(Comp.Handle);[/color:0986166284]
ai você pode usar as opções do canavas, e alterar a fonte pelo método tradicional
para desenhar um texto centralizado você usa o:
[color=green:0986166284]DrawText(DC, PChar(´texto´), -1, r, DT_CENTER + DT_VCENTER + DT_SINGLELINE);[/color:0986166284]
onde r é uma variavel TRect
[color=green:0986166284]Canvas := TCanvas.Create;
Canvas.Handle:= GetDC(Comp.Handle);[/color:0986166284]
ai você pode usar as opções do canavas, e alterar a fonte pelo método tradicional
para desenhar um texto centralizado você usa o:
[color=green:0986166284]DrawText(DC, PChar(´texto´), -1, r, DT_CENTER + DT_VCENTER + DT_SINGLELINE);[/color:0986166284]
onde r é uma variavel TRect
GOSTEI 0
::d::a::m::m::i::t::
13/02/2004
valew galera.....
valew mesmo....
:lol: :lol: :lol:
valew mesmo....
:lol: :lol: :lol:
GOSTEI 0