Cortar Form

Delphi

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 )
Junior Santos

Junior Santos

Curtidas 0

Melhor post

Raylan Zibel

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

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

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
GOSTEI 0
Junior Santos

Junior Santos

17/02/2016

ninguem ??? up
GOSTEI 0
Ricardo Araujo

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
GOSTEI 0
Junior Santos

Junior Santos

17/02/2016

opa, blz ja estou mandando.

EDT: Ja mandei no seu email.
Desde ja, Obrigado.
GOSTEI 0
Raylan Zibel

Raylan Zibel

17/02/2016

opa, blz ja estou mandando.

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

Junior Santos

17/02/2016

opa, blz ja estou mandando.

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

Raylan Zibel

17/02/2016

opa, blz ja estou mandando.

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

Junior Santos

17/02/2016

opa, blz ja estou mandando.

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

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]
GOSTEI 1
Junior Santos

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]


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

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]


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

Raylan Zibel

17/02/2016

Voce quer que enquanto estiver selecionando a area o cursor desenhe o pontilhado na area?
GOSTEI 1
Junior Santos

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

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

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

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

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.
GOSTEI 0
Raylan Zibel

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.


Tente usar Mouse.CursorPos.X e Mouse.CursorPos.Y pra definir o corte.
GOSTEI 0
Ferreira

Ferreira

17/02/2016

Excelente post!
GOSTEI 0
Joaci Gomes

Joaci Gomes

17/02/2016

O Programa não fica muito pesado?
GOSTEI 0
Diego

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
POSTAR