Thread View: pl.comp.lang.delphi
22 messages
22 total messages
Started by konsul41
Thu, 28 Sep 2017 09:51
Delphi XE2 FM MVC
Author: konsul41
Date: Thu, 28 Sep 2017 09:51
Date: Thu, 28 Sep 2017 09:51
25 lines
1751 bytes
1751 bytes
Interesuje mnie jak w Delphi wykonuje się MVC
Mam model który ma takie właściwości i jest fakturą.
property dok_id: Integer read Getdok_id write Setdok_id;
property OkresKsiegowy: TOKres read GetOkresKsiegowy write
SetOkresKsiegowy;
property NazwaDziennika: string read GetNazwaDziennika write
SetNazwaDziennika;
property NumerDziennika: Integer read GetNumerDziennika write
SetNumerDziennika;
property NumerDokumentu: string read GetNumerDokumentu write
SetNumerDokumentu;
property DataRej: TDate read GetDataRej write SetDataRej;
property DataDok: TDate read GetDataDok write SetDataDok;
property DataPodatkowa: TDate read GetDataPodatkowa write
SetDataPodatkowa;
Jak teraz do niego dorobić pozostałe dwie części
Kontroler i Widok.
Wszystko fajnie jest opisywane w teorii ale mało w praktyce (dla Delphi).
Chodzi mi o to jak powinno się to zrealizować praktycznie w Delphi?
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Thu, 28 Sep 2017 10:21
Date: Thu, 28 Sep 2017 10:21
3 lines
1263 bytes
1263 bytes
Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym kiedy zmienia się model. Ale jak połączyć taki TEdit z modelem?
Re: Delphi XE2 FM MVC
Author: wloochacz
Date: Thu, 28 Sep 2017 11:46
Date: Thu, 28 Sep 2017 11:46
10 lines
1455 bytes
1455 bytes
W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: > Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym > kiedy zmienia się model. Możesz, ale po co? > Ale jak połączyć taki TEdit z modelem? Dlaczego nie użyjesz LiveBindings? -- wloochacz
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Thu, 28 Sep 2017 12:38
Date: Thu, 28 Sep 2017 12:38
11 lines
1406 bytes
1406 bytes
W dniu 28-09-2017 o 13:46, wloochacz pisze: > W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >> kiedy zmienia się model. > Możesz, ale po co? > >> Ale jak połączyć taki TEdit z modelem? > Dlaczego nie użyjesz LiveBindings? > A czy TBindSourceAdapter nie jest dostępny dopiero w XE3?
Re: Delphi XE2 FM MVC
Author: wloochacz
Date: Thu, 28 Sep 2017 12:50
Date: Thu, 28 Sep 2017 12:50
21 lines
1891 bytes
1891 bytes
W dniu 2017-09-28 o 14:38, konsul41@wp.pl pisze: > W dniu 28-09-2017 o 13:46, wloochacz pisze: >> W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >>> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >>> kiedy zmienia się model. >> Możesz, ale po co? >> >>> Ale jak połączyć taki TEdit z modelem? >> Dlaczego nie użyjesz LiveBindings? >> > > A czy TBindSourceAdapter nie jest dostępny dopiero w XE3? Jest, ale co to ma do rzeczy? Jak chcesz klikać, to kup nowsze Delphi. Jak chcesz kodować, to wystarczy XE2. A nawet XE, ale wtedy trzeba użyć np. tego: https://bitbucket.org/sglienke/dsharp -- wloochacz
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Thu, 28 Sep 2017 13:12
Date: Thu, 28 Sep 2017 13:12
22 lines
2055 bytes
2055 bytes
W dniu 28-09-2017 o 14:50, wloochacz pisze: > W dniu 2017-09-28 o 14:38, konsul41@wp.pl pisze: >> W dniu 28-09-2017 o 13:46, wloochacz pisze: >>> W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >>>> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >>>> kiedy zmienia się model. >>> Możesz, ale po co? >>> >>>> Ale jak połączyć taki TEdit z modelem? >>> Dlaczego nie użyjesz LiveBindings? >>> >> >> A czy TBindSourceAdapter nie jest dostępny dopiero w XE3? > Jest, ale co to ma do rzeczy? > Jak chcesz klikać, to kup nowsze Delphi. > Jak chcesz kodować, to wystarczy XE2. > > A nawet XE, ale wtedy trzeba użyć np. tego: > https://bitbucket.org/sglienke/dsharp > wymaga springa czy chodzi o tego https://bitbucket.org/sglienke/spring4d
Re: Delphi XE2 FM MVC
Author: Roman Tyczka
Date: Thu, 28 Sep 2017 15:02
Date: Thu, 28 Sep 2017 15:02
13 lines
1300 bytes
1300 bytes
On Thu, 28 Sep 2017 15:12:35 +0200, konsul41@wp.pl wrote: >> A nawet XE, ale wtedy trzeba użyć np. tego: >> https://bitbucket.org/sglienke/dsharp >> > wymaga springa > czy chodzi o tego https://bitbucket.org/sglienke/spring4d Tak, nie ma innego Springa dla Delphi. -- pozdrawiam Roman Tyczka
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 06:00
Date: Fri, 29 Sep 2017 06:00
12 lines
1325 bytes
1325 bytes
W dniu 28-09-2017 o 13:46, wloochacz pisze: > W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >> kiedy zmienia się model. > Możesz, ale po co? > >> Ale jak połączyć taki TEdit z modelem? > Dlaczego nie użyjesz LiveBindings? > Testuje. Jak w sposób alternatywny można to zrobić?
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 07:57
Date: Fri, 29 Sep 2017 07:57
14 lines
1510 bytes
1510 bytes
>> A czy TBindSourceAdapter nie jest dostępny dopiero w XE3? > Jest, ale co to ma do rzeczy? > Jak chcesz klikać, to kup nowsze Delphi. > Jak chcesz kodować, to wystarczy XE2. > > A nawet XE, ale wtedy trzeba użyć np. tego: > https://bitbucket.org/sglienke/dsharp > A czy nie jest on tylko dla VCL? przerabiam sample i problemem jest unit DSharp.Bindings.VCLControls nie ma dla FireMonkey. Na formie Firemonkey jest AccesViolation, a na VCL działa.
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 09:17
Date: Fri, 29 Sep 2017 09:17
24 lines
1857 bytes
1857 bytes
W dniu 28-09-2017 o 14:50, wloochacz pisze: > W dniu 2017-09-28 o 14:38, konsul41@wp.pl pisze: >> W dniu 28-09-2017 o 13:46, wloochacz pisze: >>> W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >>>> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >>>> kiedy zmienia się model. >>> Możesz, ale po co? >>> >>>> Ale jak połączyć taki TEdit z modelem? >>> Dlaczego nie użyjesz LiveBindings? >>> >> >> A czy TBindSourceAdapter nie jest dostępny dopiero w XE3? > Jest, ale co to ma do rzeczy? > Jak chcesz klikać, to kup nowsze Delphi. > Jak chcesz kodować, to wystarczy XE2. > > A nawet XE, ale wtedy trzeba użyć np. tego: > https://bitbucket.org/sglienke/dsharp > A co sądzisz o tym? http://www.danieleteti.it/net-databinding-in-delphi-for-win32/ mniejsze.
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 09:34
Date: Fri, 29 Sep 2017 09:34
6 lines
1217 bytes
1217 bytes
> A co sądzisz o tym? > http://www.danieleteti.it/net-databinding-in-delphi-for-win32/ > > mniejsze. Ślepa uliczka tylko w jedną stronę.
Re: Delphi XE2 FM MVC
Author: Roman Tyczka
Date: Fri, 29 Sep 2017 10:13
Date: Fri, 29 Sep 2017 10:13
13 lines
1322 bytes
1322 bytes
On Fri, 29 Sep 2017 11:34:30 +0200, konsul41@wp.pl wrote: >> A co sądzisz o tym? >> http://www.danieleteti.it/net-databinding-in-delphi-for-win32/ >> >> mniejsze. > Ślepa uliczka tylko w jedną stronę. Teraz odkryj Columbusa tegoż samego autora :-) -- pozdrawiam Roman Tyczka
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 10:13
Date: Fri, 29 Sep 2017 10:13
15 lines
1739 bytes
1739 bytes
W dniu 29-09-2017 o 08:00, konsul41@wp.pl pisze: > W dniu 28-09-2017 o 13:46, wloochacz pisze: >> W dniu 2017-09-28 o 12:21, konsul41@wp.pl pisze: >>> Teoretycznie w modelu mógłbym zarejestrować obserwatora i wiedziałbym >>> kiedy zmienia się model. >> Możesz, ale po co? >> >>> Ale jak połączyć taki TEdit z modelem? >> Dlaczego nie użyjesz LiveBindings? >> > Testuje. > > Jak w sposób alternatywny można to zrobić? Myślałem że w moim obiekcie zrobić obserwatora, a np TEdit podpiąć się pod OnChange .
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Fri, 29 Sep 2017 10:57
Date: Fri, 29 Sep 2017 10:57
15 lines
1956 bytes
1956 bytes
W dniu 29-09-2017 o 12:13, Roman Tyczka pisze: > On Fri, 29 Sep 2017 11:34:30 +0200, konsul41@wp.pl wrote: > >>> A co sądzisz o tym? >>> http://www.danieleteti.it/net-databinding-in-delphi-for-win32/ >>> >>> mniejsze. >> Ślepa uliczka tylko w jedną stronę. > > Teraz odkryj Columbusa tegoż samego autora :-) > Moja wypowiedź oznacza ślepą uliczkę dla mnie. Ponieważ dane są pobierane z mojego obiektu i pokazywane. Brak połączenia w drugą stronę. Moja wypowiedź w żaden sposób nie dotyczyła autora kodu ani samego kodu.
Re: Delphi XE2 FM MVC
Author: Roman Tyczka
Date: Fri, 29 Sep 2017 11:44
Date: Fri, 29 Sep 2017 11:44
23 lines
1828 bytes
1828 bytes
On Fri, 29 Sep 2017 12:57:32 +0200, konsul41@wp.pl wrote: >>>> A co sądzisz o tym? >>>> http://www.danieleteti.it/net-databinding-in-delphi-for-win32/ >>>> >>>> mniejsze. >>> Ślepa uliczka tylko w jedną stronę. >> >> Teraz odkryj Columbusa tegoż samego autora :-) >> > Moja wypowiedź oznacza ślepą uliczkę dla mnie. > Ponieważ dane są pobierane z mojego obiektu i pokazywane. > Brak połączenia w drugą stronę. > Moja wypowiedź w żaden sposób nie dotyczyła autora kodu ani samego kodu. No i co z tego, że Twoja nie dotyczyła? Moja dotyczyła, chyba jasno napisałem. Szukasz rozwiązania i pewnie trafisz także na Columbusa, więc wyprzedziłem fakty. -- pozdrawiam Roman Tyczka
Re: Delphi XE2 FM MVC
Author: J-23
Date: Sun, 01 Oct 2017 14:24
Date: Sun, 01 Oct 2017 14:24
62 lines
3780 bytes
3780 bytes
W dniu 28.09.2017 o 11:51, konsul41@wp.pl pisze: > Interesuje mnie jak w Delphi wykonuje się MVC > Wszystko zależy co potrzebujesz. Gotowego Fremworka bazującego na MVC ci nie podsune w Delphi ale powiem swoje spostrzeżenia nt MVC Teoria mówi by wszystkie trzy elementy były ze sobą luzno powiązane - znaczy to tyle że w teorii każdy z tych elementów powinien być wymienny To napewno znasz - ale teraz musisz zdać sobie sprawę co ci tak naprawdę jest potrzebne - gdzie zaczyna się tak naprawdę Model - Widok - Kontroler > > > Mam model który ma takie właściwości i jest fakturą. > > property dok_id: Integer read Getdok_id write Setdok_id; > property OkresKsiegowy: TOKres read GetOkresKsiegowy write > SetOkresKsiegowy; > property NazwaDziennika: string read GetNazwaDziennika write > SetNazwaDziennika; > property NumerDziennika: Integer read GetNumerDziennika write > SetNumerDziennika; > property NumerDokumentu: string read GetNumerDokumentu write > SetNumerDokumentu; > property DataRej: TDate read GetDataRej write SetDataRej; > property DataDok: TDate read GetDataDok write SetDataDok; > property DataPodatkowa: TDate read GetDataPodatkowa write > SetDataPodatkowa; > > Jak teraz do niego dorobić pozostałe dwie części > Kontroler i Widok. > Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz wszystkie operacje jakie możesz wykonać na tej fakturze i tyle Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę wyżej nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to co było związane z bazą danych - kontroler był też dość rozbudowany bo posiadał i zarządzanie bazą (wszystkie operacje wykonywane na bazie itp nawet formatki niektóre tak by łatwo wymieniać pewną funkcjonalności) a jako widok obrałem sobie poszczególne wzory faktur. Z tego co napisałem wyżej były jeszcze wydzielone pakiety odpowiedzialne m,in za działanie na poszczególnych silnikach bazodanowych Podsumowując nie traktuj MVC jako 1:1 czyli jedna klasa to pojedynczy element problemu. Głownym zadaniem MVC jest podzielenie tego na odpowiednie elementy możesz oczywiście podchodzić tak ze jedna klasa jedna czynność z MVC ale wtedy się łatwo po gubić We wspomnianym komponencie do fakturowania miałem w ten sposób łatwą możliwość wymiany wzorów dokumentów oraz silników baz danych wszystko sprowadzało się do tego że kładłem wybrane elementy na formę. Bez skrobania jakiegokolwiek kodu Pozdrawiam
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Mon, 02 Oct 2017 06:05
Date: Mon, 02 Oct 2017 06:05
13 lines
1700 bytes
1700 bytes
> Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz > wszystkie operacje jakie możesz wykonać na tej fakturze i tyle > > Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur > gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę wyżej > nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to co było > związane z bazą danych - kontroler był też dość rozbudowany bo posiadał > i zarządzanie bazą (wszystkie operacje wykonywane na bazie itp nawet > formatki niektóre tak by łatwo wymieniać pewną funkcjonalności) a jako > widok obrałem sobie poszczególne wzory faktur. Tylko u mnie model nie wie nic o sposobie utrwalania (baza danych) od tego jest repozytorium. W modelu nie ma ani jednej linijki SQL.
Re: Delphi XE2 FM MVC
Author: J-23
Date: Mon, 02 Oct 2017 14:54
Date: Mon, 02 Oct 2017 14:54
29 lines
2717 bytes
2717 bytes
W dniu 02.10.2017 o 08:05, konsul41@wp.pl pisze: > >> Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz >> wszystkie operacje jakie możesz wykonać na tej fakturze i tyle >> >> Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur >> gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę wyżej >> nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to co było >> związane z bazą danych - kontroler był też dość rozbudowany bo >> posiadał i zarządzanie bazą (wszystkie operacje wykonywane na bazie >> itp nawet formatki niektóre tak by łatwo wymieniać pewną >> funkcjonalności) a jako widok obrałem sobie poszczególne wzory faktur. > Tylko u mnie model nie wie nic o sposobie utrwalania (baza danych) od > tego jest repozytorium. W modelu nie ma ani jednej linijki SQL. No ok, tylko to co ja ci opisałem miało na celu przedstawić że MVC może przybierać różne postaci w zależności od warstwy w jakiej chcesz użyć MVC. Tak jak pisałem wcześniej odnosząc się do klasy którą podałeś jeśli tą klase potraktujesz jako model to kontrolerem powinny być operacje na tej klasie (możliwe do wykonania) a widokiem wynik tych operacji. Jednak jak widzisz taki podział może być nie wystarczający lub wymagający dodatkowych warstw by coś sensownego z tego powstało lepiej myśl o tym w ten sposób by każdy element wzorca zamykał w sobie jakąś konkretną funkcjonalność wtedy ci będzie łatwiej to zrozumieć. Pozdrawiam J-23
Re: Delphi XE2 FM MVC
Author: Karol
Date: Mon, 02 Oct 2017 18:22
Date: Mon, 02 Oct 2017 18:22
29 lines
2873 bytes
2873 bytes
W dniu 2017-10-02 o 16:54, J-23 pisze: > W dniu 02.10.2017 o 08:05, konsul41@wp.pl pisze: >> >>> Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz >>> wszystkie operacje jakie możesz wykonać na tej fakturze i tyle >>> >>> Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur >>> gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę >>> wyżej nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to >>> co było związane z bazą danych - kontroler był też dość rozbudowany >>> bo posiadał i zarządzanie bazą (wszystkie operacje wykonywane na >>> bazie itp nawet formatki niektóre tak by łatwo wymieniać pewną >>> funkcjonalności) a jako widok obrałem sobie poszczególne wzory faktur. >> Tylko u mnie model nie wie nic o sposobie utrwalania (baza danych) od >> tego jest repozytorium. W modelu nie ma ani jednej linijki SQL. > > No ok, tylko to co ja ci opisałem miało na celu przedstawić że MVC może > przybierać różne postaci w zależności od warstwy w jakiej chcesz użyć MVC. > > Tak jak pisałem wcześniej odnosząc się do klasy którą podałeś jeśli tą > klase potraktujesz jako model to kontrolerem powinny być operacje na tej > klasie (możliwe do wykonania) a widokiem wynik tych operacji. > > Jednak jak widzisz taki podział może być nie wystarczający lub > wymagający dodatkowych warstw by coś sensownego z tego powstało lepiej > myśl o tym w ten sposób by każdy element wzorca zamykał w sobie jakąś > konkretną funkcjonalność wtedy ci będzie łatwiej to zrozumieć. > Ale to co Piszesz jest niezgodne z DDD i trudne do testowania.
Re: Delphi XE2 FM MVC
Author: J-23
Date: Mon, 02 Oct 2017 18:56
Date: Mon, 02 Oct 2017 18:56
41 lines
3389 bytes
3389 bytes
W dniu 02.10.2017 o 20:22, Karol pisze: > W dniu 2017-10-02 o 16:54, J-23 pisze: >> W dniu 02.10.2017 o 08:05, konsul41@wp.pl pisze: >>> >>>> Bazując na podanej klasie sprawa jest prosta w kontroler wsadzasz >>>> wszystkie operacje jakie możesz wykonać na tej fakturze i tyle >>>> >>>> Ja jak pisałem jeszcze w Delphi stworzyłem sobie komponent do Faktur >>>> gdzie opierał on się o MVC tylko ja to miałem podzielone troszkę >>>> wyżej nuż ty tutaj próbujesz zrobić u mnie modelem było wszystko to >>>> co było związane z bazą danych - kontroler był też dość rozbudowany >>>> bo posiadał i zarządzanie bazą (wszystkie operacje wykonywane na >>>> bazie itp nawet formatki niektóre tak by łatwo wymieniać pewną >>>> funkcjonalności) a jako widok obrałem sobie poszczególne wzory faktur. >>> Tylko u mnie model nie wie nic o sposobie utrwalania (baza danych) od >>> tego jest repozytorium. W modelu nie ma ani jednej linijki SQL. >> >> No ok, tylko to co ja ci opisałem miało na celu przedstawić że MVC może >> przybierać różne postaci w zależności od warstwy w jakiej chcesz użyć >> MVC. >> >> Tak jak pisałem wcześniej odnosząc się do klasy którą podałeś jeśli tą >> klase potraktujesz jako model to kontrolerem powinny być operacje na tej >> klasie (możliwe do wykonania) a widokiem wynik tych operacji. >> >> Jednak jak widzisz taki podział może być nie wystarczający lub >> wymagający dodatkowych warstw by coś sensownego z tego powstało lepiej >> myśl o tym w ten sposób by każdy element wzorca zamykał w sobie jakąś >> konkretną funkcjonalność wtedy ci będzie łatwiej to zrozumieć. >> > Ale to co Piszesz jest niezgodne z DDD i trudne do testowania. > W którym punkcie niezgodne? Niezgodne jeżeli w jednym z tych elementów nie będzie kolejnych warstw. A ja nie napisałem że każdy z tych elementów ma być w tej samej warstwie Ja przedstawiłem MVC w warstwie "funkcyjnej" a to nie oznacza że każda z tych elementów MVC nie ma kolejnych aż po sam obiekt Pozdrawiam J-23
Re: Delphi XE2 FM MVC
Author: konsul41
Date: Tue, 03 Oct 2017 06:07
Date: Tue, 03 Oct 2017 06:07
4 lines
1238 bytes
1238 bytes
> W którym punkcie niezgodne? " u mnie modelem było wszystko to co było związane z bazą danych" Model nie powinien nic wiedzieć o sposobie jego utrwalania.
Re: Delphi XE2 FM MVC
Author: J-23
Date: Tue, 03 Oct 2017 14:57
Date: Tue, 03 Oct 2017 14:57
21 lines
2080 bytes
2080 bytes
W dniu 03.10.2017 o 08:07, konsul41@wp.pl pisze: > >> W którym punkcie niezgodne? > " u mnie modelem było wszystko to co było związane z bazą danych" > Model nie powinien nic wiedzieć o sposobie jego utrwalania. > Nie koniecznie to wszystko zależy w której warstwie użyjesz MVC napisałem to zdanie bo chciałem Ci pokazać że można MVC używać w różnych warstwach Model u mnie też składał się z kilku warstw i też na każdej był użyty MVC Podsumowując oprócz samego podziału na Model - Widok - Kontroler ważny podział na warstwy. Wtedy osiągamy pełną zgodność z dogmatem DDD i nie ma ani problemu z testowaniem tego jak zaznaczył Karol ani problemu z podmianą któregoś elementu Pozdrawiam J-23
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads