IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @885
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Absolvovali ste chemoterapiu?

DetoxiPan GOLD zmierni jej bočné účinnky Testovaný a patentovaný japonský produkt www.detoxipan.sk

Zaregistruj sa!

Tvoj názor stojí peniaze. Vyplňte dotazník a zarobte si! www.marketagent.com

Schudla som 16kg za 4 týždne

Zvládla som to! Bez obmedzovanial a bez športovania. Prečítajte si môj príbeh. www.janinblog.com

Aktuálna novinka

Zisti pravdu o stravovaní! Vyšetrovanie odhalilo tajomstvo dokonalého tela. www.news2channel.net

Našiel som spôsob bieliť zuby

Podarilo sa mi vybieliť si zuby bez drahých procedúr u zubára. www.zuzaninblog.com

prikazy v Delphi

Zaslať odpoveď
AutorSpráva
M.Valasek
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 08.10.2007
Príspevky: 70
Bydlisko: Myjava

PríspevokZaslal: Pi 07.08.09 21:24Odpovedať s citátomNávrat hore

Kde by sa dalo najst nieco ako zhrnutie vsetkych podporovanych prikazov pre DELPHI 7 ?
Pripadne aj ku kazdemu strucne vysvetlenie.
Zobraziť informácie o autoroviOdoslať súkromnú správu
shiro
Skúsený užívateľ
Skúsený užívateľ

Založený: 12.10.2006
Príspevky: 9660

PríspevokZaslal: So 08.08.09 10:48Odpovedať s citátomNávrat hore

v helpe k delphi samotnemu.

_________________
AMD Phenom II 955 BE 3.2GHz, 4GB RAM DDR3-1333 A-Data, MB Gigabyte MA-770T-UD3P, Kingston SSDNow V 64GB 2.Gen., WD 640GB + WD 1TB, Gigabyte GeForce GTX275 896MB, 2xDVD+-RW NEC 7173, LCD BenQ G2400Wa 24", MS Wireless optical mouse 2.0A, Keyboard Prestigio, Creative SBS 380 2.1
Zobraziť informácie o autoroviOdoslať súkromnú správu
M.Valasek
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 08.10.2007
Príspevky: 70
Bydlisko: Myjava

PríspevokZaslal: Ne 09.08.09 11:15Odpovedať s citátomNávrat hore

shiro napísal:
v helpe k delphi samotnemu.


Ale ja by som chcel nieco ako tabulku so vsetkymi prikazmi.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 11.08.09 20:26Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
martin.007
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 24
Bydlisko: Snina

PríspevokZaslal: Ut 11.08.09 22:30Odpovedať s citátomNávrat hore

ja dost casto cerpam z http://www.delphibasics.co.uk/index.html
je to tam vsetko krasne vysvetlene
Zobraziť informácie o autoroviOdoslať súkromnú správu
M.Valasek
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 08.10.2007
Príspevky: 70
Bydlisko: Myjava

PríspevokZaslal: St 12.08.09 9:46Odpovedať s citátomNávrat hore

Fico napísal:
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?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: St 12.08.09 18:04Odpovedať s citátomNávrat hore

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ť.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Draco
Užívateľ
Užívateľ

Založený: 03.01.2008
Príspevky: 146

PríspevokZaslal: Ut 15.09.09 0:33Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 15.09.09 8:14Odpovedať s citátomNávrat hore

Nepochopil som, aký je presne problém (trebalo dať viac kódu), ale skúsim odpovedať na niektoré otázky:

Draco napísal:
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 napísal:
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.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Draco
Užívateľ
Užívateľ

Založený: 03.01.2008
Príspevky: 146

PríspevokZaslal: Ut 15.09.09 10:51Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 15.09.09 13:01Odpovedať s citátomNávrat hore

Á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;
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Draco
Užívateľ
Užívateľ

Založený: 03.01.2008
Príspevky: 146

PríspevokZaslal: Ut 15.09.09 13:33Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 15.09.09 14:12Odpovedať s citátomNávrat hore

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)
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Draco
Užívateľ
Užívateľ

Založený: 03.01.2008
Príspevky: 146

PríspevokZaslal: Ut 15.09.09 14:29Odpovedať s citátomNávrat hore

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 )
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Ut 15.09.09 14:40Odpovedať s citátomNávrat hore

Á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.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
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.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd