Fórum Atravessar Form #547384
01/03/2016
0
Junior Santos
Curtir tópico
+ 1Posts
02/03/2016
Junior Santos
Gostei + 0
02/03/2016
Marcos P
Gostei + 0
02/03/2016
Junior Santos
using a topmost, layered window with the WS_EX_TRANSPARENT extended
window style should work for you. The WS_EX_TRANSPARENT style will make
mouse messages go to the window beneath (your transparent window would
never get any of them).
Add an overriden CreateParams method to your form, and a handler for the
OnCreate event.
procedure TForm1.CreateParams(var Params: TCreateParams); // override;
begin
inherited;
params.exstyle := params.ExStyle or WS_EX_TRANSPARENT;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{ Next five properties can also be set at design-time }
Borderstyle := bsNone;
AlphaBlend := true;
AlphaBlendvalue := 25;
Color := clBlack;
Formstyle := fsStayOnTop;
Boundsrect := Screen.DesktopRect;
end;
A word of warning: using the WS_EX_TRANSPARENT style on an older
platform that does not support it will cause the form creation to fail
with an API error. But as said the whole scheme only works on 2K and XP
anyway, since only those platforms have support for layered windows.
Peter Below (TeamB)
Use the newsgroup archives :
www.mers.com/searchsite.html
www.tamaracka.com/search.htm
groups.google.com
www.prolix.be
Gostei + 0
02/03/2016
Junior Santos
Gostei + 0
02/03/2016
Raylan Zibel
Não acho dê pra fazer isso sem associar manualmente o metodo de cada componente em que voce clicar ao componente do form de tras...
Gostei + 0
02/03/2016
Junior Santos
Não acho dê pra fazer isso sem associar manualmente o metodo de cada componente em que voce clicar ao componente do form de tras...
e se fazer daquela forma que você passo de corta o form mais no caso faria um furo de 1x1 em cima aonde cliquei ? como posso fazer isso?
Gostei + 0
03/03/2016
Junior Santos
Gostei + 0
04/03/2016
Raylan Zibel
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
Gostei + 0
04/03/2016
Junior Santos
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
Mais ainde ?? nas 4 parte ?? pois o furo tinha que ser de 1x1 ou maior um poco mais que nao apareça
region2 := CreateRectRgn(x1, y1, x2, y2);
Gostei + 0
04/03/2016
Raylan Zibel
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
Mais ainde ?? nas 4 parte ?? pois o furo tinha que ser de 1x1 ou maior um poco mais que nao apareça
region2 := CreateRectRgn(x1, y1, x2, y2);
No lugar de clicar e arrastar, de repente pegar o x e y do cursor e cortar num raio 1px, sei lá..
Gostei + 0
04/03/2016
Junior Santos
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
Mais ainde ?? nas 4 parte ?? pois o furo tinha que ser de 1x1 ou maior um poco mais que nao apareça
region2 := CreateRectRgn(x1, y1, x2, y2);
No lugar de clicar e arrastar, de repente pegar o x e y do cursor e cortar num raio 1px, sei lá..
entao Raylan consegui resolve uma parte do problema com a seguinte forma
x1 := x1 + Mouse.CursorPos.X;
y1 := y1 + Mouse.CursorPos.Y;
x2 := Mouse.CursorPos.X;
y2 := Mouse.CursorPos.Y;
Mais dai o tamanho da abertura do corte ta ficando do tamanho daonde eu click no form to tentando deixa um tamanho fixo de 1x1 ou 2x2 assim que eu consegui posto aqui para todos, se alguem tiver sugestão estamos ae =D
Gostei + 0
04/03/2016
Junior Santos
[img]http://arquivo.devmedia.com.br/forum/imagem/474640-20160304-122157.jpg[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/474640-20160304-122219.jpg[/img]
Gostei + 0
04/03/2016
Raylan Zibel
x1 := Mouse.CursorPos.X - 1; y1 := Mouse.CursorPos.Y - 1; x2 := Mouse.CursorPos.X + 1; y2 := Mouse.CursorPos.Y + 1;
Gostei + 0
04/03/2016
Junior Santos
x1 := Mouse.CursorPos.X - 1; y1 := Mouse.CursorPos.Y - 1; x2 := Mouse.CursorPos.X + 1; y2 := Mouse.CursorPos.Y + 1;
Opa eh isso mesmo mais no caso o furo fica fora do click do mouse fica um poco acima
[img]http://arquivo.devmedia.com.br/forum/imagem/474640-20160304-133152.jpg[/img]
Gostei + 0
07/03/2016
Junior Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)