Autor Téma: Ako ošetriť výsledok kontroly.  (Přečteno 1431 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Ako ošetriť výsledok kontroly.
« kdy: 28-02-2018, 08:49:35 »
Ja viem o troch možnostiach:
  • Použiť funkciu if not CheckIt then ...
  • Použiť spoločnú premennú CheckIt; if not FIsSucces then ...
  • Pomocou vyvolanej výnimky raise try CheckIt  except ... Kontroly nepoužívajú DB ani iné prípady, kde by prichádzalo do úvahu raise
Momentálne používam 1. Rád by som si prečítal Vaše názory. Mám aj vnorené kontroly. Každá kontrola je samostatná trieda.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako ošetriť výsledok kontroly.
« Odpověď #1 kdy: 28-02-2018, 22:00:56 »
Návratová hodnota je vždy len jedna. Úspech/Neúspech
Pôvodne som mal 2. Nepáčili sa mi tam dva riadky, keď pri testovaní návratovej hodnoty funkcie mi stačí jeden
Kód: Delphi [Vybrat]
  1. procedure CheckIt
  2. begin
  3.   IsSuccess := False;
  4. // testy
  5.   if nie je úspech then
  6.   begin
  7.     OznamOChybe;
  8.     Exit;
  9.   end;
  10.   IsSuccess  := True;
  11. end;
  12.  
  13. // Spustenie kontroly
  14.   CheckIt;  // Prvý riadok spustenie kontroly
  15.  
  16.   if not IsSuccess then....  // Druhý riadok test výsledku
  17.  
Citace
{ pokud by ses bal o vykon, muzes funkci nechat vyexpandovat pouzitim directivy inline }
Vôbec nerozumiem o čo tu ide :(  O výkon tu vôbec nejde. Robí sa s veľmi malou sadou údajov. Väčšinou niečo ako dva úzke záznamy.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako ošetriť výsledok kontroly.
« Odpověď #2 kdy: 01-03-2018, 07:59:09 »
Citace
Ale je to dost subjektivni rada.
Toho som si bol vedomý už pri zakladaní témy. Človek nikdy nevie čo nové sa dozvie. To bol hlavný dôvod založenia témy.
Citace
Zalezi jakou mas predstavu o interakci s uzivatelem (co dela napr. OznamOChybe.
Vypíšem mu hlášku a vrátim ho späť na formulár. Chybu buď odstráni alebo zruší akciu (Edit či Insert).
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2586
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Ako ošetriť výsledok kontroly.
« Odpověď #3 kdy: 01-03-2018, 09:16:04 »
Citace
Zalezi jakou mas predstavu o interakci s uzivatelem (co dela napr. OznamOChybe.
Vypíšem mu hlášku a vrátim ho späť na formulár. Chybu buď odstráni alebo zruší akciu (Edit či Insert).
Ja bych tohle resil standardne pres chain validatoru, jako se to delava u webovych aplikaci. V Delphi jsem to naposledy dodelaval do cizi rodiny aplikaci tak, ze jsem u spolecneho predka vsech formularu pridal abstraktni validator, ktery v array property stradal chybova hlaseni a s nim spojeny widget. Ten mechanismum se aktivoval volanim boolean funkce CheckValidity a zajistil, ze se podle nastaveni zvyrazni widgety s nespravnou hodnotou a nejak zobrazi spojena chybova hlaseni. A kazdy form pak musel implementovat validaci stromu widgetu na nem.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2586
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Ako ošetriť výsledok kontroly.
« Odpověď #4 kdy: 01-03-2018, 09:24:54 »
Toho som si bol vedomý už pri zakladaní témy. Človek nikdy nevie čo nové sa dozvie. To bol hlavný dôvod založenia témy.
Cela ta problematika spada do subsystemu osetrovani a reportovani chyb, stejne jako prace s vyjimkami a predstavu o takovem subsystemu v zavislosti na charakteru aplikace bys mel mit driv, nez napises 1. radek kodu. Pak uz to bude vzdycky vetsi ci mensi paskvil, kde po dodatecnem zadratovani zbydou ruzne nehezke "švy" a zaplaty a ruzne nepokryte diry.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako ošetriť výsledok kontroly.
« Odpověď #5 kdy: 01-03-2018, 10:10:37 »
Ďakujem za reakciu. V tomto prípade nechcem zbierať všetky hlášky o chybách, ale okamžite požadovať nápravu. Jedná sa o zadávanie údajov - stavy meračov.
Hlášky o chybách zbieram až keď chcem tieto vstupy finálne spracovať. Tam nad tým validatrom pouvažujem. Teraz tie hlásenia jednoducho dávam do jedného reťazca a ten potom zobrazím.

Poznámka:
Jaj, Delfin upravil svoj príspevok, čo som si skoro nevšimol. Idem si to naštudovať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2586
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Ako ošetriť výsledok kontroly.
« Odpověď #6 kdy: 01-03-2018, 10:21:35 »
Excellent
Rated 1 time
Jaj, Delfin upravil svoj príspevok, čo som si skoro nevšimol. Idem si to naštudovať.
Tak to vis, Delphi je "reputation hunter" ze SO: tam jsou lidi, kteri cekaji na dotaz jako Pavlovovy psy, pak honem neco napisou a postnou, aby je nekdo nepredbehl a nasledne svoji odpoved dodatecne piluji  ;D
Ja uz jsem o tom zpusobu validace v Delphi nekdy psal, akorat jsem to nemohl najit. Az ted v souvislosti s SO jsem si vzpomel, ze to bylo tam: https://stackoverflow.com/questions/19261084/data-validation-problems-in-delphi/19264672#19264672

Offline Marek Weyda

  • Plnoletý
  • ***
  • Příspěvků: 222
  • Karma: 7
    • Verze Delphi: Delphi 2007, 10.1 Berlin
Re:Ako ošetriť výsledok kontroly.
« Odpověď #7 kdy: 01-03-2018, 11:50:38 »
Tak to vis, Delphi je "reputation hunter" ze SO: tam jsou lidi, kteri cekaji na dotaz jako Pavlovovy psy, pak honem neco napisou a postnou, aby je nekdo nepredbehl a nasledne svoji odpoved dodatecne piluji  ;D

Tak to sedlo jako pr... na hrnec :) Palec nahoru ;)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2586
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Ako ošetriť výsledok kontroly.
« Odpověď #8 kdy: 01-03-2018, 13:20:20 »
Excellent
Rated 1 time
Jinak to nebylo mysleno jako osobni utok na Delfina, ale spis poukazani na praxi, ktera me osobne, jako cloveku odkojenemu list servery a ctoucimu veskera fora pres RSS, docela vadi. Stejne jako mazani prispevku z verejnych for: proste jakmile jednou clovek neco postnul na list server, uz to bylo mezi lidma a nedalo se to vzit zpatky.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako ošetriť výsledok kontroly.
« Odpověď #9 kdy: 03-03-2018, 09:12:52 »
Excellent
Rated 1 time
Citace
Da se nastavit Maximum time after posting to allow edit na 0
Ale práve to sme nechceli a žiadali sme správcov aby to zmenili. "Dohodli" sme sa na 30 minútach. A taktiež na mazaní príspevkov. Tiež tam je nejaký čas. Akonáhle tam je nejaká reakcia, tak sa nedá vymazať.

Tu sú odpovede celkom na úrovni. A nejaké dodatočné editovanie nie je problém. Až na jednu vec. WEB o tom neinformuje. A tak to často ujde pozornosti. Ak sa jedná o editovanie, ktoré zásadne mení pôvodný príspevok, tak je lepšie napísať nový.

Ja som tu parkrát vedome dal "zlý" príspevok. Bolo to v prípadoch, keď som nepoznal odpoveď a zadávateľ sa za dlhý čas nedočkal odpovede a potreboval to. Účelom bolo vyprovokovať ľudí znalých veci k reakcii. Je zaujímavé, že sa to zakaždým podarilo ;)

Citace
Nicmene v tomto vlakne jsem odpoved jen rozvedl (a pak formatoval spolu s pridanim ukazek), nemenil jsem puvodni nazor.
To som si hneď všimol.

Na záver:
  Každý sme iný a naše reakcie a postoje sú rôzne. Delfin trvá na vecnej argumentácii až do konca. Niektorým to veľmi vadí. Ja som čiastočne tiež taký, takže viem o čom to je ;D  Ale moje okolie z toho nie je nadšené a tvrdí, že som veľmi tvrdohlavý. Ja si myslím, že som iba trochu ::)
