Cortar Form
Bom dia pessoal, alguem saberia me dizer alguma forma de corta uma parte do form ??? ( seleciono uma parte do form com o mouse )
Junior Santos
Curtidas 0
Melhor post
Raylan Zibel
18/02/2016
Voce quer que enquanto estiver selecionando a area o cursor desenhe o pontilhado na area?
Isso mesmo.
Aqui: https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-133817.png[/img]
GOSTEI 2
Mais Respostas
Raylan Zibel
17/02/2016
Bom dia pessoal, alguem saberia me dizer alguma forma de corta uma parte do form ??? ( seleciono uma parte do form com o mouse )
Cortar tipo deixar um buraco no form ou cortar tipo capturar uma imagem da parte selecionada?
GOSTEI 0
Junior Santos
17/02/2016
Furar o form, tipo furar o form no local que tiver uma imagem ou panel ...
Tentei assim mais nao corto o form aonde ta o panel.
procedure TForm1.Button1Click(Sender: TObject);
var
Region, Region2 : hrgn;
x1,x2,y1,y2 : integer;
begin
x1 := Panel1.Top;
x2 := Panel1.Left;
y1 := panel1.Width;
y2 := panel1.Height;
Form1.FormStyle:= fsStayOnTop;
Region := CreaterectRgn(0,0,width,height);
Region2 := CreaterectRgn(x1,x2,y1,y2);
CombineRgn(region, region, region2, RGN_DIFF);
SetWindowRgn(handle, region, true);
end;
OBS: O Corte que quero fazer é quadrado
Tentei assim mais nao corto o form aonde ta o panel.
procedure TForm1.Button1Click(Sender: TObject);
var
Region, Region2 : hrgn;
x1,x2,y1,y2 : integer;
begin
x1 := Panel1.Top;
x2 := Panel1.Left;
y1 := panel1.Width;
y2 := panel1.Height;
Form1.FormStyle:= fsStayOnTop;
Region := CreaterectRgn(0,0,width,height);
Region2 := CreaterectRgn(x1,x2,y1,y2);
CombineRgn(region, region, region2, RGN_DIFF);
SetWindowRgn(handle, region, true);
end;
OBS: O Corte que quero fazer é quadrado
GOSTEI 0
Junior Santos
17/02/2016
ninguem ??? up
GOSTEI 0
Ricardo Araujo
17/02/2016
Bom dia Junior, Não conseguir entender também poderia tirar um print do Formulário, e depois poderia circular o que esta querendo fazer, acho que assim será mais fácil a gente entender tudo bem!
Att:
rbbarreto@hotmail.com
Att:
rbbarreto@hotmail.com
GOSTEI 0
Junior Santos
17/02/2016
opa, blz ja estou mandando.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
GOSTEI 0
Raylan Zibel
17/02/2016
opa, blz ja estou mandando.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-094229.png[/img]
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
Feito em Delphi 7.
GOSTEI 1
Junior Santos
17/02/2016
opa, blz ja estou mandando.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-094229.png[/img]
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
Feito em Delphi 7.
Opa eh tipo isso mesmo mais a diferença eh que queria furar o form podendo mexer noque esta atraz atraves do furo por isso tava usando aquela função la so o problema eh que nao tava furando no local que eu estava setando.
GOSTEI 0
Raylan Zibel
17/02/2016
opa, blz ja estou mandando.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-094229.png[/img]
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
Feito em Delphi 7.
Opa eh tipo isso mesmo mais a diferença eh que queria furar o form podendo mexer noque esta atraz atraves do furo por isso tava usando aquela função la so o problema eh que nao tava furando no local que eu estava setando.
Baixe o projeto e teste e valide se funciona como quer.
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
GOSTEI 1
Junior Santos
17/02/2016
opa, blz ja estou mandando.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-094229.png[/img]
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
Feito em Delphi 7.
Opa eh tipo isso mesmo mais a diferença eh que queria furar o form podendo mexer noque esta atraz atraves do furo por isso tava usando aquela função la so o problema eh que nao tava furando no local que eu estava setando.
Baixe o projeto e teste e valide se funciona como quer.
https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
Sim eu baixei ele e testei, como eu falei ele apenas mostra oque ta atraz, eu preciso interagir com oque esta atraz atraves desse burraco que no caso seria um buraco no formulario.
Exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWnd;
Region1, Region2: HRgn;
Rect: TRect;
begin
Wnd:=Application.MainForm.Handle;
GetWindowRect(Wnd,Rect);
Region1:=CreateRectRgn(0,0,Rect.Right-Rect.Left,Rect.Bottom-Rect.Top);
Region2:=CreateRectRgn(10,30,150,120);
CombineRgn(Region1,Region1,Region2,RGN_DIFF);
SetWindowRgn(Wnd,Region1,True);
end;
No caso iria usa o mouse pra seta o local e tamanho ou ate mesmo um panel que colocarei em cima do local do tamanho desejado.
GOSTEI 0
Raylan Zibel
17/02/2016
Teste agora: https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
GOSTEI 1
Junior Santos
17/02/2016
Teste agora: https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
Putz Perfeitamente... cara obrigado salvo eu aqui... obrigado de verdade...
EDT: so uma pergunta, aonde o mouse ta selecionando ah como fazer a janelinha igual o windows tem ?
GOSTEI 0
Raylan Zibel
17/02/2016
Teste agora: https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
Putz Perfeitamente... cara obrigado salvo eu aqui... obrigado de verdade...
EDT: so uma pergunta, aonde o mouse ta selecionando ah como fazer a janelinha igual o windows tem ?
Perdão, não entendi exatamente o que precisa.
GOSTEI 1
Raylan Zibel
17/02/2016
Voce quer que enquanto estiver selecionando a area o cursor desenhe o pontilhado na area?
GOSTEI 1
Junior Santos
17/02/2016
Voce quer que enquanto estiver selecionando a area o cursor desenhe o pontilhado na area?
Isso mesmo.
GOSTEI 0
Raylan Zibel
17/02/2016
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, xpman; type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } x1, y1, x2, y2: Integer; ptnd: Boolean; AnchorX, AnchorY, CurX, CurY: Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const vH: Byte = 10; vV: Byte = 30; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x1 := x + vH; y1 := y + vV; ptnd := True; AnchorX := X; CurX := X; AnchorY := Y; CurY := Y; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var region1, region2: hrgn; begin x2 := x + vH; y2 := y + vV; //if Shift = [ssCtrl] then begin region1 := CreateRectRgn(0, 0, Self.Width, Self.Height); region2 := CreateRectRgn(x1, y1, x2, y2); CombineRgn(region1, region1, region2, RGN_DIFF); SetWindowRgn(Handle, region1, True); end; if ptnd then begin ptnd := False; Canvas.Pen.Mode := pmNot; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Caption := 'x1: ' + IntToStr(x1) + '; y1 ' + IntToStr(y1) + '; x2 ' + IntToStr(x2) + '; y2 ' + IntToStr(y2) + ';'; if ptnd then begin Canvas.Pen.Mode := pmNot; Canvas.Pen.Width := 2; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); CurX := X; CurY := Y; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; end.
GOSTEI 2
Junior Santos
17/02/2016
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, xpman; type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } x1, y1, x2, y2: Integer; ptnd: Boolean; AnchorX, AnchorY, CurX, CurY: Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const vH: Byte = 10; vV: Byte = 30; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x1 := x + vH; y1 := y + vV; ptnd := True; AnchorX := X; CurX := X; AnchorY := Y; CurY := Y; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var region1, region2: hrgn; begin x2 := x + vH; y2 := y + vV; //if Shift = [ssCtrl] then begin region1 := CreateRectRgn(0, 0, Self.Width, Self.Height); region2 := CreateRectRgn(x1, y1, x2, y2); CombineRgn(region1, region1, region2, RGN_DIFF); SetWindowRgn(Handle, region1, True); end; if ptnd then begin ptnd := False; Canvas.Pen.Mode := pmNot; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Caption := 'x1: ' + IntToStr(x1) + '; y1 ' + IntToStr(y1) + '; x2 ' + IntToStr(x2) + '; y2 ' + IntToStr(y2) + ';'; if ptnd then begin Canvas.Pen.Mode := pmNot; Canvas.Pen.Width := 2; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); CurX := X; CurY := Y; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; end.
Putz brother obrigado de verdade salvo eu aqui =D
GOSTEI 1
Raylan Zibel
17/02/2016
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg, xpman; type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private declarations } x1, y1, x2, y2: Integer; ptnd: Boolean; AnchorX, AnchorY, CurX, CurY: Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const vH: Byte = 10; vV: Byte = 30; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x1 := x + vH; y1 := y + vV; ptnd := True; AnchorX := X; CurX := X; AnchorY := Y; CurY := Y; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var region1, region2: hrgn; begin x2 := x + vH; y2 := y + vV; //if Shift = [ssCtrl] then begin region1 := CreateRectRgn(0, 0, Self.Width, Self.Height); region2 := CreateRectRgn(x1, y1, x2, y2); CombineRgn(region1, region1, region2, RGN_DIFF); SetWindowRgn(Handle, region1, True); end; if ptnd then begin ptnd := False; Canvas.Pen.Mode := pmNot; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Caption := 'x1: ' + IntToStr(x1) + '; y1 ' + IntToStr(y1) + '; x2 ' + IntToStr(x2) + '; y2 ' + IntToStr(y2) + ';'; if ptnd then begin Canvas.Pen.Mode := pmNot; Canvas.Pen.Width := 2; Canvas.Brush.Style := bsClear; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); CurX := X; CurY := Y; Canvas.Rectangle(AnchorX, AnchorY, CurX, CurY); end; end; end.
Putz brother obrigado de verdade salvo eu aqui =D
Velho...
pra que diabos você precisa disso??
kk
GOSTEI 0
Junior Santos
17/02/2016
Opa Raylan, obrigado pela força que deu ajudo muito estou fazendo um programa que trabalha junto com um jogo online.
Tenho uma nova pergunta, Sabe me dizer como faço para o click atravessar o form ou como posso fazer um furo de 1x1 no local que eu clica?
desde já, Obrigado.
Tenho uma nova pergunta, Sabe me dizer como faço para o click atravessar o form ou como posso fazer um furo de 1x1 no local que eu clica?
desde já, Obrigado.
GOSTEI 0
Raylan Zibel
17/02/2016
Opa Raylan, obrigado pela força que deu ajudo muito estou fazendo um programa que trabalha junto com um jogo online.
Tenho uma nova pergunta, Sabe me dizer como faço para o click atravessar o form ou como posso fazer um furo de 1x1 no local que eu clica?
desde já, Obrigado.
Tenho uma nova pergunta, Sabe me dizer como faço para o click atravessar o form ou como posso fazer um furo de 1x1 no local que eu clica?
desde já, Obrigado.
Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
GOSTEI 0
Ferreira
17/02/2016
Excelente post!
GOSTEI 0
Joaci Gomes
17/02/2016
O Programa não fica muito pesado?
GOSTEI 0
Diego
17/02/2016
Voce quer que enquanto estiver selecionando a area o cursor desenhe o pontilhado na area?
Isso mesmo.
Aqui: https://www.dropbox.com/s/a80fcxs0qzhxgnp/buraco%20no%20formulario.rar?dl=0
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-133817.png[/img]
Tenho uma dúvida, parecida porém não consegui baixar pelo link acima. Alguém ainda estar ativo referente a esse Tópico?
GOSTEI 0