Autor Beitrag
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Sa 13.06.09 18:49 
Das Projekt lebt immer noch, auch wennd er Webserver mal wieder nicht geht :) Der steht in Berlin in der Wohung der Ex-Freundin meines besten Freundes und ist abgeraucht. Der Freund wohnt aber mittlerweile in München und muss nun erstmal wieder nach Berlin tuckern und dort die Daten holen und einen neuen Server in München aufsetzen. Wie das Leben halt manchmal so spielt. :D

Mittlerweile auch ein gutes Stück gewachsen, viele neue leckere Möglichkeiten. Wenn ich mit den aktuellen Änderungen fertig bin und auch mein Datenbank-Demo gebaut habe, dann setz ich hier wieder was neues rein :)

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mo 20.07.09 21:23 
Der Server ist wieder online seid 1-2 Wochen und ich möchte doch gleichmal die Chance nutzen, ein kleines Update zu schreiben (obwohl ich doch ab und an in das Blog dort schreibe :)).

Neben den üblichen Wartungsarbeiten und Verbesserungen am Gesamtpaket bin ich gerade an einer grösseren Änderung, welche 2 Komponenten ersetzen wird und als Kontroll-Komponente eines Moduls dienen wird.

Problembeschreibung :

In den beiden vorhergehenden Komponenten dazu hatte ich eine offene Datenstruktur, die man erweitern konnte innerhalb der Komponente oder auch innerhalb des Moduls und dann dynamisch bei Laden des Moduls hinzufügen. Allerdings stand ich vor nciht allzulanger Zeit vor dem Problem, einen neuen Daten-Typen hinzufügen zu müssen. Hab ca. 30 Minuten gebraucht, nicht zulang, aber ich fand es im Nachhinein doch zu umständlich.

Lösungsansatz :

Mir kam nach etwas nachdenken dann die Idee, eine komplett dynamische Struktur zu basteln, die man in einem Komponenten-Editor selbst zusammenbasteln kann und die man dann als Delphi-Record geliefert bekommt. Klar, nicht alle Datentypen machen dort Sinn oder sind gar möglich (zum Bsp. Objekte, die der Komponenten-Editor nicht kennen kann). Allerdings für die Aufgaben, die ich für die Komponente zur Zeit sehe, reichten die vorhandenen Datentypen vollkommen aus.

Hier die Definition von Records im Editor...
user defined image

Und hier die Benutzung im Editor :
user defined image

Was dabei rauskommt ist ein Record, welches auf der Empfänger-Seite als Delphi-Record angesprochen werden kann, im markierten Fall würde die Client-Seite (der Aufrufer) ein Record bekommen, welches man in Delphi so defniert :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
RMyRecord = packed record
  NameID   : Integer;
  ImageID  : Integer;
  ParentID : Integer;
end;
PMyRecord = ^RMyRecord;


Damit man weiss, was ich mir mit den Daten gedacht habe... Ich benutze als eines der GUI Elemente eine Outlook style bar, welche in Gruppen zusammengefasst Icons (mit Beschriftung) für verschiedene Funktionen besitzt. Klickt man auf ein Icon, wird die entsprechende Funktion aufgerufen (im Normalfall wäre das ein Fenster aus einem der Module anzeigen). Im Record benutze ich also NameID für die Beschriftung des Icons (ist eine Nummer, weil die den String identifiziert, der geladen werden muss aus der aktuellen Sprach-Datei), ImageID is die ID des Icons (wird über diese beim Resourcen-Manager angefordert, der ein Bild zurückliefert) und ParentID ist wieder die ID eines Strings, welcher die Gruppe angibt. Besteht die Gruppe noch nicht, wird sie erstellt, ansonsten nur das Icon in die Gruppe eingefügt.

Das heisst im Endeffekt, dass diese Funktion nur ein Teil einer Enumerations-Funktion ist, die aus allen Modulen die Daten zusammensammelt, um die Outlookbar zu füllen. Ein Teil eines Automatisierungsprozesses, sozusagen. Man schreibt ein Modul, welches sich gern irgendwo reinhängen will und muss nicht im Modul per Hand Code schreiben, um solche Sachen zu machen wie diese oder ein Fenster zu erstellen etc. Und man weiss, dass es sorum richtig ankommt, solange man die Daten selbst richtig eingibt ;)