Skutočných trolov tu našťastie nemáme. Vydržia tak pár dní.


Prečo musím každý príspevok dodatočne upravovať. Napríklad taký pdf1957, ktorý to berie cez čítačku RSS je z toho celý bez seba :'( [size=78%] [/size]
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Ako ošetriť výsledok kontroly.
« Odpověď #10 kdy: 06-03-2018, 00:54:57 »
Prečo musím každý príspevok dodatočne upravovať. Napríklad taký pdf1957, ktorý to berie cez čítačku RSS je z toho celý bez seba :'(

Od toho je tu tlačítko prohlédnout. To neznamená povel počítači aby se pokusil prohlédnout nějakou fintu, ale náhled před odesláním.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Ako ošetriť výsledok kontroly.
« Odpověď #11 kdy: 06-03-2018, 00:59:16 »
Ano, Heffernan je pro me borec ktery umi, ale nevi vsechno, byt si to mysli a muze se zmylit stejne jako kdokoli jiny. Bohuzel to neprizna, s cimz mam osobni zkusenosti.

Přesně vím, o čem u něho mluvíš, viz některé příspěvky třeba na google+
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4393
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Ako ošetriť výsledok kontroly.
« Odpověď #12 kdy: 06-03-2018, 08:26:32 »
Citace
Od toho je tu tlačítko prohlédnout.
Fajn, budem ho tak využívať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 412
  • Karma: 5
