Mithilfe gesucht für...

Rund um die LCL und andere Komponenten
schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Mithilfe gesucht für...

Beitrag von schnullerbacke »

Weil man sowas gut brauchen kann und es zudem für die Entwicklung von Komponenten ne Menge Zeit spart und zudem das Testen erleichtert sollte sowas konsequenterweise Teil der IDE sein.

Kurzbeschreibung:

1. in der IDE unter "Komponenten -> Neue visuelle Komponente" einhängen
2. das ruft einen Dialog auf, in dem die Elternklasse gewählt (3 stehen bereits als Grundlage zur Verfügung) wird
3. nach Beendigung des Dialogs mit "Erstellen" wird die Unit als Template erstellt und alle nötigen Werte eingetragen. TNewClassName = class(TParentClass), Registrierung,...
4. zum Entwickeln wird die neue Komponente auf einem TForm in der IDE geöffnet
5. wenn die neue Komponente über Datei -> öffnen aufgerufen wird muß sie automatisch wieder auf einer TForm zum weiteren Bearbeiten geöffnet werden

Der Dialog ist weitgehend fertig und muß noch in der IDE eingehängt werden. Was mir momentan noch nicht ganz klar ist, ist der Weg wie ich die Unit für die neue Komponente erzeugen kann. Da wäre ein Tipp ganz hilfreich, wo sich die entsprechenden Routinen finden (nicht zu allgemein bitte, Hinweis auf die entsprechende Methode wäre schon schön).

Ausblick:

Wenn die grundsätzlichen Funktionen 1-5 laufen, kann man noch über die automatische Produktion der lpk-Datei nachdenken. Ebenso könnte man die Resource(Icon für die IDE) automatisch erzeugen. Z.B. im Dialog die xpm-Datei angeben lassen und die Resource-Datei daraus erzeugen.

Für die Komponenten sollte grundsätzlich folgende Verzeichnis-Struktur automatisch erzeugt werden:

Code: Alles auswählen

PackageName
 -> source
 -> package
      -> test
 -> icons
 -> lib
Bearbeitungszeit ungefähr 4 Wochen für die Grundfunktionen.

Damit das nicht durcheinander geht sollte man die Teilaufgaben aufteilen. So könnte jeweils ein Bearbeiter je eine Automatisierungsaufgabe übernehmen.

Das Ganze sollten wir dann dem Projekt z.V. stellen. Schließlich dürfte das dann der Entwicklung neuer komplexer Komponenten auf die Sprünge helfen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Das hast du schonmal angefragt, ich bin der Meinung das man das villeicht ein mal im leben braucht. Ich persönlich hab noch nie eine Komponente aus anderen Komponenten gebaut weil ich es ineffizent finde.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Und ich hab schon ellenlange Creater gebaut um ein bisschen Spielkram in so ein Ding reinzukriegen. Alleine die Positionierung ist jedesmal ne Sauarbeit die man sich prima sparen kann.

Abgesehen davon kann man mit solchen Komponenten die komplexen Bearbeitungsmethoden die dahinter stehen gut verbergen und hat den Quark dann nicht mehr im Quellcode stehen. Mal abgesehen davon, das man z.B. für eine beliebige ListBox mit Ausgabe von gleichen Objekten die nötigen Schleifen nicht dauernd neu schreiben muß. Das erledigt das Objekt für sich alleine.

Aber, was der Bauer nicht kennt, das frißt er halt nicht.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Könntest du evlt dein vor haben etwas genauer beschreiben ?
und auch den sinn
MFG
Michael Springwald

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Noch genauer?
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10874
Registriert: Mo 11. Sep 2006, 19:01

Re: Mithilfe gesucht für...

Beitrag von theo »

schnullerbacke hat geschrieben:Was mir momentan noch nicht ganz klar ist, ist der Weg wie ich die Unit für die neue Komponente erzeugen kann. Da wäre ein Tipp ganz hilfreich, wo sich die entsprechenden Routinen finden
Da wirst du dich wohl mit den units in LazarusDir/ideintf rumschlagen müssen.
Ich habe keine Ahnung davon.

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@theo