Will ich das ganze nun nicht in einer Outlookbar, sondern im MainMenu unterbringen, kann ich mir ein anderes Datenrecord basteln, welches mir alle Daten zur Verfügung stellt, um ein MainMenu zu füllen, also auch mit SubMenus in SubMenus in SubMenus.

Das interessante dabei war für mich die dynamische Erstellung von Delphi Records (eine nette Speicher-Spielerei !!!), so dass ich keine varianten Datentypen nehmen muss und auch die Daten im DFM einer Form oder eines DataModules gespeichert werden konnten.

Ich hoffe der Beitrag war mal wieder interessant für einige...

Helge

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mi 04.11.09 19:34 
ERP Framework Components ist tot... :(

Es lebe Modular Application Framework Components :)

Nach anfänglicher Kritik am Namen hier und auch anderswo habe ich mich entschieden, das Gesamtpaket umzubenennen.
Was dahinter steht, kann sich jeder denken :

1.) Refactoring aller Klassen, weg vom TERPXXXX name style zum TmafXXXX. das gleiche gilt für units, die jetzt alle uMAF_XXXX.pas heissen
2.) anpassen bestehender Projekte durch Änderung der DFM files per Hand, um binäre Datenstreams nicht zu verlieren
3.) Neue domain, weg von [url]www.erp-components.com[/url] zu www.maf-components.com (Danke an user profile iconBenBE für seine Hilfe und Ausdauer, um von Strato auf seinen Server umzuziehen .... schönes Angebot von ihm btw... falls jemand eine Webseite hosten will, user profile iconBenBE ist Euer Mann!
4.) Einträge bei ShareIt.com updaten, Texte umschreiben dort und auf der eigenen Webseite.

Und da waren sicherlich noch hier und da andere kleine Arbeiten zu machen. Also eine Menge Arbeit, kein Wunder, dass ich es bisher gescheut hatte.
Aber für die neue version 2.0, die endlich (!!!) fertig ist, wollte ich es richtig machen. Die Komponenten sind erwachsener, warum auch nicht Name, Webseite ud Angebot. :)

Was ist neu :

  • verbesserte DynamicCode engine mit mehr Sicherheitsfunktionen
  • komplett neue Resourcen-Verwaltung über monolith files, Unicode and ANSI support natürlich
  • vereinfachte Kommunikation über Link-Komponenten
  • stark vereinfachte Modul-Verwaltung mit neuem Komponenten-Editor für Code-Publishing, einfache Erstellung von Standart-Aktionen, automatisierter Fenster-Verwaltung (Erstellen, Zerstören, Nachrichten-Zustellung von anderen MAF Komponenten)
  • stark verbesserte Benutzerverwaltung mit automatisierter Rechteverwaltung durch Code-Gruppen
  • stark verbessertes Klassen-Design der Manager- und Client-Kopmponenten
  • neue FileDB Komponente zum Einsatz in datenbanklosen Projekten, speichert binäre Datenstreams und verwaltet Benutzer des Programms


Es gibt sicherlich noch eine Million anderer Verbesseungen, die mir grad nicht einfallen, aber naja..
Auf der Webseite gibt es mittlerweile 6 Tutorials, die Schritt für Schritt erklären, wie bestimmte Aufgaben gelöst werden können.

Wie schon vorher mal gesagt, MAF Components sind für den privaten und nicht-kommerziellen Einsatz kostenlos ohne Beschränkungen innerhalb der Komponenten, dazu kann man bei mir eine private Lizenz anfordern.

Für den kommerziellen Einsatz gibt es Standard und Professional Pakete, erstere als DCU/BPL files, letztere kommt natürlich wie immer mit vollem Source code.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 08.11.09 01:27 
Nur einmal eine kurze Frage: wie erfolgreich ist das Projekt? Also wie gut wird es angenommen? Denn inzwischen sind ja schon mehr als 2 1/2 Jahre vergangen seit dem du es hier zum ersten Mal meldeste ;)
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 08.11.09 01:59 
Ein paar Lizenzen habe ich verkauft, auch jetzt mit der neuen Version schon 2, aber es könnte ruhig mehr sein.
Wenn ich jetzt selbst zurückblicke auf die 1.0 version, dann könnte ich mich natürlich schon fast schämen, das als kommmerzielles Produkt angeboten zu haben, aber wie es immer ist beim Programmieren : Man entwickelt sich persönlich ständig weiter und lernt neue Sachen und neue Wege, bestimmte Sachen zu programmieren. Und eine Version 1.0 ist weder vertrauenserweckend (noch zuviele potentielle Fehlerquellen) noch annähernd ausgereift (man hat grösstenteils seine eigenen Vorstellungen drin, nicht wie der Nutzer später es wirklich braucht und will).

