Pozte mi v Delphi

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Pozte mi v Delphi

Příspěvek 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.
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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.
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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ě
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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ě
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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.
mbing
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. dub 2005
Kontaktovat uživatele:

Příspěvek 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;
|| Moderátor diskuzního fóra forum.PAUZA.cz ||

| Přátelství spočívá ve výběru člověka, kterého jsem si zvolil pro jeho povahu a dal mu provždy přednost. |
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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...
mbing
Začátečník
Začátečník
Uživatelský avatar
Registrován: 21. dub 2005
Kontaktovat uživatele:

Příspěvek 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 ] ???
|| Moderátor diskuzního fóra forum.PAUZA.cz ||

| Přátelství spočívá ve výběru člověka, kterého jsem si zvolil pro jeho povahu a dal mu provždy přednost. |
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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.
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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;
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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?
tereza
Začátečník
Začátečník
Registrován: 16. říj 2004
Bydliště: Chrudim

Příspěvek 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.
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek 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é :wink:
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
Odpovědět

Zpět na „Programování a web“