Delphi XE4 oder Lazarus für Firebird-DB-Produktionssystem?

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.
Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Delphi XE4 oder Lazarus für Firebird-DB-Produktionssyste

Beitrag von Groffy »

klemmo hat geschrieben:moin,
Am besten nicht den Fehler machen, mit den ganzen DBEdit etc. Controls zu arbeiten, das wirst du in x Jahren verfluchen (ist bei Delphi genauso). Damit hat man zwar schnell Formulare und Applikationen zusammengeklöppelt, muß dann aber jahrelang das Gerüst mitschleppen. Bei mir wird alles mögliche zur Laufzeit erzeugt, da kann ich mir schnell mal was neues überlegen und muß dann nicht in hunderten Formularen was anpassen.


Hallo Holger,

ich muss gestehen, dass ich Dein Konzept nicht so wirklich verstanden habe. Du benutzt den Formulardesigner zur Entwurfszeit, oder erzeugst Du das komplette Formular mit allen benötigten Controls zur Laufzeit? Du nutzt nicht die Datenbindung der Controls sondern befüllst / aktualisierst alle Controls mittels Code, bzw. liest den Inhalt zum Rückschreiben in die Datenbank? Das stelle ich mir bei Grids aber recht aufwendig vor.



Beste Grüße

klemmo
Beiträge: 7
Registriert: Mo 15. Aug 2011, 18:32

Re: Delphi XE4 oder Lazarus für Firebird-DB-Produktionssyste

Beitrag von klemmo »

Groffy hat geschrieben:ich muss gestehen, dass ich Dein Konzept nicht so wirklich verstanden habe. Du benutzt den Formulardesigner zur Entwurfszeit, oder erzeugst Du das komplette Formular mit allen benötigten Controls zur Laufzeit? Du nutzt nicht die Datenbindung der Controls sondern befüllst / aktualisierst alle Controls mittels Code, bzw. liest den Inhalt zum Rückschreiben in die Datenbank? Das stelle ich mir bei Grids aber recht aufwendig vor.


Das komplette Formular wird bei mir mittlerweile zur Laufzeit erzeugt. Das macht im Prinzip eine selbstgeschriebene Klasse, die auf einem Panel oder einer Scrollbox einfach nach gewissen Regeln Komponenten positioniert und diese auch gleich mit Daten füllt. Die Regeln basieren dabei auf Tabellenfelder und Typen in der DB, beispielweie wird für ein Datumsfeld automatisch ein TDateEdit Control erzeugt, bei einem Blob Sub_type text ein TMemo usw. Die Positionierung läuft als Standard vertikal von oben nach unten. Mit einem in der Software integrierten Designmodus kann der Anwender die Feldpositionen und Größen anpassen. Diese Infos werden dann als Tags in der DB gespeichert und beim nächsten erzeugen wieder nachgeladen.

Im OnChange Event jedes Controls wird nun automatisch der Datensatz als verändert vermerkt und vor dem Klick auf einen anderen Datensatz per auomatisch erzeugtem "Update or Insert" Befehl von der selbstgeschriebenen Klasse an die DB geschickt. Für die Navigation habe ich immer eine ownerdraw Listbox im Einsatz, die mehrspaltig ist. Der Anwender kann dabei im Designmode selbst entschieden, welche Spalten er sehen kann, aber die Bearbeiten geschieht generell nie im Grid. Oberhalb der Listbox ist ein Suchfeld, mit dem man ähnlich wie in Google alles suchen kann. Bei Masterdetail Beziehungen erscheint dann auch noch ein Treeview, in dem dann ggf auch die Detaildaten erscheinen (angebotspositionen usw.)

Evtl. bekommst du einen ersten Eindruck auf www.brp-software.com, da gibt es auch eine voll funktionsfähige Einzelplatzversion bzw. Tutorialvideos. Da wir im Moment sehr dicht sind mit Projekten auf BRP Basis ist auf der Webseite nicht alles 100% aktuell, aber sicherlich schon mal sinnvoll für den ersten Eindruck.

Mir ist im Laufe der Jahre in vielen Projekten deutlich geworden, das normal denkende Anwender immer mehr Probleme bekommen, wenn man endlos Eingabeelemente auf einem Bildschirm packt. Pagecontrols verschlimmern das Problem aus meiner Sicht sogar noch.

