Fórum janela transparente #176345
21/08/2003
0
ATE
Nihil
Curtir tópico
+ 0Posts
21/08/2003
Cebikyn
var AControl: TControl; A, Margin, X, Y, CtlX, CtlY: Integer; begin Margin := (Width - ClientWidth) div 2; FullRgn := CreateRectRgn(0, 0, Width, Height); X := Margin; Y := Height - ClientHeight - Margin; ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight); CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF); for A := 0 to ControlCount - 1 do begin AControl := Controls[A]; if (AControl is TWinControl) or (AControl is TGraphicControl) then with AControl do begin if Visible then begin CtlX := X + Left; CtlY := Y + Top; CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height); CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR); end; end; end; SetWindowRgn(Handle, FullRgn, True); end;
Gostei + 0
23/08/2003
Nihil
Gostei + 0
24/08/2003
Anderson_blumenau
precisa declarar alguma biblioteca ou variavel
Estas por exemplo
FullRgn
ClienteRgn
CombineRgn
Gostei + 0
24/08/2003
Paulo Ricardo
Gostei + 0
24/08/2003
Cebikyn
Na verdade são do tipo [b:86fece7998]THandle[/b:86fece7998]. Eis a declaração delas:
private
{ Private declarations }
FullRgn, ClientRgn, CtlRgn: THandle;Já [b:86fece7998]CombineRgn[/b:86fece7998] é uma função declarada na [i:86fece7998]unit[/i:86fece7998] Windows.pas.
Acho que declarando as variávei da forma indicada, deve resolver seu problema.
Gostei + 0
24/08/2003
Anderson_blumenau
Inteiro? Antes de postar qualquer coisa tenha certeza do que está dizendo
ZÉ-GUEDÉ
Gostei + 0
26/08/2003
Cebikyn
Inteiro? Antes de postar qualquer coisa tenha certeza do que está dizendo
ZÉ-GUEDÉ[/quote:a9fb1a1688]
É verdade.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)