Fórum Sair no estilo do Windows XP #240986
02/07/2004
0
:roll:
Tenho um form com uma imagem(JPG), gostaria que qdo eu clikasse no botão SAIR a figura ficasse no estilo do XP, nos tons Preto/Branco!
Alguém pode me ajudar????
Obrigada!!!!!! :wink:
Tenho um form com uma imagem(JPG), gostaria que qdo eu clikasse no botão SAIR a figura ficasse no estilo do XP, nos tons Preto/Branco!
Alguém pode me ajudar????
Obrigada!!!!!! :wink:
Babyprogram
Curtir tópico
+ 0
Responder
Posts
09/08/2004
Lucas Silva
Aqui no clube de um exemplo de uso de skins...
talvez possa resolver seu problema..
www.clubedelphi.net na seção de aplicativos!
talvez possa resolver seu problema..
www.clubedelphi.net na seção de aplicativos!
Responder
Gostei + 0
09/08/2004
Nildo
Ele quis dizer da imagem ir se transformando de colorido para preto e branco...
Use esta função:
Para usar é assim:
Você monta uma imagem em preto e branco e a outra deixa normal.
Dae usa a função:
DoMorphBMP( bmpDaImagem1, bmpDaImagem2, CanvasDeDestino, QualquerNumeroGrande, qualquerVariavelBoolean)
Use esta função:
procedure DoMorphBMP( Imagem1, Imagem2: TBitmap ; Destino: TCanvas; X,Y: Integer; Rate: Integer; var CancelVar: Boolean);
var
bmpResult: TBitmap;
i: Integer;
begin
bmpResult := TBitmap.Create;
imagem1.PixelFormat := pf24bit;
imagem2.PixelFormat := pf24bit;
bmpResult.Assign( Imagem1 );
FCancelMorph := False;
i := 0;
while {not fCancelMorph and} (i <= Rate) do
begin
Blendit(Imagem1.Scanline[(Imagem1.Height-1)],Imagem2.Scanline[(Imagem2.Height-1)],bmpResult.Scanline[(BmpResult.Height-1)],Imagem1.Width,Imagem1.Height,(i*$20 Div Rate));
Destino.Draw(X, Y, bmpResult);
Inc(i);
end;
FCancelMorph := False;
bmpResult.Free;
end;
procedure Blendit(bFr,bTo,bLn : Pointer ; Width,Height : Integer ; Dens : LongInt); assembler;
Const
Mask0101 = $00FF00FF;
Mask1010 = $FF00FF00;
ASM
MOV &EBX, EBX
MOV &EDI, EDI
MOV &ESI, ESI
MOV &ESP, ESP
MOV &EBP, EBP
MOV EBX, Dens
MOV Dens1, EBX
NEG BL
ADD BL, $20
MOV Dens2, EBX
CMP Dens1, 0
JZ @Final
MOV EDI, bFr
MOV ESI, bTo
MOV ECX, bLn
MOV EAX, Width
lea EAX, [EAX+EAX*2+3]
AND EAX, $FFFFFFFC
IMUL Height
ADD EAX, EDI
MOV FinA, EAX
MOV EBP,EDI
MOV ESP,ESI
MOV ECX,ECX
@LOOPA:
MOV EAX, [EBP]
MOV EDI, [ESP]
MOV EBX, EAX
AND EAX, Mask1010
AND EBX, Mask0101
SHR EAX, 5
IMUL EAX, Dens2
IMUL EBX, Dens2
MOV ESI, EDI
AND EDI, Mask1010
AND ESI, Mask0101
SHR EDI, 5
IMUL EDI, Dens1
IMUL ESI, Dens1
ADD EAX, EDI
ADD EBX, ESI
AND EAX, Mask1010
SHR EBX, 5
AND EBX, Mask0101
OR EAX, EBX
MOV [ECX], EAX
ADD EBP, 4
ADD ESP, 4
ADD ECX, 4
CMP EBP, FinA
JNE @LOOPA
@FINAL:
MOV EBX, &EBX
MOV EDI, &EDI
MOV ESI, &ESI
MOV ESP, &ESP
MOV EBP, &EBP
End;
Para usar é assim:
Você monta uma imagem em preto e branco e a outra deixa normal.
Dae usa a função:
DoMorphBMP( bmpDaImagem1, bmpDaImagem2, CanvasDeDestino, QualquerNumeroGrande, qualquerVariavelBoolean)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)