Autor Téma: Změna polí na datum a zobrazení obyčejného kalendáře  (Přečteno 221 krát)

Offline iDS

  • Nováček
  • *
  • Příspěvků: 1
  • Karma: 0
    • Verze Delphi: BERLIN
Dobrý den ,

mám jednoduchý formulář, kde je klasické databáze FB 2.57 a data přes TEDIT. V hlavičce je datum a paní na evidenci ( jinak není potřeba ) by chtěla:
- předělat pole ( vše posílám v příloze včetně zdrojů ) dny D1 a D31,aby se alespoň zabarvili podle svátků , soboty a neděle.
- nebo předělat ( to se mi celé nechc ) na skutečný kalendář. Nemám žádnou komponentu na dny nebo kalendář

Reálně by mi stačili zde přidat funkce, který by řekla : jestli je datum xxx, tak v tomto měsíci jsou svátky např. v  07+08/2017 a pole by mělo jen jiný color.

Chtěl bych jen estetické změny. Nechci předělávat celý form, když to historicky finguje. Jde o jednoduchou databázi.

Děkuji

David 


Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2996
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:Změna polí na datum a zobrazení obyčejného kalendáře
« Odpověď #1 kdy: 24-11-2017, 11:58:21 »
Hm, tá Tvoja príloha je o ničom:
  • obrázok je len biely obdĺžnik
  • formulár používa komponenty tretích strán a Tvoje vlastne výtvory. Tým pádom sa nedá zobraziť
  • s formátovaním textu sa veľmi nekamarátiš ;)
Citace
Nemám žádnou komponentu na dny nebo kalendář
Samotné Delphi ich obsahuje (XE7 2 kusy). Určite sa dajú stiahnuť nejaké free.
Soboty a nedele by si obslúžil ľahko. Použil by si funkciu, ktorá vráti poradie dňa v týždni. So sviatkami je to horšie. Musel by si mať zoznam sviatkov, lebo nie všetky sú viazané na konkrétny deň, a každý rok ho aktualizovať.

Ešte pripomienka: v zdrojoch nemá čeština čo robiť!
« Poslední změna: 24-11-2017, 12:02:04 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2996
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:Změna polí na datum a zobrazení obyčejného kalendáře
« Odpověď #2 kdy: 24-11-2017, 12:39:49 »
Nemôžem sa prinútiť robiť to čo mám :( , tak so Ti to trocha naformátoval. Tak narýchlo nejaké pripomienky k tomu čo mi padlo do oka:
Kód: Delphi [Vybrat]
  1.    
  2.     edtNMesucto.AsInteger := 12;
  3.     edtNRokucto.AsInteger := 2018;
  4.  
To je neprípustné. Musíš to riešiť dynamicky. To chceš každý rok prepisovať jednotku? A čo potom, keď sa o to prestaneš starať?
Kód: Delphi [Vybrat]
  1.    
  2.       try
  3.         sprKopie.ExecProc;
  4.         trnDDObedy.Commit;
  5.         qryDDObedy.Refresh;
  6.         Hotovo := True;
  7.         Application.MessageBox('Kopie obědů provedena. Vyberte nové období a ověřte data ! ','Kopie stravného do dalšího období',MB_OK+MB_IconInformation);
  8.       finally
  9.         if not Hotovo then
  10.           trnDDObedy.Rollback;
  11.       end;
  12.  
Zásadná chyba. Nemá tam byť žiadna premenná Hotovo. Máš/musíš použiť blok try - except...
Kód: Delphi [Vybrat]
  1. with
Všetci tu sú proti použitiu slova with.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1780
  • Karma: 72
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Změna polí na datum a zobrazení obyčejného kalendáře
« Odpověď #3 kdy: 24-11-2017, 15:06:39 »
- nebo předělat ( to se mi celé nechc ) na skutečný kalendář. Nemám žádnou komponentu na dny nebo kalendář

Pokud máš Berlin jak píšeš, tak je tam opravdu pěkná kalendářová komponenta, která je jak z Windows 10, ale je i pro Windows 7.
http://delphi.cz/post/RAD-Studio-Berlin-101-Update-2-Anniversary-Edition.aspx
Embarcadero MVP - Czech republic

Offline Delfin

  • Hrdina
  • ****
  • Příspěvků: 431
  • Karma: 21
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Změna polí na datum a zobrazení obyčejného kalendáře
« Odpověď #4 kdy: 24-11-2017, 16:49:33 »
Všetci tu sú proti použitiu slova with.

To jo, ma vsak jedno skutecne vyuziti. S pomoci with se dostanes i k privatnim clenum predka. Zatim to funguje i v Delphi Tokyo, hlavne o tom leaku prosim nerikejte EMBT, je to desne uzitecna vec pro aplikaci patch rozbitych komponent :) Napr.:

Kód: Delphi [Vybrat]
  1. type
  2.   TDataSetHelper = class helper for TDataSet
  3.   strict private
  4.     function GetDataSourceList: TList<TDataSource>; inline;
  5.   public
  6.     property DataSourceList: TList<TDataSource> read GetDataSourceList;
  7.   end;
  8.  
  9. { TDataSetHelper }
  10.  
  11. function TDataSetHelper.GetDataSourceList: TList<TDataSource>;
  12. begin
  13.   with Self do // ← diky with se dostanu k privatnim clenum
  14.     Result := TList<TDataSource>(FDataSources); // ← FDataSources je privatni pole TDataSet
  15. end;
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

Offline Delfin

  • Hrdina
  • ****
  • Příspěvků: 431
  • Karma: 21
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Změna polí na datum a zobrazení obyčejného kalendáře
« Odpověď #5 kdy: 24-11-2017, 18:44:08 »
mám jednoduchý formulář, kde je klasické databáze FB 2.57 a data přes TEDIT. V hlavičce je datum a paní na evidenci ( jinak není potřeba ) by chtěla:
- předělat pole ( vše posílám v příloze včetně zdrojů ) dny D1 a D31,aby se alespoň zabarvili podle svátků , soboty a neděle.

Pokud tomu spravne chapu, jsou to ty komponenty pojmenovane edtDen<n> (typu TDBEditSoftbit). Netusim co jsou zac, takze tezko takhle radit, zkusil bych jim nastavit property Color na danou barvu (to je vicemene standardni zpusob nastaveni podbarveni edit komponent, pokud jde tedy o nejake DB edit komponenty; prilozeny obrazek je pomerne dost bily).

Co se tyce zbytku ulohy, zjistit zda je den sobota ci nedele je snadne. Horsi to bude se svatky, tam bude treba si udrzovat tabulku s aktualnimi.
« Poslední změna: 24-11-2017, 18:45:56 od Delfin »
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: