Komponent przesuwający się

vcs

Cel :
Chcemy uzyskać efekt przesuwającej się piłeczki po pulpicie naszego programu, wzdłuż drogi poziomej.


Potrzebne komponenty :
Nazwa
Klasa

Timer1
 TTimer
 
Kolo
 TShape
 

Metoda :
1) Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"

2) Klikamy na puste pole formularza i w zakładce Events klikamy dwa razy na zdarzenie OnActive. Dopisujemy poniższy kod:

prawo := true; 

3) W kodzie źródłowym znajdujemy napis " implementation ". Pod nim wpisujemy poniższy kod:

var 
prawo : Boolean; 

4) Do obsługi zdarzenia OnTimer komponentu Timer1 dodajemy kod:

procedure TForm1.Timer1Timer(Sender: TObject);
var 
X : integer; 
begin
if prawo = true then Kolo.left := kolo.left + 10; 
if prawo = false then Kolo.left := kolo.left - 10; 
if kolo.left = 0 then prawo := true; 
X := form1.width - kolo.width - kolo.width; 
if kolo.left >= X then prawo := false; 
end;

5) Właściwość Interval komponent Timer1 ustawiamy na 100

6) Uruchamiamy program


Kod źródłowy :

unit Unit1;
 
interface 
 
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
ExtCtrls; 
 
type 
TForm1 = class(TForm) 
Kolo: TShape; 
Timer1: TTimer; 
procedure Timer1Timer(Sender: TObject); 
procedure FormActivate(Sender: TObject); 
private 
{ Private declarations }
public 
{ Public declarations } 
end; 
 
var 
Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
var 
prawo : Boolean; 
 
procedure TForm1.Timer1Timer(Sender: TObject); 
var 
X : integer; 
begin 
if prawo = true then Kolo.left := kolo.left + 10; 
if prawo = false then Kolo.left := kolo.left - 10; 
if kolo.left = 0 then prawo := true; 
X := form1.width - kolo.width - kolo.width; 
if kolo.left >= X then prawo := false; 
end; 
 
procedure TForm1.FormActivate(Sender: TObject); 
begin 
prawo := true; 
end; 
 
end.

9 komentarzy

a mnie się podoba

A jak zrobić, żeby ta piłka latała jeszcze w górę i w dół, odbijała się od jakiś przeszkód. Jestem początkujący więc proszę o wyrozumiałość.

Może i został napisany 3 lata temu, a ja sądzę, że tamten mój kurs został napisany jeszcze wcześniej. Ale dobra, ja się nie kłucę.

Coldpeer: ten artykuł został napisany ponad 3 lata temu....

czy mi się zdaje czy jest to plagiat ???!!! :> Jak zaczynałem z Delphi natrafiłem na taki tutorial o takiej samej treści!
BTW: Pkt "Potrzebne komponenty" - tam była ładna tabelka a nie <code> :/

  1. To banalne na co komu ?
  2. Gdzie się podział tag delphi
  3. Jednym słowem 1 :( niestety
    Może następny artykół będzie lepszy :(

..:: Witam ::..
Fajny artykuł, ale trzeba przypomnieć o paru ale:

  • zamiast
    Kolo {TShape }
    można użyć
    Kolo {TImage } - i wstawić sobie jakiś obrazek

  • co ważne - jest tu błąd, a dlaczego - prosze ustawić Shape na pozycji 1-9 (np. left=232) i wtedy left - 10 = 232, i nigdy nie bęzie left = 0 lecz left=2 (obraz porusza się w lewą stronę wnieskończone)
    ! jedynie obrazek będzie obracał się przy pozycji left = 0, 10, 20, 30, etc.

wyjście:

if kolo.left <= 0 then prawo := true;

przecież to jest Banalne :) Po co to komu ?

WOW niezle :-) 2+ :-l