In den 2 1/2 Jahren habe ich ein wenig mehr Gehirnschmalz investiert, auf Kritik zur Version 1 gehört und das ganze Paket etwas abgerundeter und logischer gemacht, sowie stark vereinfacht in der Benutzung. Allerdings eben nichts gross an die Glocke gehängt mit Veröffentlichungen, da ich mich im Leben auf andere Sachen konzentrieren wollte (Heirat, Kind geboren etc) und viel freelance Aufträge hier im Land gemacht, um meine Kontakte auszubauen.

Ich denke, mit der neuen Version kann sich etwas mehr Erfolg einstellen, da es eben viel besser ist, eine bessere und umfangreichere Demo hat und die Webseite stark aufpoliert wurde. Nur am Marketing muss ich noch arbeiten :)

Insgesamt habe ich allerdings das Gefühl im netz, als wäre Delphi ein wenig im Rückzug, ohne Turbos etc ist es schwer, neue Programmierer dafür zu begeistern.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 08.11.09 02:22 
user profile iconHelgeLange hat folgendes geschrieben Zum zitierten Posting springen:
Ein paar Lizenzen habe ich verkauft, auch jetzt mit der neuen Version schon 2, aber es könnte ruhig mehr sein.

Unter der Annahme das dein letzter Post hier am Erscheinungstag von v2 erschien, geht das ergebnis doch schon für ein nebenläufiges Projekt ;).


user profile iconHelgeLange hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich jetzt selbst zurückblicke auf die 1.0 version, dann könnte ich mich natürlich schon fast schämen, das als kommmerzielles Produkt angeboten zu haben, aber wie es immer ist beim Programmieren : Man entwickelt sich persönlich ständig weiter und lernt neue Sachen und neue Wege, bestimmte Sachen zu programmieren.

Ich duck mich da lieber :lol: Ich habe vor 3 Jahren mit einem PHP-Templatesystem angefangen - und irgendwie werde ich damit nicht fertig (inzwischen läuft es aber mal wieder und größere Änderungen sind nimmer geplant). Ist aber schon lustig wenn man etwas Hobbymäßig macht. Man programmiert bissl dran rum, irgendwann merkt man: ey, so würde es besser gehen :arrow: man fängt neu an. Die Anzahl der Generationen habe ich bei mir jetzt nicht gezählt (2 stellig dürfte die inzwischen sein :mrgreen: ). Auf jeden Fall wird es dir mit v2 bei v3 bzw v4 auch so gehen ;).

user profile iconHelgeLange hat folgendes geschrieben Zum zitierten Posting springen:
Insgesamt habe ich allerdings das Gefühl im netz, als wäre Delphi ein wenig im Rückzug, ohne Turbos etc ist es schwer, neue Programmierer dafür zu begeistern.

Ja zum einem wegen dem fehlen neuerer kostenloser Versionen (das Erscheinen einer neuen kostenlosen IDE, die sonst kommerziell ist, geht doch oftmals über diverse Newsseiten, und somit ist es Werbung) und zum anderem hat Borland eine Menge vermasselt. Zum einem der extrem späte Start von nativer Unicodeunterstützung und zum anderem wegen kleineren Sprachfeatures die in nahezu allen anderen Sprachen üblich sind, nur Delphi halt nicht (+= & Co). Gibt es eigentlich inzwischen Namespaces? Ich glaube nicht, oder? Insgesamt müssten die einiges wieder aufholen. Was mir aber an Delphi gefällt, wes wegen ich mich auch nicht ganz von Delphi abwenden will: der sehr schöne Support von Propertys. Unter Java, PHP & Co habe ich soetwas noch nicht gefunden :(
Aufgrund der langsamen Entwicklung dieser Sprache verliert Delphi auch in Schulen immer mehr Bedeutung. In Schulen wird halt Java Standard *graus*
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 08.11.09 02:35 
Naja, ich müsste mehr posten in verscheidenen Foren :) Werd mich wohl die tage mal im DP Forum verewigen, will aber da erstmal mit dem Moderator reden, der für die Freeware-Sparte zuständig ist, denn es ist ja auch ein kommerzielles Produkt. Allerdings gibt es eine unbeschränkte Freeware version für nicht-kommerzielle Projekte. Von daher könnte es ja passen. :) Aber lieber fragen, dann posten...

