Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SchleifenCode gibts sowas? (https://www.delphipraxis.net/30957-schleifencode-gibts-sowas.html)

Wargrave 1. Okt 2004 18:19


SchleifenCode gibts sowas?
 
HAlli HAllo!
Habe jetzt Informatik.Bin in der Sekundarstufe2 und bracuhe nu Hilfe.
Wir haben so Tag NAcht Progrmme geschrieben.Vielleicht kennt das einer.
So es wird ein Timer gepflanzt und dann Wander ein Icon (Wolke) um Wolke.Left+10 schritte halt weiter.wobei man ja mit dem timer den intervall angibt.
Nun will ich aber das die wolke wenn sie den bildrand erreicht hat wieder auf der anderen seite rauskommt.sowas wie "marquee" im html.kann mir jemand den code dazu sagen? würde mich sehr freuen.

Danke schonmal

Mfg der Wargrave

auf gut deutsch ich bin laie.ich verkauf das dumme programm ja nich!
mein gott... aber egal. kann man das mit : if (Wolke.Left:=Wolke.LEft+400)
then begin
Wolke.LEft:=Wolke.LEft????

flomei 1. Okt 2004 18:20

Re: Brauche Programmier-Code!
 
Herzlich Willkommen in der Delphi-PRAXIS!

Leider ist dies kein Forum in dem man einfach so den Quellcode geschenkt bekommt (Also wird dir hier niemand deine Hausaufgaben machen...) Wenn du uns jedoch sagst wo genau das Problem liegt, dann wird jeder der kann versuchen zu helfen...

MfG Florian :hi:

Luckie 1. Okt 2004 18:22

Re: Brauche Programmier-Code!
 
Hm. Dann frag doch ab, wann die Wolke den rechten Fensterrand erreciht hat und wenn sie ihn erreicht hat, setzt die Koordinaten wieder auf 0.

alcaeus 1. Okt 2004 18:23

Re: Brauche Programmier-Code!
 
Hi WarGrave,

nimm Florian mal nicht so ernst ;)
Zeig mal bitte den Code, wie du die Wolke verschiebst. Normalerweise gehts so
Delphi-Quellcode:
if DeineVariableFuerDiePosition > 1024 then //oder was auch immer der rechte Rand ist
  DeineVariableFuerDiePosition := 0;
Allerdings wäre ein bisschen Code nicht ganz schlecht, da wir ja nicht wissen können welche Komponenten du verwendest.

Greetz
alcaeus

[edit]:shock: was soll den der Titel jetzt?[/edit]
Bitte verwende einen sinnvollen Titel, wie zum Beispiel der, den du vorher hattest :roll:

Aenogym 1. Okt 2004 18:24

Re: Brauche Programmier-Code!
 
hallo und herzlich willkommen in der DP :hi: !

du musst erstmal eine variable definieren, die die richtung angibt. sie ist vom typ integer.
1 bedeutet dann nach links, -1 bedeutet ach rechts.
im OnTimer-Ereignis fragst du vor dem verschieben die aktuelle position der wolke ab. wenn sie am rand ist, dann wird die richtung umgedreht.

so sollte es funktionieren:

Delphi-Quellcode:
var direction: integer;

{...}

//onTimer-Ereignis:
begin
  if (wolke.left = 0) or (wolke.left = form1.clientwidth-wolke.width) then
    direction := direction * -1;

  wolke.left := wolke.left + 10*direction;
end;
edit: oh mein gott... dieser titel... "45 Jahre alte frau mit auto erschlagen!" :?:
edit2: was soll das mit dem titel???

Aenogym

Wargrave 1. Okt 2004 18:28

Re: SchleifenCode gibts sowas?
 
Delphi-Quellcode:
unit Utagnacht5;

interface

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

type
  TForm1 = class(TForm)
    Wolke: TImage;
    Timer: TTimer;
    Button1: TButton;
    procedure TimerTimer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TimerTimer(Sender: TObject);
begin
    if (Timer.enabled=true)

then begin
   Wolke.Left:=Wolke.Left+10;
end
end;

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

end.
[edit=Luckie][ delphi]-Tags eingefügt. Mfg, Luckie[/edit]

Aenogym 1. Okt 2004 18:29

Re: SchleifenCode gibts sowas?
 
hey,

kleine info: farge stellen - okay. zum ersten mal etwas ungenau das problem definiert - okay.
aber dann den titel alle zwei sekunden zu ändern und hoffen, dass jemand das liest und in der shoutbox noch auf den thread in weisen... BITTE NICHT! du hast bei der anmeldung doch die foren-regeln gelesen?

edit: mein obiger code sollte funktionieren.
und beim nächsten mal bitte den [ delphi] -tag verwenden, damit dein code auch schön aussieht.

Aenogym...

alcaeus 1. Okt 2004 18:38

Re: SchleifenCode gibts sowas?
 
Hi WarGrave,

[quote="Wargrave"]
Delphi-Quellcode:
procedure TForm1.TimerTimer(Sender: TObject);
begin
    if (Timer.enabled=true)

then begin
   Wolke.Left:=Wolke.Left+10;
end
end;
Die if-Abfrage in deinem Code ist unsinnig, da das Timer-Ereignis nur ausgelöst wird, wenn Timer.Enabled auch true ist.
Nach dem Wolke.Left:=... brauchst du nur noch folgenden Code einfügen:
Delphi-Quellcode:
if Wolke.Left+Wolke.Width > Form1.ClientWidth then
  Wolke.Left := 0;
Greetz
alcaeus

Wargrave 1. Okt 2004 18:54

Re: SchleifenCode gibts sowas?
 
Naja irgendwie klappts immer noch nich weiß nciht geanu was ich jetzt im code löschen muss. und bei dem then da mus doch auch ein begin hin ? oder nich?
also ich will vol 0 bis 680 in der breite wandern. wie sehe das dann mit variablen aus? Hilfe ich bin Noob.

Danke erstmal

alcaeus 1. Okt 2004 18:56

Re: SchleifenCode gibts sowas?
 
Hi Wargrave,

nein, das begin muss nur hin, falls du mehr als eine Anweisung bedingt (also mit dem if) ausführen willst.

Hier der Code des OnTimers:
Delphi-Quellcode:
procedure TForm1.TimerTimer(Sender: TObject);
begin
  Wolke.Left:=Wolke.Left+10; //nach rechts verschieben
  if Wolke.Left > 680 then //ist die Wolke ganz rechts?
    Wolke.Left := 0; //wenn ja, dann kommt sie wieder ganz nach links
end;
Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz