Article View: pl.comp.lang.delphi
Article #334546System deklaracji na interfejsach
From: konsul41
Date: Mon, 02 Jan 2012 14:25
Date: Mon, 02 Jan 2012 14:25
91 lines
3692 bytes
3692 bytes
Delphi XE
Potrzebuję waszej podpowiedzi.
Projektuję system deklaracji podatkowych (zrealizowane ale wszystko w
postaci pojedynczego programu i bardzo nie elastyczne)
Ogólna koncepcja jest taka podgląd realizowany na metafile na nim rysowane
wszystko po kolei.
Wewnętrznie lista obiektów nie edycyjnych (tylko rysowanie), druga lista
obiekty edycyjne (użytkownik klika na podgląd w miejscu gzie jest pole
edycyjne i pojawia mu się
edit i może je edytować
DateTimePicker można edytować datę
itd...
Obiekty edycyjne powiadamiają inne obiekty edycyjne o swojej zmianie tamte
zaś aktualizują się (według wzorca obserwator)
Chcę to wszystko przerobić na bardziej elastyczne jeżeli chodzi o możliwości
dodawania nowych obiektów.
Wyobrażam to sobie w następujący sposób:
Użytkownik uruchamia deklaracje (najlepiej z dll - mały exe) zwane dalej
system deklaracji
Ta wczytuje dostępne kontrolki (także z osobnych dll), które rejestrują się
w systemie deklaracji i od tej pory system deklaracji używa ich jakby były
jego częścią.
System deklaracji wczytuje z pliku deklaracji szablon, ustawia połączenia
pomiędzy polami edycyjnymi, wczytuje dane początkowe ...
Utworzona deklaracja pobiera za pośrednictwem systemu deklaracji dane
finansowe z programu.
Użytkownik edytuje pola edycyjne,drukuje sobie deklaracje, wysyła po
podpisaniu do urzędu, i co tam jeszcze chce.
Wstępnie pomyślałem o Interfejsach
IRejestrVat = interface
//"Obiekt" rejestru VAT
end ;
IPlanKont = interface
//"Obiekt" PlanuKont
end ;
{Kontrolki}
IBaseObject = interface
end ;
IPitEdit = interface(IBaseObject)
//przodek kontrolek Edycyjnych
end ;
IPitDraw = interface(IBaseObject)
//przodek wszystkich kontrolek nie edycyjnych - tylko rysowanie
end ;
IPitKontener = interface(IBaseObject)
//Kontener dla innych kontrolek
end ;
{Zarzadzanie obiektami}
IObiekty = interface
//interfejs reprezentujący listę dostępnych "obiektów" dla deklaracji,
//ładowanych z bibliotek dll.
end ;
ISysObiekty = interface
//interfejs reprezentujący listę obiektów systemowych dotępnych w systemie
//typu rejestrVAT, PlanKont do dalszego wykorzystania.
end ;
{Deklaracja}
IDeklaracja = interface
//interfejs reprezentujący całą deklarację
end ;
Czy to dobry pomysł?
Wolałbym unikać BPL ponieważ planuję dać możliwość dodawania obiektów także
innym.
Chciałbym poznać wasze pomysły na zrealizowanie tego systemu.
Technical Details
Message-ID:
<4f01be48$0$1204$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: <konsul41@wp.pl> Newsgroups: pl.comp.lang.delphi Subject: System deklaracji na interfejsach Date: Mon, 2 Jan 2012 15:25:14 +0100 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-RFC2646: Format=Flowed; Original Lines: 93 Message-ID: <4f01be48$0$1204$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 178.42.211.224 X-Trace: 1325514312 unt-rea-a-02.news.neostrada.pl 1204 178.42.211.224:10129 X-Complaints-To: abuse@news.neostrada.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit