Autor Téma: Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?  (Přečteno 727 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5293
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Nadväzuje to na tému "Vytváranie tried a SQL textov mimo formulára".
Podľa toho čo som našiel na internete, tak to nie je možné. A tak to musím ponechať v každom formulári. Nikdy ich nie je veľa, takže z tohto pohľadu to nie je problém. Len som chcel čo najviac vyčistiť jednotky formulárov.
Alebo sa mýlim?
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

96639

  • Host
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #1 kdy: 18-08-2017, 15:37:41 »
To samozrejme jde. Poslu ukazku, ale holt to chvili trva.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5293
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #2 kdy: 18-08-2017, 15:57:39 »
Tak to som veľmi zvedavý. Pri vytváraní zoznamu pre jeden druh record-u sa narábalo s (veľkosťou) pamäťou. Ja tam potrebujem dostať len ich definície. A potom vo formulári:
Kód: Delphi [Vybrat]
  1.   pMyRecord = ^lstRecord[Idx];
  2.  
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

96641

  • Host
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #3 kdy: 18-08-2017, 16:56:51 »
To se prave resi za pomoci modelu. Tovarna (factory) vytvori objekt (model) ktery ma dany interface a ten se preda formulari (v tomto pripade napr. objekt implementujici query objekt). A formular (view-controller) pak umi takovy interface ovladat (reaguje na zmeny obsahu refreshem komponent a ovlada napr. vkladani novych zaznamu apod.).

Vyhodou je ze ten model muze mit jakykoli zdroj - o nem totiz view nema nic vedet, ma jen ovladat a zobrazovat model (a jestli jde o data z DB, souboru nebo treba jen kolekce uz nezalezi). Dalsi vyhodou je ze napr. view (ten form) vlozi do modelu zaznam a model posle vsem pozorovatelum (observerum) notifikaci o zmene na coz vsechny view mohou reagovat zrefreshem (tj. napr. ze vsechny formy pouzivajici stejny dataset reaguji na jeho zmenu "spolecne" z jednoho mista).

Pro zacatek bych zapomnel na vyuziti VT jako data storage. Potrebuju na navrh trochu casu (a je patek), takze chvili strpeni, prosim ;D
« Poslední změna: 18-08-2017, 17:01:27 od 96641 »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5293
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #4 kdy: 18-08-2017, 17:21:11 »
Citace
Tovarna (factory) vytvori objekt (model) ktery ma dany interface a ten se preda formulari
Presne to isté písal Daniel. Ale je to mimo mňa. Príliš vysoká škola. Hlavne ten interface. To je pre mňa španielska dedina. Ja VST nepoužívam ako sklad údajov. Akurát z neho ťahám PrimaryKey na vyhľadanie záznamu v DB. Údaje mám v datasetoch.

Klasika. Na začiatku cesty domov, keď už som sa zbavil napätia a tým blokov v hlave, mi mozog automaticky pošle riešenie.

A to v tomto prípade znie: všetko robíš naopak. Nemáš si do formulára posielať žiadne zoznamy a tam robiť priradenia. Ale z formulára poslať do továrne zoznamy premenných a ukazovateľov (viď pMyRecord).  Tam vykonať priradenie patričných hodnôt. A vo formulári ostanú jedine definície. Tým pádom nepotrebujem zoznam record-ov.

Ale na riešenie ich zoznamu som zvedavý.

PS: Môžem sa tešiť na ukážku testovacieho formulára?

Ani v jednom prípade čas nehrá dôležitú úlohu. V ničom ma to neblokuje a mám čo robiť. Ak daný problém vyriešim, tak použitie továrne budem spätne aplikovať do všetkých dotknutých formulárov.
« Poslední změna: 18-08-2017, 17:22:44 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

96645

  • Host
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #5 kdy: 18-08-2017, 18:03:34 »
PS: Môžem sa tešiť na ukážku testovacieho formulára?

Jiste. On by ten koncept bez ukazky view nedaval moc smysl.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5293
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #6 kdy: 18-08-2017, 18:41:36 »
Už sa teším a prosím o bohaté komentáre.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2923
  • Karma: 135
    • Verze Delphi: D2007, XE3, DX10
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #7 kdy: 18-08-2017, 18:47:24 »
Excellent
Rated 1 time
tak použitie továrne budem spätne aplikovať do všetkých dotknutých formulárov.
Nez do tech tovaren zabrednes, tak by sis mel precist klasiku ;-) http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5293
  • Karma: 41
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Vytvorenie zoznamu rôznych record-ov. Je to vôbec možné?
« Odpověď #8 kdy: 19-08-2017, 10:12:16 »
Prikladám klasický vzhľad mojich formulárov. Popis:
Každá záložka bola pôvodne samostatný formulár. Čo mi silne komplikuje situáciu. No komfort a produktivita užívateľa sú prvoradé. Nemám rád, ak mi aplikácia postupne vyhadzuje kopu okien a ja ani neviem kde som. Prípadne čo kde hľadať čo spolu súvisí a preklikávať sa k tomu.

Bočný panel - ten je len občas.
Top panel - Výber SVB - aktualizuje všetky datasety
PageControl
  BasicPanel
    Top panel = PanelEdit
    Client panel = PanelVST
    Bottom panel = PanelNavigator
Bottom panel = pomocný panel.

Jediný TActionManager
Ak mám bočný panel, tak ten má samostatný TActionManager
DBNavigator je vlastný. Vytvorený podľa originálu.

Posielam to kvôli tomu, že možno ukážku prispôsobíš podľa toho. Ale to je len také zbožné prianie :)
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.