Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi desejo criar o famoso mouse fujão


Posts recomendados

Então guys, quero fazer um programa que quando passar o mouse em cima do botão, o botão vá para uma "coordenada" (x e y) randômica. Comecei fazendo com OnMouseEnter mas não consegui completar. Infelizmente sou um completo ignorante ainda com essa linguagem (e semi-completo com as outras).

Gostaria também de marcar a posição tanto do botão quando a do mause (seria a função das duas labels no código abaixo).

 

A seguir meu programa que levei cerca de  meia hora para fazer e desisti na metade do caminho:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button1MouseEnter(Sender: TObject);
    procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

var
    centroX: integer;
    centroY: integer;
procedure TForm1.Label1Click(Sender: TObject);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

procedure TForm1.Button1MouseEnter(Sender: TObject);
begin
   

   Button1.Left:=Random(Form1.Clientwidth - Button1.width);
   Button1.Top:=Random(Form1.Clientheight - Button1.height);

end;
procedure TForm1.FormCreate(Sender: TObject);
begin

   label2:=
   button1.GetDefaultHeight;
button1.GetDefaultWidth;

end;

Se alguém puder me dar uma luz (mesmo que seja uma pequena dica), agradeço!

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
unit projeto_mover_mouse_3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close();
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Button1.Left := Random(Form1.Clientwidth  - Button1.width);
  Button1.Top  := Random(Form1.Clientheight - Button1.height);
end;

end.

@winzero    seu código está bom ,  e para mover o botão seria isso mesmo ,  você precisa usar o evento OnMouseMove , e para isso dê dois click nesse evento no local do quadrado branco , e coloque o código de mover o botão dentro dessa procedure  ,  então seu código com algumas modificações poderia ser assim  :

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!