Es gibt wie bei jedem "Hobby-"Projekt Hoch und Tiefs. Mal hat man einfach keine Zeit, die ganze Zeit dran zu sitzen und neue Features einzubauen, schliesslich verdioent man damit ja nicht seinen Lebensunterhalt. Ich glaube auch nicht, dass man es kann, da muss man schon 5-10 solcher Projekte am Laufen haben. Klar, eine Lizenz verkaufen ist hier in Vzla ein halber Monatslohn (nach Schwarzmarkt-Kurs).

Rechnet man es mal hoch bei 1.7 Millionen angeblicher Delphi-Programmierer (laut Embarcadero).. wenn nur 100 davon eine Single-User-Lizenz kaufen würden, wäre das ein sehr guter Start (1 user = 200 euro in source-version, macht 20.000 euro). Für 20.000 Euro würd ich es fast schon ganz verkaufen, so dass ich ncihts mehr mit zu tun habe und eine professionelle Software-Schmiede wie TMS die weitere Vermarktung übernimmt. Aber soviel Glück hab ich bestimmt nicht, dass sich eine grosse Firma für interessiert. :(

Wegen der Versionen.. ich habe mal in meinem Blog über die Code-Evolution bei mir geschrieben, kannst aj mal gucken, wenn der Server wieder da ist...

Ich hatte letztens auch einen Link zu einer Umfrage von Embarcadero gepostet, da fragte man auch nach Preismodellen etc., vielleicht führen sie ja sowas wie die Turbos wieder ein :)

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mo 09.11.09 21:54 
Ich habe gerade ein neues Build in der Version 2.0.0.645 in den Download Bereich gelegt, auch Demo und Demo Source sind neu.

Die neue Version benutzt standard-mässig keine PNGComponents mehr, da es erstaunlicherweise zu Problemen kam, wenn man die Demo selbst übersetzen wollte. Offensichtlich ist für Delphi PNGComponents nicht gleich PNGComponents. Will sagen, dass meine unveränderte Version von der Embarcadero Seite ein anderes Kompilat erzeugt als das gleiche Projekt auf einem anderen Rechner. Ob es mit Zeitstempel zu tun hat, weiss ich nicht, aber es kam immer die Fehlermeldung, dass MAF_Base neu übersetzt werden müsse. Sowie ich mein Original-Kompilat der PNGComponents hinkopiert habe (DCU/BPL und DCP), funktionierte es tadellos.


Um weiteren Problemen aus dem Wege zu gehen, habe ich mich entschlossen, die PNG support rauszunehmen für Delphi-Versionen unter Delphi 2009 (ab da gibt es das von Haus aus). Allerdings kann er per Compiler-Switch wieder eingeschaltet werden (Hint für Professional - Lizenz Besitzer) für alle Delphi Versionen.

Neu ist auch der TFrame support beim Auto-Erstellen von Fenstern, bisher hatte ich dem keien Bedeutung zugemessen, aber ein potentieller Kunde fragte direkt danach und ich habe es eingebaut :)

Alle, die die letzte Version sich runtergeladen haben und fluchten, weil sie nichts selbst mit den Komponenten übersetzen konnten : Sorry ? Das war leider auch neu für mich. Nun sollte es gehen und ich hoffe, dass man es einfach nochmal versucht mit der aktuellen Version.

Helge

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Di 17.11.09 20:01 
Grad bei einem Gespräch mit FinnO festgestellt, dass zumindest er der Meinung war, dass die Komponenten zu teuer sind, als dass man wirklich Interesse zeigt (für Schüler etc.)

Ich bin mir nicht sicher und will grad auch nicht nachschauen, aber es gibt eine Personal Edition, die keine Einschränkungen hat (also kein Nag, kein Limit für geladene Module etc.) und für nicht-kommerzielle Projekte kostenlos ist. Man kann sie direkt bei mir mir ordern : HelgeLange@maf-components.com
Wenn eine neue Version der Komponenten erscheint, können PE Nutzer natürlich auch davon profitieren, da es eine Rundmail gibt mit der neuen Version.

Eine Einschränkung gibt es generell bei den MAF komponenten : Man kann sie nicht komfortabel bei den Turbos einsetzen, da ich ziemlich oft das dfm file nutze, um Sachen abzuspeichern. Aber ich denke, das spielt bei den Turbos eh nicht so die Rolle, da ist man ja ans Selbst-Erzeugen gewöhnt :)

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw