Avatar billede bibelskolen Nybegynder
07. august 2001 - 09:26 Der er 12 kommentarer og
1 løsning

løkker-2

procedure flyt;
                      begin
                      form1.Memo1.Top:=x;
                      form1.Memo1.left:=y;
                      x:=x+1;
                      y:=y+1;
                      flyt;
                      end;

hvordan standser jeg disse to løkker ?????
Avatar billede morten_s Nybegynder
07. august 2001 - 09:28 #1
Du kalder dig selv rekursivt i denne linie

procedure flyt;
                      begin
                      form1.Memo1.Top:=x;
                      form1.Memo1.left:=y;
                      x:=x+1;
                      y:=y+1;
                      flyt; <-----HER
                      end;


slet linien flyt
Avatar billede borrisholt Novice
07. august 2001 - 09:30 #2
det gør du ved at sige fx :


procedure flyt;
begin
  form1.Memo1.Top:=x;
  form1.Memo1.left:=y;
  x:=x+1;
  y:=y+1;
  if x< 200 then
    flyt; 
end;

Jens B
Avatar billede morten_s Nybegynder
07. august 2001 - 09:33 #3
Hvis du ved hvor du vil flytte din Memo hen så udvid din procedure sådan her

procedure flyt(X, Y : Integer);
begin
  form1.Memo1.Top:=x;
  form1.Memo1.left:=y;
end;

når du så kalder din flyt et andet sted i programmet gør du det sådan her

flyt(200,200) {flytter din memobox til pos 200, 200 }
Avatar billede borrisholt Novice
07. august 2001 - 09:35 #4
Ellers er der jo altid inginør løsningen. Hvor du bereger en vector.

Skulle nogen have interesse heri vil jeg da gerne være vært ved en sådan løsning.

Jeg kan selv sige det : At beregne en vector vil være over kill til denne opgave !

Jens B
Avatar billede morten_s Nybegynder
07. august 2001 - 09:38 #5
Hvis du bare vil have din form dukker op på midten af skærmen kan du klikke på den gå ind i properties og under position vælge poScreenCenter

Så er det klaret...uden vektor

mvh Ingeniøren

Avatar billede borrisholt Novice
07. august 2001 - 09:40 #6
morten_s >> Det var nu ikke for at svine nogen til ...Det var nu mere for sjov skyld jeg foreslog man skulle bruge en Vector til at flytte et komponent med ....

Jeg er så riggeligt klar over det kan lade sig gøre uden !
:-)

Jens B
Avatar billede bibelskolen Nybegynder
07. august 2001 - 10:55 #7
jeg har desværre ikke udtrykt mig klart eller præcist nok, og derfor kan jeg heller ikke få et svar der kan bruges, men det jeg ønsker er at memo1 skal bevæge sig skråt ned over skærmen indtil den når bunden af skærmen (260)
hvis jeg helt fjerner flyt bevæger memoen sig ikke
jeg mener at
if x < 260 then
flyt;
end;

skulle være løsningen, men den fortsætter, det vil dog  sige at den begynder forfra og fortsætter på denne måde
men måske er det nødvendig, at jeg viser, sender hele programmet?

Avatar billede borrisholt Novice
07. august 2001 - 10:57 #8
bibelskolen>> Send lige det hele til Jens@Borrisholt.com

Jens B
Avatar billede morten_s Nybegynder
07. august 2001 - 10:58 #9
Hvorfra/hvordan kalder du flyt ?
Avatar billede bibelskolen Nybegynder
07. august 2001 - 11:23 #10
hej borrisholt jeg har forsøgt at sende en e-mail til dig, men uden held, derfor kommer programmet her

hej Jens.
jeg antager at det er et udprint af programmet du ønsker? eller var det et kopi af
selve programmet?
hilsen
hans


unit falder;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
x: integer;
y: integer;
h: integer;
b: integer;
implementation

{$R *.DFM}

procedure slut;
begin
form1.color:=clred;
form1.memo2.color:=clblue;
  {her var det så meningen at programmet skulle standse
  det vil sige, med at bevæge sig, og gå vidre til andre
  opgaver  }
end;

procedure frasiden;
begin
form1.memo2.Visible:=true;
form1.memo2.top:=x;
form1.Memo2.left:=y;
form1.Memo2.height:=h;
form1.memo2.width:=b;
x:=x + 1;
y:=y - 1;
h:=h + 1;
b:=b + 1;
if x < 250 then
frasiden;
slut;
end;

procedure esther;
begin
form1.Memo1.color:=clgreen;
x:= 10;
y:= 750;
h:= 22;
b:= 22;
frasiden;
end;

procedure flyt;
begin
form1.memo1.Visible:=true;
form1.memo1.top:=x;
form1.Memo1.left:=y;
form1.Memo1.height:=h;
form1.memo1.width:=b;
x:=x + 1;
y:=y + 1;
h:=h + 1;
b:=b + 1;
if x < 250 then
flyt;
esther;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Button1.Visible:=false;
form1.memo1.Visible:=false;
form1.memo2.Visible:=false;
x:= 2;
y:= 2;
h:= 22;
b:= 22;
flyt;
end;


end.


Avatar billede borrisholt Novice
07. august 2001 - 11:32 #11
prøv lige igen .. Det må være noget galt med din internet forbindelse ..

Jens B
Avatar billede nico26 Nybegynder
07. august 2001 - 15:36 #12
procedure flyt;
begin
form1.memo1.Visible:=true;
form1.memo1.top:=x;
form1.Memo1.left:=y;
form1.Memo1.height:=h;
form1.memo1.width:=b;
x:=x + 1;
y:=y + 1;
h:=h + 1;
b:=b + 1;

if x < 250 then
  flyt
else
  esther;

end;

måske
Avatar billede bibelskolen Nybegynder
07. august 2001 - 16:22 #13
ET  MEGET  STORT  TAK  TIL  borrisholt der får de 30 poing, selv om nico22 måske burde have haft nogle af dem da det også er en brugbar løsning, men desværre nico22, borrisholt var en anelse hurtigere en du, men alligevel et STORT TAK til dig også!
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