Hab schon das eine oder andere gefunden, eigentlich bräuchte ich mal den Hinweis wo ein Formular neu aufgebaut und in der IDE erstellt wird. Daran könnte man sich dann orientieren.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
theo
Beiträge: 10874
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Das könnte ganz schön aufwändig werden.
Mir geht's ein bisschen wir Christian, ich kann für mich keinen direkten Nutzen darin erkennen.
Was mich aber interessieren würde, falls du's durchziehst, wären deine Erkenntnisse und Erfahrungen im Umgang mit den IDE-Interfaces,

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich kann mir immer noch nicht so recht Vorstellen um was es hier genau geht.
Ich glaube es geht irgendwie um neue Komponenten bzw. abgeleitet aber genau weiß ich es leider nicht !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Für mich persönlich interessieren mich die IDE Interfaces nicht gross aber es wäre schön wenn du deine Erkentnisse im Wiki dokumentieren könntest.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@theo+@Christian

Das wäre der angenehme Nebeneffekt, das man ein ausführliches Beispiel für das Einrichten und Erstellen von IDE-Erweiterungen bekommt.

@an alle

Als Beispiel könnte man für sowas eine Aufgabe aus der Buchhaltung nehmen. Anlageobjekte die linear abgeschrieben werden. Für alle gilt die gleiche Struktur:

Code: Alles auswählen

Key
   -> Bezeichnung
   -> Anschaffungsdatum
   -> Anschaffungspreis
   -> Abschreibungsdauer in Jahren
   -> aktueller Restwert
   -> Restwerte und Abschreibungen als Liste nach Jahren
Die Komponente sieht für alle genau gleich aus und kann trotzdem hunderte unterschiedlicher Objekte umfassen. Als angenehmer Nebeneffekt kann man die Abschreibung nach Gesetzeslage als Ereignis-Prozedur aufrufen lassen. Dann kann man später die Abschreibung sehr einfach auf ein neues Gesetz anpassen indem man einfach die entsprechende Methode baut und zu den anderen hinzufügt und entsprechend aufruft.

Die gleiche Komponente kann zum Eintragen neuer und zum überprüfen vorhandener Anlagen benutzt werden ohne das man das extra bauen muß. Alle Internas wie Aufbau der Listen passieren im Hintergrund und sind im Programm nicht sichtbar, brauchen sie ja auch nicht.

Das schafft Übersicht und Wartbarkeit in einer Rutsche.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Bahnhof Haltestelle Steinstrasse ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ach so eine art DB also... wenn ich dich richtig verstanden habe.
MFG
Michael Springwald

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Nix DB, aber anstatt UML zu benutzen erreicht man das gleiche mit weniger Aufwand und hat ungleich mehr Möglichkeiten. Zusätzlich kann man dem Anwender noch die Möglichkeit geben in gewissen Grenzen die Darstellung zu ändern. Die Datenbank-Anbindung kann beliebig erfolgen, sogar mehrere Schnittstellen sind möglich.

Das ganze kann man dann innerhalb von einer Stunde gebaut haben. Am Ende braucht man sich nur noch mit der wirklichen Programmlogik befassen und hat schlanken Code im jeweiligen Formular.

Unter der Voraussetzung das man das gut kommentiert hat, kann auch ein anderer Programmierer sich schnell da rein finden. Länderanpassungen einfach zu machen, nicht nur Sprache auch gesetzliche Vorschriften.

Anderes Beispiel dein Editor-Projekt. Neuen Button und Action einbauen ist Sekundensache, dann braucht nur die Logik rein ohne mühselig im Create neue Knöpfchen einzubauen und das Ereignis an den Knopf zu binden. Klick und die Ereignis-Routine ist da.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du wirfst da schon wieder n paar sachen durcheinander, weisst du überhaupt was UML ist ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten