Avatar billede hathor Nybegynder
28. april 2001 - 13:28 Der er 21 kommentarer og
1 løsning

Knap der flytter sig, når curseren bevæges over.

Hvordan laver man en knap der flytter sig når curseren bevæges over, og behøver man højere version end 3.0?
Avatar billede kaspikov Nybegynder
28. april 2001 - 13:39 #1
Prøv det her:

Procedure der flytter knappen op og ned:

Procedure TButton1.OnMouseOver(Sender: TObject);
begin
  if (Button1.Top <> 20) or (Button1.top <> 80 then
  Button1.Top := 20;
  Case Button1.Top do
  20: Button1.Top := 80;
  80: Button1.Top := 20;
  end;
end;

Det flytter knappen, du kan så ændre \'top\' til left\' hvis du vil.

Kaspikov
Avatar billede hathor Nybegynder
28. april 2001 - 13:43 #2
Er det 100% tilfældigt hvor knappen bliver sendt hen? Det der nemlig er ideen i dette program, er at man aldrig skal klikke på den - hvergang man kommer hen til knappen skal den igen forsvinde.
Avatar billede abpdk Nybegynder
28. april 2001 - 15:36 #3
Prøv at indsætte dette i Button1.onMouseMove

Button1.Left:=random(form1.clientwidth);
Button1.Top:=random(form1.clientheight);

Jeg kunne i hvert fald ikke klikke på den

MVH abpdk
Avatar billede abpdk Nybegynder
28. april 2001 - 15:37 #4
Den ER 100% tilfældig...
Avatar billede nico26 Nybegynder
28. april 2001 - 16:21 #5
Button1.Left:=random(form1.clientwidth - Button1.Width);
Button1.Top:=random(form1.clientheight - Button1.Height);

:)
Avatar billede abpdk Nybegynder
28. april 2001 - 20:26 #6
Ok ok...men det er en detalje...

:-)

MVH abpdk
Avatar billede ziron Nybegynder
28. april 2001 - 20:47 #7
hathor >> når nu du er igang med sådan noget sjov så husk nu lige at sætte tapstop til false :-)

kaspikov >> er det ikke denne procedure han skal bruge:

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);

/ZIRON
Avatar billede hathor Nybegynder
28. april 2001 - 22:23 #8
Jeg er nybengynder inden for delphi, så er der ikke lige nogen der gider at skrive det komplette stykke kode der skal bruges for at få sådan en knap - uden rettelser og uden tilføjelser. Så ville jeg bliver _MEGET_ glad!!!
Avatar billede ziron Nybegynder
28. april 2001 - 22:28 #9
sådan:

unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

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;

procedure TForm1.FormCreate(Sender: TObject);
begin
button1.TabStop := false;
end;

end.

/ZIRON
Avatar billede hathor Nybegynder
28. april 2001 - 23:20 #10
Knappen flytter sig altså ikke. Jeg slettede alt i formen og indsatte denne tekst - der sker ikke rigtigt noget. Jeg kan køre programmet den melder ikke fejl - men knappen bliver hvor den er!
Avatar billede ziron Nybegynder
28. april 2001 - 23:23 #11
prøv med:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Procedure TButton1.OnMouseOver(Sender: TObject);

    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Procedure TButton1.OnMouseOver(Sender: TObject);

begin
Button1.Left:=random(form1.clientwidth - Button1.Width);
Button1.Top:=random(form1.clientheight - Button1.Height);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
button1.TabStop := false;
end;

end.

jeg ved ikke hvordan det er i 3.0 jeg bruger 5.0...

men prøv lige..

/ZIRON
Avatar billede hathor Nybegynder
28. april 2001 - 23:30 #12
Der er en fejl ved første sted der står type, nærmere betegnet ved Procedure mellen OnMouseOver og (Sender: TObject);

fejlen er: Expected \'=\' but \'(\' found...

AAAARRRGHHHHH...Jeg ved ikke en skid om Delhii....

HJÆÆÆÆLP



   
Avatar billede nico26 Nybegynder
28. april 2001 - 23:39 #13
skift denne linie ud
Procedure TButton1.OnMouseOver(Sender: TObject);

med:
Procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);

og
Procedure TButton1.OnMouseOver(Sender: TObject);
begin
Button1.Left:=random(form1.clientwidth - Button1.Width);
Button1.Top:=random(form1.clientheight - Button1.Height);
end;

med:
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;

forbind derefter Button1\'s OnMouseMove event med denne procedure, ved at klikke på Button1, og derefter klikke på Events i object inspectoren, og klik så på OnMouseMove
Avatar billede ziron Nybegynder
28. april 2001 - 23:40 #14
jeg tror jeg ved hvad fejlen er...

du har din form og så clicker du på din knap og så i din objekt in... (den menu ting til højre) kliker du på events og der finder du OnMouseMove og der dobbelkliker du, så kommer du ud hvor du skal skrive kode og der indsætter du:

Button1.Left:=random(form1.clientwidth - Button1.Width);
Button1.Top:=random(form1.clientheight - Button1.Height

derefter går du ud hvor man desinger sin form og kliker på formen og går ud til højre igen og i events og så ved OnFormCreate dobbelkliker og indsætter så:

button1.TabStop := false;

og så skulle det virke... det er vis du har oprettet et helt nyt projekt og kun indsat en knap og du har ikke ændret nogen navne..

/ZIRON

Avatar billede ziron Nybegynder
28. april 2001 - 23:42 #15
mit er bedst nico22 :-)

/ZIRON
Avatar billede nico26 Nybegynder
28. april 2001 - 23:48 #16
Ziron>>du kan da ikke skrive sådan her i klassespecifikationen:
Procedure TButton1.OnMouseOver(Sender: TObject);
Avatar billede nico26 Nybegynder
28. april 2001 - 23:49 #17
desuden har en TButton ikke en mouseover event
Avatar billede ziron Nybegynder
28. april 2001 - 23:54 #18
nej men det var det som kaspikov forslg og jeg vidste ikke om det hed sådan i 3.0 :-)

/ZIRON
Avatar billede nico26 Nybegynder
29. april 2001 - 00:00 #19
Det har ikke noget med versionen at gøre, og klasseerklæringen er stadig forkert
Avatar billede ziron Nybegynder
29. april 2001 - 00:03 #20
okay så ved jeg det... og når ja det havde jeg ikke lige lagt mærke til, HOV håber det er okay :-)

/ZIRON
Avatar billede nico26 Nybegynder
29. april 2001 - 00:05 #21
okay med mig :)
Avatar billede hathor Nybegynder
29. april 2001 - 00:30 #22
Jeg ved ikke rigtig...Men Zirons er den første jeg har fået til at virke, så jeg tildeler ham pointene...Tusind tusind tak for hjælpen...:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester