Programowanie w języku Delphi » Gotowce

Komponent przesuwający się

  • 2006-05-15 20:41
  • 9 komentarzy
  • 654 odsłony
  • Oceń ten tekst jako pierwszy
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

kedlaw07 2008-08-20 08:13

a mnie się podoba

Tempina 2006-11-12 13:23

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ść.

Coldpeer 2006-07-01 14:41

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ę.

WeeR 2006-05-18 20:27

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

Coldpeer 2006-05-15 21:25

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> :/

Mike-89 2003-11-22 20:32

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 :(

jas_dream 2003-06-14 09:26

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

psychoszayber 2003-06-11 19:45

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

Drajwer 2003-05-05 17:57

WOW niezle :-) 2+ :-l