Re:Ako ošetriť výsledok kontroly.
« Odpověď #13 kdy: 06-03-2018, 12:34:37 »
Citace
Da se nastavit Maximum time after posting to allow edit na 0
Ale práve to sme nechceli a žiadali sme správcov aby to zmenili. "Dohodli" sme sa na 30 minútach. A taktiež na mazaní príspevkov. Tiež tam je nejaký čas. Akonáhle tam je nejaká reakcia, tak sa nedá vymazať.

Za chybu považuji mimojiné i to, že po úpravě příspěvku nabíhá znovu celý (nový) časový limit na úpravu.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2586
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Ako ošetriť výsledok kontroly.
« Odpověď #14 kdy: 06-03-2018, 13:08:55 »
je napr. pro budouciho "hledace" mnohem slozitejsi
Pro budouciho hledajiciho mozna, ale IMHO primarni jsou diskutujici, kteri se o zmenene odpovedi nedozvi, pokud netravi cely den procitanim prispevku nahoru a dolu viz Stanova reakce "Jaj, Delfin upravil svoj príspevok"... Kdyz nekdo opravi nejake typo chyby jako "pýča", tak budiz. Ale doplnovat do prispevku dalsi fakta a detaily, to uz je mimo scope diskuse.
 
Ostatne si myslim, ze i ten SO je uz nekde, kde byt IMHO nemel, protoze kdyz tam neco hledam, tak se musim casto procitat litaniema, kde odpovidajici IMHO zbytecne opisuje ucebnice nebo nejake reference, ktere bych stejne nasel, kdyby ta odpoved na SO vubec nebyla. A to o tech reputation hunterech, to je smutna ukazka, jak se muze zvrhnout dobre mineny mechanismus  >:(