Atravessar Form
Boa noite pessoal, estou tentando fazer com que o o click que eu fizer no form ele atravessa, alguem poderia me da uma luz de como posso fazer isto ?
Junior Santos
Curtidas 1
Mais Respostas
Junior Santos
01/03/2016
Ninguem?
GOSTEI 0
Marcos P
01/03/2016
Defina "atravessar"...
GOSTEI 0
Junior Santos
01/03/2016
Cheguei a esta função que diz q faz o click atravessar WS_EX_TRANSPARENT alguem sabe como uso ?
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
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
Junior Santos
01/03/2016
Eu tenho um form em topmost que no caso o form cobre a tela, gostaria que continuasse vendo meu form mais aonde eu clicar no form o click foce para tela de traz.
GOSTEI 0
Raylan Zibel
01/03/2016
Eu tenho um form em topmost que no caso o form cobre a tela, gostaria que continuasse vendo meu form mais aonde eu clicar no form o click foce para tela de traz.
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
Junior Santos
01/03/2016
Eu tenho um form em topmost que no caso o form cobre a tela, gostaria que continuasse vendo meu form mais aonde eu clicar no form o click foce para tela de traz.
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
Junior Santos
01/03/2016
Alguem pra salva ?? rs
GOSTEI 0
Raylan Zibel
01/03/2016
Alguem pra salva ?? rs
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
GOSTEI 0
Junior Santos
01/03/2016
Alguem pra salva ?? rs
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
Raylan Zibel
01/03/2016
Alguem pra salva ?? rs
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
Junior Santos
01/03/2016
Alguem pra salva ?? rs
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
Junior Santos
01/03/2016
é isso que preciso mais so preciso acerta pra fixa o tamanho do corte pois ta redimensionando dependendo aonde clico
[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]
[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
Raylan Zibel
01/03/2016
Não seria isso?
x1 := Mouse.CursorPos.X - 1; y1 := Mouse.CursorPos.Y - 1; x2 := Mouse.CursorPos.X + 1; y2 := Mouse.CursorPos.Y + 1;
GOSTEI 0
Junior Santos
01/03/2016
Não seria isso?
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
Junior Santos
01/03/2016
Alguem?? rs
GOSTEI 0