Datenbearbeitung im Grid mag da hat seine Vorteile haben, hat aber de fakto auch gravierende Nachteile. Wenn man sich Excel mal genau anschaut wird da übrigens auch gar nicht wirklich im Grid editiert, sondern in der Befehlszeile, es wird halt nur der Inhalt von da gleich in die Zelle hineinkopiert, so das es aussieht, als ob man da arbeiten würde, ist aber in Wirklichkeit gar nicht so. Wenn ich irgendwann mal darin einen Vorteil sehe werde ich das evtl auch so ähnlich umsetzen, ist aber im Moment bei keinem Kunden ein Wunsch.

Ich für meinen Teil glaube, das man sich heutzutage bei vielen Projekten eher an die Google Idee (wenige Controls, einfaches Layout) halten sollte, um die Einarbeitungszeit zu minimieren. So viele Vorteile auch immer ein DBGrd von Devexpress oder TMS auch hat, auch da gilt die 90/10 Regel: 90 Prozent aller Anwender bzw Programmierer nutzen nicht mal 10% der Funktionalitäten.

Aus der Sicht des Programmierers ist es natürlich ein gewisser Mehraufwand, den man da treibt, aber das holt man am Ende sehr schnell wieder rein und erst recht dann, wenn man den eigenen Quellcode für mehrere unterschiedliche Kundenprojekte benutzen möchte, die nämlich bei mir nur durch Unterschiede in der DB abgebildet werden.

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Delphi XE4 oder Lazarus für Firebird-DB-Produktionssyste

Beitrag von Hercules »

Hallo Marco,
ich bin ein Fan von Lazarus und habe schon viele kleinere aber auch größere Anwendungen
programmiert. Ich programmiere überwiegend für die Firma, weniger privat.
Früher habe ich auch viel mit Delphi gemacht, aber nach einem Umstieg auf
Lazarus war ich nach kurzer Zeit begeistert.
Eine Sache muss ich allerdings einräumen, weil mich die immer wieder in die Knie
gezwungen hat: Du wirst mit Lazarus immer wieder mit Umlauten zu kämpfen haben.
Vor allen Dingen wenn es um Vergleiche geht, die mit Text zu tun haben.
Wenn Du also in Deiner Software damit zu tun hast, dann ist es besser, wenn Du bei
Delphi bleibst. Ich musste einige Anwendungen wieder in Delphi umschreiben,
weil es aus dem eben beschriebenen Grund keine vernünftige Lösung in Lazarus gab.
Mit freundlichem Gruß,
Hercules.

g3sh
Beiträge: 21
Registriert: Mi 3. Jul 2013, 10:04

Re: Delphi XE4 oder Lazarus für Firebird-DB-Produktionssyste

Beitrag von g3sh »

Hercules hat geschrieben:Eine Sache muss ich allerdings einräumen, weil mich die immer wieder in die Knie
gezwungen hat: Du wirst mit Lazarus immer wieder mit Umlauten zu kämpfen haben.
Vor allen Dingen wenn es um Vergleiche geht, die mit Text zu tun haben.


Mit den Umlauten hatte ich am Anfang auch meine Probleme, konnte es aber immer lösen.
Meist mit Hilfe der Unit LazUTF8 (bzw. der alten LCLProc) oder mit den UTF8 Umcodierungsbefehlen.
Hat man sich daran gewöhnt, sehe ich da eigentlich keine so großen Probleme mehr.

Kannst du mal ein konkretes Beispiel nennen wo es nicht geht ?

MfG

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Delphi XE4 oder Lazarus für Firebird-DB-Produktionssyste

Beitrag von mschnell »

Hercules hat geschrieben: Du wirst mit Lazarus immer wieder mit Umlauten zu kämpfen haben. Vor allen Dingen wenn es um Vergleiche geht, die mit Text zu tun haben. ...

Deshalb plant die fpc Community ja die Umstellung auf "New Strings". Dann werden die meisten dieser Probleme behoben und der Wechsel zwischen Delphi und Lazarus wird (u.U. viel) einfacher, aber (viele) Lazarus-Projekte muss man umstellen.

-Michael

Antworten