| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 08.10.07 Prihlásený: 22.11.10 Príspevky: 70 Témy: 30 Bydlisko: Myjava |
Kde by sa dalo najst nieco ako zhrnutie vsetkych podporovanych prikazov pre DELPHI 7 ?
Pripadne aj ku kazdemu strucne vysvetlenie.
|
|
Registrovaný: 12.10.06 Prihlásený: 23.04.24 Príspevky: 20311 Témy: 79 Bydlisko: Banska Byst... | Napísal shiro: 08.08.2009 10:48 | |
|
v helpe k delphi samotnemu.
_________________ Ryzen 7 3700X | SilentiumPC Fera 3 | Asrock X570M Pro4 | Patriot Viper 4 Blackout 16GB DDR4-3600 CL17 | Gainward RTX4060 Ti Pegasus 8GB | Samsung 970evo Plus 250GB NVMe | Corsair MP510 1TB NVMe | Samsung 980 Pro 2TB NVMe | Corsair RM550x | 24" BenQ GW2470H | 3x Noctua NF-S12B redux 1200 PWM Xiaomi Mi 9 Lite 64GB |
|
Registrovaný: 08.10.07 Prihlásený: 22.11.10 Príspevky: 70 Témy: 30 Bydlisko: Myjava | Napísal autor témy M.Valasek: 09.08.2009 11:15 | |
|
shiro píše: v helpe k delphi samotnemu.
Ale ja by som chcel nieco ako tabulku so vsetkymi prikazmi.
|
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 11.08.2009 20:26 | |
|
Príkazy? Príkaz je aj x:= 10;
Zrejme si myslel funkcie. Bežne používaš API funkcie a potom funkcie z štandardných unitov (IntToStr, ShowMessage, a pod.) . Tieto funkcie (za funkcie považujem aj procedúry a properties zapuzdrené v triedach) sú, ako už shiro spomenul, v Delphi nápovede. API funkcie sa nachádzaju v súbore nápovedy C:\Program Files\Common Files\Borland Shared\MSHelp\WIN32.HLP.
|
|
Registrovaný: 26.11.06 Prihlásený: 02.09.15 Príspevky: 24 Témy: 3 Bydlisko: Snina | |
Registrovaný: 08.10.07 Prihlásený: 22.11.10 Príspevky: 70 Témy: 30 Bydlisko: Myjava | Napísal autor témy M.Valasek: 12.08.2009 9:46 | |
|
Fico píše: Príkazy? Príkaz je aj x:= 10; Zrejme si myslel funkcie. Bežne používaš API funkcie a potom funkcie z štandardných unitov (IntToStr, ShowMessage, a pod.) . Tieto funkcie (za funkcie považujem aj procedúry a properties zapuzdrené v triedach) sú, ako už shiro spomenul, v Delphi nápovede. API funkcie sa nachádzaju v súbore nápovedy C:\Program Files\Common Files\Borland Shared\MSHelp\WIN32.HLP.
No myslel som funkcie zo štandardných unitov, a v tej napovede su aj niekde zhrnute?
|
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 12.08.2009 18:04 | |
|
Je to riadne abecedný zoznam funkcií, dátových typov, kľúčových slov, direktív, atď. V Delphi len klikni na ikonu knižky a zadaj názov funkcie.
Ale toto isté nájdeš na stránke od martin.007 a myslím, že tam je to oveľa viac prehľadnejšie. Ďakujem aj ja za stránku, martin.007, to sa určite raz bude hodiť.
|
|
Registrovaný: 03.01.08 Prihlásený: 26.01.23 Príspevky: 185 Témy: 31 | Napísal Draco: 15.09.2009 0:33 | |
|
Ahoj, nechcem kvoli tomuto zakladat novu temu. Mam zadane taketo prikazy, podmienky:
f := StrToInt (Edit1.Text);
if f > 10940 then
Application.Terminate;
Obmedzenie je tam kvoli tomu, ze pri vyssich cislach to velmi zatazuje CPU. Ked zadam do Edit1 cislo 12 000 tak sa program vypne. Ale ak zadam 100 000 tak zacne pocitat, respektive pracovat (a tam to uz zatazi procesor a samozrejme, ze to nereaguje a tak.)
Takze, preco pri tych 100 000 to zacne pracovat, ked sa ma vypat?
Osobne si myslim, ze kym sa vypne ten program, tak ono zacne uz pocitat a kedze to vtedy nereaguje tak sa to nevypne. Keby aspon nejaky prikaz, aby po tej podmienke pockalo 100ms
_________________ Moj PC: Intel core 2 duo (2,66 ghz), nvidia 8600 512mb, 2gb Ram 800Mhz Corsair, 500gb HDD |
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 15.09.2009 8:14 | |
|
Nepochopil som, aký je presne problém (trebalo dať viac kódu), ale skúsim odpovedať na niektoré otázky:
Draco píše: Ale ak zadám 100 000 tak začne počítať Tak toto mi akosi nepasuje. Podľa podmienky if to nepripadá v úvahu. Akého typu je premenná f ? Ak je číslo 100000 zadané korektne (bez medzier), tak sa program musí ukončiť. Draco píše: nejaký príkaz, aby po tej podmienke počkalo 100ms
API funkcia sleep:
procedure Sleep(MiliSecValue : cardinal);
Ešte jedna pomôcka: Ak sa v programe vykonáva operácia náročná na čas a kvôli nej aplikácia potom "zatuhne", zvykne sa do tejto operácie pridávať procedúru Application.ProcessMessages.
|
|
Registrovaný: 03.01.08 Prihlásený: 26.01.23 Príspevky: 185 Témy: 31 | Napísal Draco: 15.09.2009 10:51 | |
|
No tu je teda dlhsi kod
procedure TForm1.Button1Click(Sender: TObject);
var
cislo, pocet, y, f, i, x, j: Integer;
begin
f := StrToInt (Edit1.Text);
y := 10;
x := 10;
if f > 11000 then
Application.Terminate;
for cislo := 1 to f do
begin
A potom vlastne zacina pocet cyklov na zaklade toho cisla. Ak chces tak poslem aj cely kod, je to iba obycajny vyhladavac prvocisiel a potom ich vypisuje do plochy (ucim sa).
Ta procedura sleep sa ako pouziva? Napisem ju ako proceduru (ako si napisal) a potom ju pouzivam ako aj ine pomocne procedury? Napriklad, ze by som to umiestnil za tu podmienku asi v takomto tvare?: sleep(100);
Alebo, naco je dobra ta druha procedura?:)
_________________ Moj PC: Intel core 2 duo (2,66 ghz), nvidia 8600 512mb, 2gb Ram 800Mhz Corsair, 500gb HDD |
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 15.09.2009 13:01 | |
|
Áno, presne v takom tvare sa používa. Čiže ak treba čakať napríklad 200 ms, tak sa to zapíše takto:
Kód: sleep(200); Application.ProcessMessages spracuje správy windows (windows messages). To znamená, že počas výpočtu sa s oknom bude dať hýbať, stláčať tlačídlá atď. V skratke - zabráni sa zatuhnutiu počas počítania. Skús upraviť svoj kód podľa tohto + pridaj si svoj výpočet, do ktorého je pridaný riadok Application.ProcessMessages: Kód: procedure TForm1.Button1Click(Sender: TObject); var cislo, pocet, y, f, i, x, j: integer; begin
Button1.Enabled:= false;
try f:= StrToInt (Edit1.Text); except ShowMessage('Nesprávne zadané číslo.'); Button1.Enabled:= true; Exit; end;
y:= 10; x:= 10; if (f > 11000) then begin ShowMessage('Príliš veľké číslo!'); Exit; end;
for cislo:= 1 to f do begin
(* ... výpočet ... *)
Application.ProcessMessages; end;
// koniec procedury
Button1.Enabled:= true;
end;
|
|
Registrovaný: 03.01.08 Prihlásený: 26.01.23 Príspevky: 185 Témy: 31 | Napísal Draco: 15.09.2009 13:33 | |
|
Funguje to super, ked zadam velke cislo tak zobrazi tu spravu Tak pekne som si to ani nepredstavoval
Este som sa chcel spytat, ze kedy vypise tuto spravu, respektive kedy bude tato podmienka splnena? (aby som to vedel v buducnosti pouzit)
Kód: try f:= StrToInt (Edit1.Text); except ShowMessage('Nesprávne zadané číslo.'); Button1.Enabled:= true; Exit;
_________________ Moj PC: Intel core 2 duo (2,66 ghz), nvidia 8600 512mb, 2gb Ram 800Mhz Corsair, 500gb HDD |
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 15.09.2009 14:12 | |
|
Try / except blok (prípadne try / finally) sa používa na ošetrenie chýb. Ak sa v bloku try vyskytne chyba, tak programátor môže pekne túto chybu ošetriť (napríklad zobrazením chybovej správy).
V našom prípade, ak dôjde k chybe počas konverzie reťazca na číslo (StrToInt), vykoná sa blok except. Môžeš skúsiť namiesto čísla napísať nejaký znak a vyhodí chybové hlásenie. Ak je konverzia úspešná, blok except sa nevykoná.
(Odporúčam stiahnuť seriál Umíme to s Delphi, ktorý je myslím skvelý na začiatok a sú v ňom pekne a zrozumiteľne vysvetlené základné funkcie a komponenty. Je tam aj spomenutý blok try/except)
|
|
Registrovaný: 03.01.08 Prihlásený: 26.01.23 Príspevky: 185 Témy: 31 | Napísal Draco: 15.09.2009 14:29 | |
|
To viem, avsak kedy je konverzia na cislo neuspesna? Pretoze, ak napisem do Edit1 napr. 100 000 (s medzerou) alebo nejaky text tak vyhodi systemovu chybu (alebo ako to nazvat). Avsak, podla mna by malo napisat, ze bolo Nespravne zadane cislo - teda vykonat except
(dakujem, skusim to stiahnut )
|
|
Registrovaný: 11.01.09 Prihlásený: 22.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 15.09.2009 14:40 | |
|
Áno, vyhodí to systémovú chybu, ale iba ak spúšťaš projekt z Delphi. Potom ak stlačíš F9, program pokračuje a zobrazí sa naša chybová hláška. Ak spustíš priamo svoju aplikáciu z miesta, kde je skompilovaná (tzn nie z Delphi debuggera), tak sa zobrazí iba naša chybová hláška.
|
|
Registrovaný: 03.01.08 Prihlásený: 26.01.23 Príspevky: 185 Témy: 31 | Napísal Draco: 15.09.2009 14:48 | |
|
Ano, tak to uz funguje.
Vdaka za pomoc, toto budem vyuzivat celkom casto
|
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| delphi zapis cisla do editu v delphi v Delphi, Visual Basic | 3 | 1107 | 11.05.2008 12:02 p360t | | WIN98-instalacia-prikazy v Operačné systémy Microsoft | 14 | 665 | 25.08.2006 14:27 p55p | | vsetky prikazy ubuntu v Operačné systémy Unix a Linux | 2 | 1495 | 23.07.2009 17:36 Snacker | | AT prikazy na Xperiu v Smartfóny a tablety | 0 | 307 | 04.05.2012 15:07 vama | | Základné príkazy v Linuxe v Články | 2 | 5889 | 30.05.2008 21:33 zmija31 | | Základné linuxové príkazy na pozadie v Operačné systémy Unix a Linux | 1 | 581 | 30.01.2010 15:33 _FleXoR_ | | 2 prikazy sql do jedneho v PHP, ASP | 11 | 645 | 17.02.2008 15:40 middlesboro | | Delphi 7 v Ostatné programy | 3 | 286 | 08.10.2013 19:11 michalesku | | Delphi class v Delphi, Visual Basic | 1 | 791 | 10.09.2009 16:35 Fico | | Delphi TreeView v Delphi, Visual Basic | 3 | 654 | 07.05.2011 21:35 coldak | | [Delphi] komponent v Delphi, Visual Basic | 21 | 1885 | 16.03.2010 17:05 zy-zy-zyrixi | | Free Delphi v Delphi, Visual Basic | 2 | 875 | 18.06.2010 14:36 Manny | | [Delphi] Okno v Delphi, Visual Basic | 6 | 687 | 15.01.2010 21:42 vama | | Delphi - taby v Delphi, Visual Basic | 2 | 949 | 26.06.2009 13:49 LordMMX | | Odmocnina (delphi) v Delphi, Visual Basic | 4 | 965 | 13.01.2012 15:47 jucho29 | | [Delphi] klavesy v Delphi, Visual Basic | 15 | 2060 | 06.02.2010 13:04 Fico |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|