Stránka 1 z 1
Pozte mi v Delphi
Napsal: pát 5. srp 2005, 08:00
od tereza
Začínám dělat práci v Delphi 7. Bohužel ne, protože chci, ale protože musím. Teď mám první problém. Potřebuju získat nějak náhodné číslo.
Pokud to jde, tak mi někdo napište, jak to mám zadat. To číslo by mělo být celé a od 1 do 20 (nebo od 0 do 19, nevím jak to jde). Pokud někdo víte, tak poraďte. Díky.
Napsal: pát 5. srp 2005, 12:01
od pavel.minarik
při spuštění svého programu zavolej jednou metodu:
Randomize; // inicializace generátoru pseudonáhodných čísel
kdykoliv budeš potřebovat náhodné číslo v rozsahu 1..20 zavolej
Random(20)+1 //funkce s parametrem 20 vrací náhodné číslo od 0 do 19
Napsal: úte 16. srp 2005, 21:18
od tereza
Díky moc. Ještě mám jeden problém. Potřebuju dát do programu zvuk. Jednou při spuštění progrmu(hlavního formuláře) a potom při stisku tlačítka. Já vůbec nevím, jak tam zvuk dám, pokud to jde. Kdyžtak napište, jak na to, ale radši nějak laicky. Snad jdou všechn formáty zvuků, nebo je sněkterýma potíž? Díky
Napsal: stř 17. srp 2005, 07:56
od tereza
Tak mám ještě další dotaz. Jde otevřít ten program, který udělám samostatně? Myslím, aby se noetvíralo i celý Delphi, ale jen ten program. Díky za odpovědi.
Napsal: stř 17. srp 2005, 08:33
od tereza
A ještě mám poslední dotaz, pak už to bude vše. Potřebuju, abych mohla dělt něco s různýma komponentama, ale je jich tam víc a závisí to na náhodným číslo.
Mám proměnnou x do které sé přiřadí nějaké číslo. Pak chci třeba zviditelnit tlačítko, ale jen to, které je tolikáté, jako je to číslo x. Prostě když bude x=1 tak potřebuju, aby button1 byl viditelný.
Nastavit to umím, ale nevím, jak tam dám tu proměnou. Zkusila jsem button(x).visible... ale vždy se to zastaví před tou závorkou, dala jsem tam i hranaté závorky, ale je to stejný. Pokud tam dám číslo, tak to jde. Jde nějak udělat, nebo to budu mudet udělat nějak pře podmínky. Já tam mám těch komponent dost, takže bych potřebovala, aby to šlo přes to náhodný číslo.
Díky za odpovědi. Snad jsou tyhle tři poslední. Teda asi určitě
Napsal: stř 17. srp 2005, 10:34
od pavel.minarik
tereza píše:Díky moc. Ještě mám jeden problém. Potřebuju dát do programu zvuk. Jednou při spuštění progrmu(hlavního formuláře) a potom při stisku tlačítka. Já vůbec nevím, jak tam zvuk dám, pokud to jde. Kdyžtak napište, jak na to, ale radši nějak laicky. Snad jdou všechn formáty zvuků, nebo je sněkterýma potíž? Díky
do klauzuje uses doplň jednotku MMSystem
proceudra je SndPlaySound('cesta k souboru wav')
více najdeš v nápovědě
Napsal: stř 17. srp 2005, 10:37
od pavel.minarik
tereza píše:Tak mám ještě další dotaz. Jde otevřít ten program, který udělám samostatně? Myslím, aby se noetvíralo i celý Delphi, ale jen ten program. Díky za odpovědi.
bez problémů, delphi dělá normální spustitelné exe soubory
Napsal: stř 17. srp 2005, 11:38
od tereza
Díky, ale pořád mi to nejde.
1) exe soubory. To chápu, ale nevím, jak to vytvořím. Já to uložím, ale neumím to uložit jako exe soubor.
2) Do uses doplňím jednotku MMSystem, to je v pohodě, ale pak jsem zkoušel rozchodit to dál a nepodařilo se. Takže, kdyžtak mi to zkus napsat celý. Jak to mám udělat. Mám třeba soubor ZVUK.WAV na C:\Program Files, mě to nejde pořád rozjet.
3) Nevím, jestli jde udělat to s tím tlačítkem, když dám do x celý náhodný číslo jak to mám potom napsat, když dám button(x) nebo button[x] tak to nechce.
Díky moc. Nezlob se, že mám asi trochu hloupý dotazy, ale já to umím, jen ze školy a tam jsme to brali dost letmo.
Napsal: stř 17. srp 2005, 12:06
od mbing
ad 1 ] Delphi spouští (Play) EXE tak, že ho zkompiluje a potom spustí. Exe se nachází vedle zdrojáku.
ad 2 ] Nejde? SndPlaySound('C:\Program Files\ZVUK.WAV');
ad 3 ] Chceš zobrazit x jako popisek tlačítka? Button1.caption:=x;
Napsal: stř 17. srp 2005, 12:32
od tereza
mbing píše:ad 1 ] Delphi spouští (Play) EXE tak, že ho zkompiluje a potom spustí. Exe se nachází vedle zdrojáku.
ad 2 ] Nejde? SndPlaySound('C:\Program Files\ZVUK.WAV');
ad 3 ] Chceš zobrazit x jako popisek tlačítka? Button1.caption:=x;
Nic novýho. Pořád nejde.
1) Zkus napsat přesně, jak vytvořím exe soubor, já se v tom fakt neorientuju.
2) Přesně jsem to zkopírovala (+ MMSystem dopsala do USES), ale nejde to spustit. Vždy to najede na ten řádek nejde to.
3) Nechci dělat popisek. Potřebuju, změnit viditelenost třeba tlačítka. Normálně to udělám button1.visible:=false To jde, ale já chci, aby tam bylo místo čísla to x. Do x dosazuju náhodný celý číslo a podle toho se bude měnit vidětelnost x-tého tlačítka.
Zkusila jsem to takto, jako index, ale nejde button[x].visible:=false;
Tak nevím...
Napsal: stř 17. srp 2005, 12:44
od mbing
ad 1 ] Ulož projekt, kód, atd. Stiskni zelené tlačítko ve tvaru trojúhelníčku. Exe soubor se vytvoří v tom adresáři, kde máš soubor pas se zdrojovým kódem. Program se zkompiluje, jestliže je všechno OK.
ad 2 ] SndPlaySound(PChar('C:\Program Files\zvuk.wav'), snd_Status);. Namísto snd_Status dej snd_Sync když chceš, aby se zvuk přehrál jenom během otevřeného programu, nebo snd_Async když chceš, aby šel program zavřít i při přehrávání.
ad 3 ] ???
Napsal: stř 17. srp 2005, 13:20
od tereza
mbing píše:ad 1 ] Ulož projekt, kód, atd. Stiskni zelené tlačítko ve tvaru trojúhelníčku. Exe soubor se vytvoří v tom adresáři, kde máš soubor pas se zdrojovým kódem. Program se zkompiluje, jestliže je všechno OK.
ad 2 ] SndPlaySound(PChar('C:\Program Files\zvuk.wav'), snd_Status);. Namísto snd_Status dej snd_Sync když chceš, aby se zvuk přehrál jenom během otevřeného programu, nebo snd_Async když chceš, aby šel program zavřít i při přehrávání.
ad 3 ] ???
Díky, tak teď už to jde. Pokud ještě někdo víte, jak na to třetí, tak by to bylo super. Já tam mám víc komponent a na základě toho náhodnýho čísla potřebuju zobrazit vždy jinou. Pokud to nepůjde, tak to udělám přes podmínku, ale takhle by to vypadalo líp.
Napsal: stř 17. srp 2005, 18:22
od pavel.minarik
ad 3:
to náhodný číslo si ukládej do komponenta.Tag
a pak for I:=0 to Form.Components.Count - 1
do begin
if (Form.Component as TComponent).Tag=to číslo
then ...
end;
zhruba takhle
Napsal: stř 17. srp 2005, 19:12
od tereza
pavel.minarik píše:ad 3:
to náhodný číslo si ukládej do komponenta.Tag
a pak for I:=0 to Form.Components.Count - 1
do begin
if (Form.Component as TComponent).Tag=to číslo
then ...
end;
zhruba takhle
Díky, ale mě to pořád nejde.
Pokud budeš mít chvilku, tak já dám krátký příklad. Mám teda jedno tlačítko a dvakrát LABEL, když kliknu na tlačítko, tak se zobrazí jeden z nich, podle náhodnýho čísla. Aby bylo číslo 1 nebo 2 tak to dám ronadom(2)+1. Zkus to kdyžtak napsat celý, protože mě to fakt nejde.
Po kliknutí tam mám připraveno toto:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
end.
Pokud teda budeš mít, tak to zkus doplnit do úplné podoby. Díky
Napsal: čtv 18. srp 2005, 15:59
od pavel.minarik
Kód: Vybrat vše
for I:=0 to Form1.ComponentCount-1 do
if (Form1.Components[I] is TLabel) then
if (From1.Components[I] as TLabel).Tag=ToNahodneCislo
then (From1.Components[I] as TLabel).Visible:= True
else (From1.Components[I] as TLabel).Visible:= False;
Napsal: čtv 18. srp 2005, 17:25
od tereza
Jo, díky. Teď už to jde. Ale mám takový problém s náhodným číslem. Vždy mi totiž dává stejný čísla. Bylo mi divný, že je pořád na začátku 0. Myslela jsem, že je to náhoda, ale když jsem dala náhodnný číslo ze 100 a vždy se mi jako první použilo "náhodně" číslo tři a i další čísla jsou ve stejném pořadí, tak to asi nebude až tak náhodný. To tak opravdu dělá, že to je pokaždé stejně, nejde to, aby se to měnilo. Já potřebuju, aby to bylo pokaždé jiný, protože mě se to číslo použije v při každém spuštění programu vždy jen jednou, to tam můžu rovnou napsat třeba tu trojku. Nevíte teda, co s tím?
Napsal: čtv 18. srp 2005, 18:13
od tereza
Už to je OK, já jsem tam zapomněla dát RANDOMIZE. Ono to jelo i bez toho, ala pořád to dávalo stejnou řadu. Teď už to je dbrý, takže velký DÍK. Snad už to zvládnu sama.
Napsal: čtv 18. srp 2005, 20:47
od pavel.minarik
alelujah! začínám mít pocti, že se to naučíš, klidně se dál ptej na to, co Ti nebude jasné
