Fórum Cortar Form #545977
17/02/2016
0
Junior Santos
Curtir tópico
+ 0Post mais votado
18/02/2016
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]
Raylan Zibel
Gostei + 2
Mais Posts
17/02/2016
Raylan Zibel
Cortar tipo deixar um buraco no form ou cortar tipo capturar uma imagem da parte selecionada?
Gostei + 0
17/02/2016
Junior Santos
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
17/02/2016
Junior Santos
Gostei + 0
18/02/2016
Ricardo Araujo
Att:
rbbarreto@hotmail.com
Gostei + 0
18/02/2016
Junior Santos
EDT: Ja mandei no seu email.
Desde ja, Obrigado.
Gostei + 0
18/02/2016
Raylan Zibel
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
18/02/2016
Junior Santos
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
18/02/2016
Raylan Zibel
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
18/02/2016
Junior Santos
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
18/02/2016
Raylan Zibel
[img:descricao=print]http://arquivo.devmedia.com.br/forum/imagem/244662-20160218-113036.png[/img]
Gostei + 1
18/02/2016
Junior Santos
[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
18/02/2016
Raylan Zibel
[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
18/02/2016
Raylan Zibel
Gostei + 1
18/02/2016
Junior Santos
Isso mesmo.
Gostei + 0
18/02/2016
Raylan Zibel
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
Clique aqui para fazer login e interagir na Comunidade :)