TrackBar – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

TrackBar – Delphi – Fórum – Programujte.comTrackBar – Delphi – Fórum – Programujte.com

 

Aqua0
Newbie
6. 1. 2011   #1
-
0
-

Zdravím vás, zase já. :smile1: Potřebovala bych poradit s programem, který simuluje závody. Jde o to, že po nastavení velikosti závodníků (SpinEdit1) a jejich formátu (kruhy nebo čtverce - RadioButtony) se po stisku tlačítka Button1 spustí závod, který lze přeručit stiskem tlačítka Button3. Mimo tohle má jít zvyšovat rychlost pomocí TrackBaru, ale bohužel netuším, jak jej tam napojit (hádám, že přes vlastnost OnChange, ale nevím jak). U závodníků má jít také měnit barva(Button2), což mi také pracuje. Přes Memo tam mají jít uložit nějaké údaje o hráči, to je snad také v pořádku (na Buttonu4). Můj velký problém tedy spočívá v TrackBaru a v tom, že pomocí SpinEdit2 má jít měnit počet závodníků (tedy kruhů nebo čtverců). Neporadili byste mi prosím? Pokud by bylo potřeba hodím sem obrázek programu.



unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Label6: TLabel;
Image1: TImage;
Label7: TLabel;
Label8: TLabel;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label9: TLabel;
Button2: TButton;
ColorDialog1: TColorDialog;
SaveDialog1: TSaveDialog;
SpinEdit1: TSpinEdit;
Button3: TButton;
Timer1: TTimer;
Memo1: TMemo;
Button4: TButton;
Label1: TLabel;
SpinEdit2: TSpinEdit;
TrackBar1: TTrackBar;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure Uloit1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

TKruh = class
public
constructor Create;
end;






var
Form1: TForm1;
x,y,a,b,sx,sy,cil,h,v:integer;
barva: TColor;

implementation

{$R *.dfm}



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

procedure TForm1.Button2Click(Sender: TObject); //ZMENA BARVY
begin
if ColorDialog1.Execute then barva:=ColorDialog1.Color ;
image1.Canvas.Pen.Color:=barva;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

procedure TForm1.Button4Click(Sender: TObject); //ULOZENI
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
form1.image1.Canvas.Brush.Color:=clwhite;
x:=20 ; //ROZMĚRY
sx:=20 ;
y:=Form1.ClientHeight div 2;
sy:=Form1.ClientHeight div 2;

cil:=form1.ClientWidth - 50;

a:= random(50); //RYCHLOSTI ZÁVODU
b:= random(50);

Button3.Enabled:=false;
Timer1.Enabled:=false;
Memo1.Text:='';
end;

procedure TForm1.SpinEdit1Change(Sender: TObject); //VELIKOST ZAVODNIKU
begin
h:=SpinEdit1.Value;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Timer1.Enabled then
if (x<cil) and (sx<cil) then
begin
repaint;
Canvas.Pen.Width:=3;
canvas.Rectangle(cil,y-10,cil+15,y+30); //VYKRESLENÍ CÍLE
canvas.Brush.Style:=bsClear;

if RadioButton1.Checked then //KRUH
begin
canvas.Pen.Color:=barva;
canvas.Ellipse(x,y,x+h,y+h);
canvas.Pen.Color:=barva;
canvas.Ellipse(sx,sy,sx+h,sy+h);
end;

if RadioButton2.Checked then //CTVEREC
begin
canvas.Pen.Color:=barva;
canvas.Rectangle(x,y,x+h,y+h);
canvas.Pen.Color:=barva;
canvas.Rectangle(sx,sy,sx+h,sy+h);
end;

x:=x+a;
sx:=sx+b;
end //KDO VYHRAL
else begin
timer1.Enabled:=false;
if a=b then
begin
showmessage('Nikdo nevyhrál.');
timer1.Enabled:=false
end;
if b>a then
begin
showmessage('Vyhrál závodník 2.');
timer1.Enabled:=false
end;
if a>b then
begin
showmessage('Vyhrál závodník 1.');
timer1.Enabled:=false
end;
end; //KONEC KDO VYHRAL
end;

procedure TForm1.Uloit1Click(Sender: TObject); //ULOZENI UDAJU
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;

constructor TKruh.Create;
begin
x:=20 ;
y:=Form1.ClientHeight div 2;
end;



procedure TForm1.TrackBar1Change(Sender: TObject);
begin
v:=TrackBar1.Position;
label2.Caption:=inttostr(v);
//a:= a+v;
//b:= b+v;
end;

end.

Nahlásit jako SPAM
IP: 90.179.164.–
Šest programátorských zákonů: 1. V každém programu je alespoň jedna chyba. 2. Každý program lze zkrátit alespoň o jeden řádek. 3. Nejjednodušší chyby se nejhůře hledají. 4. Každou opravou se do programu zanese nová chyba. 5. Když už se zdá, že program je v pořádku, určitě jsme něco přehlédli. 6. Programátor dělá, co umí. Počítač si dělá, co chce.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý