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 :
-
Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"
-
Klikamy na puste pole formularza i w zakładce Events klikamy dwa razy na zdarzenie OnActive. Dopisujemy poniższy kod:
prawo := true;
- W kodzie źródłowym znajdujemy napis " implementation ". Pod nim wpisujemy poniższy kod:
var
prawo : Boolean;
- 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;
-
Właściwość Interval komponent Timer1 ustawiamy na 100
-
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.
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>
:/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