Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Delphi!!! pomoć

[es] :: Pascal / Delphi / Kylix :: Delphi!!! pomoć

[ Pregleda: 5154 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tušek
Krunoslav Tušek
DONJA šEMNICA

Član broj: 37430
Poruke: 1
*.cmu.carnet.hr.



Profil

icon Delphi!!! pomoć26.10.2004. u 19:55 - pre 237 meseci
u škloi imamo zadatak napraviti njihalo koje bi nakon nekog vremena zbog nekog otpora trebalo prestati sa njihanjem, ja sam napravio njihalo ali ne znam kako ga nakon nekog vremena zaustaviti. molim pomoć!!!


unaprijed zahvaljujem


ovo sam do sad napravio


unit Unit1;

interface

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

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
x0:real=320;
y0:real=240;
alfa:real=(pi/6);
l:real=3;
ex:real=60;
ey:real=60;
deltaalfa:real=-0.1;


implementation


{$R *.dfm}


procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Canvas.Pen.Color:=clbtnface;
form1.canvas.moveto(trunc(x0),trunc(y0));
form1.Canvas.lineto(trunc(x0-l*sin(alfa)*ex),trunc(y0+l*cos(alfa)*ey));
form1.canvas.Ellipse(trunc(x0-l*sin(alfa)*ex-5),trunc(y0+l*cos(alfa)*ey-5),trunc(x0-l*sin(alfa)*ey+5),trunc(y0+l*cos(alfa)*ey+5));
alfa:=alfa+deltaalfa;

if (alfa<(-pi/3)) or (alfa>(pi/3)) then
alfa:=alfa-0.01;
deltaalfa:=-deltaalfa;
form1.Canvas.Pen.Color:=clblue;
form1.canvas.moveto(trunc(x0),trunc(y0));
form1.Canvas.lineto(trunc(x0-l*sin(alfa)*ex),trunc(y0+l*cos(alfa)*ey));
form1.canvas.Ellipse(trunc(x0-l*sin(alfa)*ex-5),trunc(y0+l*cos(alfa)*ey-5),trunc(x0-l*sin(alfa)*ey+5),trunc(y0+l*cos(alfa)*ey+5));

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
 
Odgovor na temu

Slavisa
Slavisa Dojcinovic
JKP Cistoca
Banjaluka

Član broj: 9861
Poruke: 44
*.teleklik.net.



Profil

icon Re: Delphi!!! pomoć26.10.2004. u 20:57 - pre 237 meseci
Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := FALSE;
end;

Slavisa
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
195.252.103.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Delphi!!! pomoć27.10.2004. u 01:16 - pre 237 meseci
bratance, mnogo si ga zakomplikovao. evo probaj ovako:
stavi image1 dimenzija 400 x 300 na formu i timer1 sa intervalom 50ms

klatno se krece izmedju uglova min i pi - min, sa pocetnim uglom pi/2. probaj neke druge vrednosti ako hoces...d ti je pravac, +1 za levo, -1 za desno (ili obrnuto). kada se stigne do kraja menja se pravac ali se i koriguje min ugao zbog uticaja otpora. to bi moglo i u svakom koraku da se radi ali za manje vrednosti...skoro svejedno.

Code:

var
  Min: extended = pi/4;
  alfa: extended = pi/2;
  d: extended = -1;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if ((alfa > min) and (d = -1)) or ((alfa < pi - min) and (d = 1)) then
   begin
     alfa := alfa + d * 0.1;
     Image1.Canvas.Rectangle(0, 0, 400, 300);
     Image1.Canvas.MoveTo(200, 0);
     Image1.Canvas.LineTo(Round(200 + 200* cos(alfa)), Round(300 * sin(alfa)));
     Image1.Refresh;
   end
  else
   begin
     d := -d;
     min := min + 0.05;
     Timer1.Interval := Timer1.Interval + 2;
   end;
end;

nisam crtao i lopticu, to mozes i sam...samo linija koja se klati

pozdravi
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Delphi!!! pomoć

[ Pregleda: 5154 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.