Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   DFMEdit (https://www.delphipraxis.net/70017-dfmedit.html)

_frank_ 23. Mai 2006 15:24


DFMEdit
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hi,
ich wollte dieses Forum mal nutzen um meinen DFM-Editor bekannt zu machen.
Wer möchte, kann diesen ja mal testen, Sourcecode/Binaries liegen bei sourceforge.
Grundphilosophie ist Unterstützung aller delphi-versionen, somit kein automatisches Hinzufügen von Eigenschaften.
Vorschau, Eigenschaften-Enumeration und viele andere Sachen sind bereits integriert.
Ich verwende ihn auf einer USB-Variante von Delphi, die keine Installation voraussetzt.

http://dfmedit.sf.net (Projektseite von Sourceforge, dort sind auch einige Screenshots zu finden)
http://www.fw-web.de/dfmedit_beta.php (betas, die vcl30.dpl kann hier runtergeladen werden!)

letzte beta (Direktlink):
mit Laufzeitpackage-Support (benötigt VCL30.dpl):
dfmedit_0.3.0.4b.zip
ohne Laufzeit-packages:
dfmedit_0.3.0.4b_nopackage.zip
source:
dfmedit_0.3.0.4b_src.zip

Hoffe auf viel Feedback.

Gruß Frank

drschubi 25. Mai 2006 18:57

Re: DFMEdit
 
Hallo Frank,

habe Dein Programm gerade heruntergeladen, zeigt mir in der Vorschau nur eine leere Form und meint er kennt TDBGrid nicht.

Ich bleib aber dran, kann ja ein Fehler meinerseits sein.

Delphi auf USB ist ja mal ne feine Sache, funktioniert das wirklich, mit D5 kann ich mir das ja noch vorstellen, welche Version hast Du da laufen?

Gruss René

_frank_ 25. Mai 2006 22:24

Re: DFMEdit
 
ich hab nur die Standard-Komponenten drin (Datenbank-Kompos sind nicht mit dabei). Kannst du aber im sourcecode nachrüsten. Verantwortlich dafür ist die Classes_u.pas...Unit einbinden und bei Registerclasses TDBGrid hinzufügen.
das Grid sollte aber als unbekanntes Control dargestellt werden (wenn Width-eigenschaft vorhanden).
Habe Delphi 3 verwendet...

Gruß Frank

Hador 26. Mai 2006 00:17

Re: DFMEdit
 
Dein Programm funktioniert bei mir.
Allerdings sagt er mir, dass ich das Programm neu starten soll, wenn ich die Sprache von Englisch/Französisch auf Deutsch umstelle.
Umgekehrt jedoch nicht.

Ferner besagen die Regeln für diese Sparte der DP, dass du einen direkten Downloadlink angeben musst. Und nicht nur die Projekthomepage. Es währe schön, wenn du diesen noch angeben würdest. Auch ein Screenshot währe hier nicht verkehrt.

_frank_ 26. Mai 2006 00:28

Re: DFMEdit
 
Das mit dem Neustarten hat folgende Ursache: deutsch ist hardcoded, english/französisch ist in Sprachdateien.
Daher muss neu gestartet werden, wenn man deutsch haben will und die label-captions überschrieben wurden.

Es stehen alle weiterführenden Infos, Screenshots, ältere Versionen, usw. auf der Projektseite.
Habe aber für die letzte beta mal nen direkt-link gepostet (php-script nur wegen downloadcounter, hoffe ist ok so).

Gruß Frank

Ghostwalker 26. Mai 2006 07:36

Re: DFMEdit
 
Hi,

also vorweg, super Idee und auch gute Umsetzung. Insbesondere im Profi-Bereich ist so ein Programm sehr nützlich, da man dem "Auftraggeber" auch ohne Delphi zeigen kann, wie sein Programm aussieht. Auch können (z.B. in einem Meeting), das Design des Programms geändert werden. Wirklich gut :)


Was ich gut fände, wäre, wenn man die Komponentenpallete samt Propertys, die für das Design zur Verfügung stehen, anpassen könnte. Damit könnte man dann auch Fremdkomponenten unterstützen. Als
Anstatz dafür vielleicht ein kleines Utility, das die Komponentenpalette analysiert, und die Properties
der jeweiligen Komponente in eine Datei wegschreibt. Diese Datei könnte dann beim Programmstart/per Menü
geladen werden.

Eine exakte Darstellung ist dann natürlich nicht möglich (dazu müßte die Komponente ja im Programm
verfügbar sein), aber eine schematische Darstellung würde da auch genügen.


Ansonsten, sehr interresant. Ich werde auf alle Fälle weiterbeobachten. :)

_frank_ 26. Mai 2006 08:04

Re: DFMEdit
 
Zitat:

Zitat von Ghostwalker
Hi,

also vorweg, super Idee und auch gute Umsetzung. Insbesondere im Profi-Bereich ist so ein Programm sehr nützlich, da man dem "Auftraggeber" auch ohne Delphi zeigen kann, wie sein Programm aussieht. Auch können (z.B. in einem Meeting), das Design des Programms geändert werden. Wirklich gut :)

danke
Zitat:

Zitat von Ghostwalker
Was ich gut fände, wäre, wenn man die Komponentenpallete samt Propertys, die für das Design zur Verfügung stehen, anpassen könnte. Damit könnte man dann auch Fremdkomponenten unterstützen. Als
Anstatz dafür vielleicht ein kleines Utility, das die Komponentenpalette analysiert, und die Properties
der jeweiligen Komponente in eine Datei wegschreibt. Diese Datei könnte dann beim Programmstart/per Menü
geladen werden.

schonmal die obj-dateien angeschaut? Die sind in der Hilfe-datei erklärt unter configuration-files.
In der components.obj werden die Controls (liste bei Neues Objekt) inkl. der standard-properties/-werte definiert und in der properties.obj kannst du die Typen der Control-Properties manuell konfigurieren (auch mit Auflösung für bekannte Klassen)
wenn ich wüsste, wie man dcu's läd, könnte ich auch die definition daraus lesen....

Zitat:

Zitat von Ghostwalker
Eine exakte Darstellung ist dann natürlich nicht möglich (dazu müßte die Komponente ja im Programm
verfügbar sein), aber eine schematische Darstellung würde da auch genügen.

dafür ist TUnknownControl da ;)

Gruß Frank

_frank_ 28. Mai 2006 01:54

Re: DFMEdit
 
ich hab mal ne neue Beta hochgeladen (0.1.1.2b), Sie erlaubt jetzt erstellen/bearbeiten sowie kopieren/verschieben (strg+X/C/V) von Controls in der Vorschau.
Link im ersten Posting...

Bitte mal auf Herz und Nieren testen ;)

_frank_ 31. Mai 2006 14:24

Re: DFMEdit
 
ich habe meine letzte beta (0.1.1.3) nochmal überarbeitet und neu hochgeladen.
link im ersten post...

bitte mal testen

_frank_ 13. Jun 2006 01:20

Re: DFMEdit
 
ich hab mal eine neue Beta (0.1.1.6b) hochgeladen (link im 1. Posting),
in dieser ist es erstmals möglich über den Objektinspektor so ziemlich alle Basis-Typen zu setzen (integer,String,Enum-und Set-Typen).
Ich würde mich sehr über Beta-Tester freuen.

Gruß Frank

_frank_ 16. Jun 2006 00:14

Re: DFMEdit
 
ich habe den Objektinspektor erweitert (enumeration aller Properties) und suche dringend beta-tester.
um den neuen Objektinspektor zu testen muss der dfmeditor mit parameter /debug (über beiliegende _debugmode.bat) gestartet werden.

Gruß Frank

Daniel G 16. Jun 2006 00:27

Re: DFMEdit
 
Hmm... Sowas wie Multiselection wäre nicht schlecht, quasi so wie "Shift + Linke Maustaste" in der Delphi IDE, weil ich doch auch gerne mal Gruppen verschiebe, dabei aber die Ausrichtung beibehalten möchte..

_frank_ 16. Jun 2006 00:40

Re: DFMEdit
 
an das hab ich auch schon gedacht, jedoch ist die steuerung dafür ziemlich komplex.
ich möchte erstmal das mit dem Objekt-inspektor in eine stable-version bringen.

Gruß Frank

_frank_ 18. Jun 2006 21:03

push
 
niemand weiter lust zu testen? (nur 4 downloads der beta)
es geht um die BETA (hatte ziemlich viele Downloads der final an dem 16.)
suche dringend Tester, da das ganze ziemlich komplex ist, und ich sicherlich nicht jede Kleinigkeit testen kann...(der bug beim laden einer Formulardatei als Parameter ist bekannt).

Gruß Frank

monta 18. Jun 2006 21:21

Re: DFMEdit
 
so, habs mir erstmal flüchtig angeschaut.
Beim Formular-laden aus exe/dlll kommt eine Fehlermeldung 'Fehler beim Laden'. Habs mit mehreren Echsen probiert, bekome aber immer die selbe Meldung. Und eh jemand fragt, es sind keine Konsolenanwendungen.
Ansonsten, schönes Programm.
Das einzige, was ich vielleicht ändern würde, auch wenns ne kleinigkeit ist, sind die ' , wenn ich in der Baumansicht die Eigenschaften von Stringwerten ändern will. Könnte man eventuell ohne ' machen, da kann man sie nicht vergessen. Ich seh gerade, im Eigenschaften-Bearbeiten Fenster sind die ' ja auch nicht da.
Das Eigenschafte-bearbeiten-Fenster find ich etwas gewöhnungsbedürftig. Wenn man es aufruft, steht ja die momentan im Baum markierte Eigenschaft und ihr entsprechender Wert drin. Aber wenn man im Fenster eine andere Eigenschaft auswählt, bleibt der alte Wert vorhanden. Eventuell könnte man es so machen, das bei einer neu asugewählten Eigenschaft der entsprechende Wert aus dem Baum angezeigt wird bzw. das Feld zumindest gelöscht?

Vielleicht fehlt mir noch was auf...

_frank_ 11. Jul 2006 10:28

Re: DFMEdit
 
:hello:
ich hab mal wieder eine neue beta hochgeladen. neu sind, der automatisch gefüllte Objektinspektor und das laden von packages (d3-dpl's) um die VCL des DFMEdit zu erweitern.
Link ist im ersten post, der OI ist dort auch noch als screenshon angehängt.
per Doppelklick kommt man in den bearbeiten-Dialog.

So, viel Spaß beim testen und mir bitte mitteilen, wenn ihr Bugs findet.

Gruß Frank

maximov 11. Jul 2006 11:42

Re: DFMEdit
 
Hallo frank,

is ja cool, dass du dich so intensiv mit DFM beschäftigst. Da sind folgende links für dich bestimmt auch interassant, wenn auch ein bischen spät:


http://www.delphipraxis.net/internal...ct.php?t=62373
das hätte dir einen kompletten generischen objektbaum aus DFM-daten gebaut.

und meinen eigenen DFM-editor...
http://www.delphipraxis.net/internal...highlight=bine
...der recht primitiv ist.

gruss,
maximov.

_frank_ 11. Jul 2006 12:05

Re: DFMEdit
 
deinen BinE hatte ich auch schonmal ausprobiert...aber er hatte keine Vorschau, war imho nur reiner Text-Editor...und kam mit den delphi3-binär-forms nicht klar...
meiner hat halt diese ganzen eigenschaften...ist dafür konzipiert, alle Formulare (jetzt auch Lazarus-forms ;) ) inkl. Vorschau und Ausfüllhilfen zu bearbeiten.

aber danke für die links (denke aber nicht, dass ich meine parse-routine ändern werde, da sie grade ziemlich sicher funktioniert...).

evtl. weis noch jemand, wie ich per rtti spezial-eigenschaften setzen kann (Binär, stringlist,integerlist,tcollection [TStatusbar.panels])

//edit: sorry, der link oben war falsch (hat eine 1 der 11 gefehlt)...habs korrigiert

Gruß Frank

maximov 14. Jul 2006 09:54

Re: DFMEdit
 
Zitat:

Zitat von _frank_
deinen BinE hatte ich auch schonmal ausprobiert...aber er hatte keine Vorschau, war imho nur reiner Text-Editor...und kam mit den delphi3-binär-forms nicht klar...
meiner hat halt diese ganzen eigenschaften...ist dafür konzipiert, alle Formulare (jetzt auch Lazarus-forms ;) ) inkl. Vorschau und Ausfüllhilfen zu bearbeiten.

Du bist der grösste ;) ...wollte eigentlich keinen vergleich provozieren, da meiner da eh nicht mithalten kann. Hatte BinE aus reiner notwendigkeit geschrieben, weil ich diverse techniken einsetze, die DFM-konform persistieren.

Zitat:

Zitat von _frank_
aber danke für die links (denke aber nicht, dass ich meine parse-routine ändern werde, da sie grade ziemlich sicher funktioniert...).

...und doch! das erwarte ich jetzt aber von, da diese unit das non-plus-ultra der DFM verarbeitung ist.

Zitat:

Zitat von _frank_
evtl. weis noch jemand, wie ich per rtti spezial-eigenschaften setzen kann (Binär, stringlist,integerlist,tcollection [TStatusbar.panels])

also binar-properties sind werden über DefineProperties definiert, dort werden dann setter und getter mitgegeben. Über die routinen kannst du sie theoretisch setzen. Allerdings sollte man das eigentlich den speziellen klassen selbst überlassen, da die das jeweilige binärformat am besten kennen.

stringlist und integerlist sind eigentlich das selbe, also eine listenstruktur, die auch jede andere Value-type aufnehmen kann. Sie sind ebenfalls über DefineProperties definiert und jede klasse macht da was sie will.


gruss,
maximov.

_frank_ 15. Jul 2006 05:19

Re: DFMEdit
 
Zitat:

Zitat von maximov
Du bist der grösste ;) ...wollte eigentlich keinen vergleich provozieren, da meiner da eh nicht mithalten kann. Hatte BinE aus reiner notwendigkeit geschrieben, weil ich diverse techniken einsetze, die DFM-konform persistieren.

sorry, ich hab mich unglücklich ausgedrückt, wollte deine Arbeit nicht bewerten. :wink:
Der DFM-Editor hat halt nur meine Anforderungen nicht erfüllt, daher war ich gezwungen selber einen zu schreiben. Für dich war er sicherlich eine Erleichterung...Hab mir nicht die Details angeschaut, sind sicherlich auch einige nützliche Funktionen drin, aber ich hab da halt andere Prioritäten gesetzt.
Zitat:

Zitat von maximov
...und doch! das erwarte ich jetzt aber von, da diese unit das non-plus-ultra der DFM verarbeitung ist.

ob meine fehlerfrei arbeitet weis ich nicht, habe noch keine Fehler weiter gefunden, aber das ganze umzumehren ist mir zu viel Arbeit. :firejump:
Zitat:

Zitat von maximov
also binar-properties sind werden über DefineProperties definiert, dort werden dann setter und getter mitgegeben. Über die routinen kannst du sie theoretisch setzen. Allerdings sollte man das eigentlich den speziellen klassen selbst überlassen, da die das jeweilige binärformat am besten kennen.

stringlist und integerlist sind eigentlich das selbe, also eine listenstruktur, die auch jede andere Value-type aufnehmen kann. Sie sind ebenfalls über DefineProperties definiert und jede klasse macht da was sie will.

gruss,
maximov.

hast du ein Beispiel zum manipulieren von eigenschaften zur Laufzeit mittels DefineProperties? ich weis nicht, woher ich u.a. das TFiler Object herbekommen soll da dieses imho nur in der Komponente intern verwendet wird.
Im Delphi-Forum wurde mir schon SetOrdProp nahe gelegt, da dort auch die Setter-procs aufgerufen würden. muss ich mal probieren...Musste erstmal herausfinden, warum z.B. TImage.Picture im OI nicht auftaucht, im Dialog aber schon...(habs aber gefunden und bei mir gefixt).
wäre schön, wenn ihr weitertesten würdet. Es gibt genug Stellen, wo Fehler sein können.
z.B. gibts noch den Fehler dass das Bestätigen per Enter im Edit-Dialog nicht funktioniert, wenn der Spinbutton sichtbar ist, der fängt scheinbar das ab...weis noch nicht, wie man das umgehen kann.

Gruß Frank

drschubi 15. Jul 2006 08:21

Re: DFMEdit
 
Hallo Frank,

ich bekomme beim Öffnen der neuen Beta von DFMedit die Fehlermeldung"Die Dynamic Link Library VCL30.dpl" wurde nicht gefunden.

Gruß René

_frank_ 16. Jul 2006 00:11

Re: DFMEdit
 
hab auf der beta-seite mal nen download-link hinzugefügt.
Einfach ins Programmverzeichnis kopieren und es sollte funktionieren, wenn nicht, sagt bescheid.

Gruß Frank

drschubi 16. Jul 2006 04:00

Re: DFMEdit
 
Hallo Frank,

vielen Dank für den Downloadlink, er meckert jetzt wegen der vclx30.dpl, die fehlt ihm wohl noch.

Gruß René

_frank_ 16. Jul 2006 04:06

Re: DFMEdit
 
hab das Archiv geupdated.
schau mal bitte, ob jetzt alle Dateien vorhanden sind.

Gruß Frank

drschubi 16. Jul 2006 04:30

Re: DFMEdit
 
Moin Frank,

jawohl, jetzt ist alles drin.

Einen schönen Sonntag


René

_frank_ 20. Jul 2006 10:39

Re: DFMEdit
 
hab jetzt mal die Version 0.1.1.12b hochgeladen
neu ist u.a. das bearbeiten von stringlist, bitmap, icon und TPicture-Eigenschaften und der einstellungsdialog. Der Win9x/ME-Bug (bei den Resourcenforms, gemeldet von Monta) sollte behoben sein (hab leider kein 9x mehr hier).

edit: es wird nur noch die vcl30.dpl benötigt, die ist auch auf der beta-seite zu finden.

Gruß Frank

monta 20. Jul 2006 12:50

Re: DFMEdit
 
^^hab gerade mal geschaut, der 9x-Bug ist auf jeden Fall weg.

_frank_ 1. Aug 2006 00:34

Re: DFMEdit
 
hat schon jemand Fehler gefunden? *push* :???:

Daniel G 3. Aug 2006 11:06

Re: DFMEdit
 
Hm,

das war imho vorher noch nicht so:

Zitat:

---------------------------
dfmedit.exe - Komponente nicht gefunden
---------------------------
Die Anwendung konnte nicht gestartet werden, weil VCL30.dpl nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
---------------------------
OK
---------------------------
Kannste das Package bitte wieder einbinden?

_frank_ 3. Aug 2006 11:25

Re: DFMEdit
 
Hallo,
das Package kannst du auf der Beta-seite runterladen.
Ich muss DFM-Edit mit Lauzeitpackages kompilieren, um die
VCL zur Laufzeit erweitern zu können, wie es von einigen
Testern gewünscht wurde.
Das Compilieren setzt aber voraus, dass mindestens ein
Package extern ist, in dem Fall die VCL30.dpl.

Du hast auch die Möglichkeit, die Option auszuschalten
(bei den Projektoptionen=>Packages=>Laufzeitpackages)
und es danach neu zu compilieren.

Gruß Frank

_frank_ 10. Aug 2006 00:29

Re: DFMEdit
 
so,
die nächste beta ist draußen...
neu u.a. ist:
- TCollectionItem-enumeration
- Einstellungsdialog wurde überarbeitet
- bei Sprachwechsel auf Deutsch muss nicht mehr neu gestartet werden
- Position und Größe der Forms definierbar
- multiline-Stringproperties (wird u.a. bei Tlabel unterstützt)
- einige bugs gefixt

diese version ist der RC1 für die nächste stable, d.h. es werden bis zum final nur noch bugfixes durchgeführt und die Hilfedatei aktualisiert.

bitte mal Testen, wer Interesse hat...

Gruß Frank

_frank_ 14. Aug 2006 19:06

Re: DFMEdit
 
hat denn schon jemand einen Bug gefunden?
ich habe mittlerweile schon einige behoben...

hier mal ein Auszug aus der changelog (die Änderungen gegenüber der letzten stable-version 0.1.1.4):

Code:
0.1.1.13:
  saving window-sizes and positions
  no need for restart dfmedit when changing language back to german
  Type-enumeration for TCollections
  Flag-Images for Languages (in Preferences-Dialog)
  allow editing of Stringlist,TPicture,TBitmap and TIcon-Properties in Preview
  preferences-dialog
  lazarus-unit-support
  adding lazarus-form to open-/save-filter (*.lfm)
  result of setproperty
  auto-filled ObjectInspector
  new key-bindings
  help-file updated
  some optimizations
  splitting functions_u.pas (separating RTTI-functions)
  doubleclick on property text shows Add/Edit-Dialog
  loading vcl-packages (for 3rd party components, see help)
  adding escape-key to inspector (restoring last value)
  Autofilled Procedure-names for events
  Statusbar-resizing
  component-hierarchy (in add/edit-dialog)
  find node by text
  supporting unknown properties in TCollection (deleted for preview)
  want-to-close-question if file is changed
  bugs fixed
    - in preview try to create new object, cancel
    - AV in preview when loading a form which has same name as a Form-Resource and changing a property
    - delete-key should only delete node when treeview active
    - file not saved if dfmedit opened with file as parameter
    - inspector-window not visible in maximized state
    - different bugs from previos beta-versions fixed
    - search/replace-pagecontrol visible when importing text to tree
    - changed isNumeric-function to prevent massive breaks when debugger turned on
    - class-properties which has no subproperties (like TImage.Picture) are not shown in Objectinspector
    - handles can be negative on Win9x/ME
    - enter to confirm Edit/Add-Dialog is not working when spinbutton is visible (spinbutton replaced by TUpDown)
    - subclasses not enumerated
    - empty lines in Tstrings cut off
    - relative path of lazres and packages
    - AV when trying to Save Image
    - bug with image/imagelist-tab
    - bug with CB_Value.Style for Enums
    - string decoding is rewritten and Tcollection-Items will now also en-/decoded
    - invalid pointer/AV on exit when deleting special-Type
    - AV when preview a form with TMainMenu+TMenuItems (many thanks to BenBE)
    - prevent tab-changing when node change unconfirmed
Gruß Frank

_frank_ 16. Aug 2006 08:56

Re: DFMEdit
 
Zitat:

Zitat von Daniel G
Hmm... Sowas wie Multiselection wäre nicht schlecht, quasi so wie "Shift + Linke Maustaste" in der Delphi IDE, weil ich doch auch gerne mal Gruppen verschiebe, dabei aber die Ausrichtung beibehalten möchte..

Es gibt gute Nachrichten diesbezüglich...die resizing-Komponente wurde überarbeitet, jetzt wird auch multiselection unterstützt.
( http://angusj.com/delphi/ )

die schlechte Nachricht: ich muss mir erstmal überlegen, wie ich das multiselect in zusammenhang mit dem Objektinspector und dem kopieren/ausschneiden von controls verbinde. Wird also zum nächsten release noch nichts...

Gruß Frank

luwo 16. Aug 2006 10:09

Re: DFMEdit
 
Zitat:

Zitat von _frank_
hat denn schon jemand einen Bug gefunden?

Hallo Frank, erstmal RESPEKT, du hast da ein wirklich cooles Programm geschrieben.

Ein kleine Anmerkungen:
Hab die Version aus der Datei "dfmedit_0.1.1.13b.zip" probiert => meckert, dass "VCL30.dpl" nicht gefunden wird.
die Version aus "dfmedit_0.1.1.4.zip" geht (statisch gelinkt?)

Eine kleine Anregung:
Ich habe vor einiger Zeit mal damit begonnen ein Progrämmchen zu schreiben dass aus einer DFM-Datei Delphi/Pascal-Quellcode generiert,
mit dem man dann das Formular dynamisch zur Laufzeit erstellen kann.
Bin damals aber mangels Zeit und DFM-Objekt-Hierarchie bei einem rudimentärem Prototypen hängen geblieben :(

Das Ziel dabei wäre, dass man damit superschnell NON-VCL (im Sinne von "DFM nicht als Ressource verwenden") Programme
schreiben könnte, die aber trotzdem Formulare enthalten, und die auch noch mit den herkömmlichen IDEs (Delphi, Lazarus, etc.)
erstellbar/editierbar sind.

Was wäre es für ein Aufwand einen "QuellCode-Export" in deinen DFM-Editor zu integrieren?

Nur so ne Idee :-)

Ach ja: Bald is wieder Sandkerwa! :cheers:

Gruß ins wunderschöne Bamberg
(ein ehemaliger und hoffentlich bald wieder BA-ler :-D )

Luwo

_frank_ 16. Aug 2006 10:43

Re: DFMEdit
 
Zitat:

Zitat von luwo
Hallo Frank, erstmal RESPEKT, du hast da ein wirklich cooles Programm geschrieben.

danke
Zitat:

Zitat von luwo
Ein kleine Anmerkungen:
Hab die Version aus der Datei "dfmedit_0.1.1.13b.zip" probiert => meckert, dass "VCL30.dpl" nicht gefunden wird.
die Version aus "dfmedit_0.1.1.4.zip" geht (statisch gelinkt?)

lest ihr auch die hinweise auf der beta-seite bzw. den ganzen thread? hab das schon mehrfach in diesem thread geschrieben...
Zitat:

Zitat von luwo
Eine kleine Anregung:
Ich habe vor einiger Zeit mal damit begonnen ein Progrämmchen zu schreiben dass aus einer DFM-Datei Delphi/Pascal-Quellcode generiert,
mit dem man dann das Formular dynamisch zur Laufzeit erstellen kann.
Bin damals aber mangels Zeit und DFM-Objekt-Hierarchie bei einem rudimentärem Prototypen hängen geblieben :(

Das Ziel dabei wäre, dass man damit superschnell NON-VCL (im Sinne von "DFM nicht als Ressource verwenden") Programme
schreiben könnte, die aber trotzdem Formulare enthalten, und die auch noch mit den herkömmlichen IDEs (Delphi, Lazarus, etc.)
erstellbar/editierbar sind.

Was wäre es für ein Aufwand einen "QuellCode-Export" in deinen DFM-Editor zu integrieren?
Nur so ne Idee :-)

dfmedit hat bereits eine createpas/modifypas-funktion ;), sogar für lazarus (nur beta) ;)

Gruß Frank

luwo 16. Aug 2006 11:39

Re: DFMEdit
 
Zitat:

Zitat von _frank_
lest ihr auch die hinweise auf der beta-seite bzw. den ganzen thread? hab das schon mehrfach in diesem thread geschrieben...

Ups, sorry, hab ich nicht gelesen, hab mir die Dateien von SF gezogen. :oops:


Zitat:

Zitat von _frank_
dfmedit hat bereits eine createpas/modifypas-funktion ;), sogar für lazarus (nur beta) ;)

ja, stimmt, aber die erstellt ja das komplette Codegerüst,
ich dachte an was viel simpleres wie:

Aus dem DFM-"QuellCode"...
Code:
object Form1: TForm1
  BorderStyle = bsSizeable
  Caption = 'Ein einfaches formular'
  Height = 300
  Left = 908
  Top = 149
  Visible = True
  Width = 400
  object Panel1: TPanel
    Width = 291
    Visible = True
    Top = 16
    Left = 10
    Height = 107
    object Label1: TLabel
      Font.Name = 'Verdana'
      Width = 202
      Top = 5
      Left = 10
      Height = 13
      Caption = 'Ich bin ein Label'
    end
  end
end
...wird z.B. folgender PascalCode generiert:
Code:
function MyCreateForm:TForm;
var
     Form1 : TForm;
    Panel1 : TPanel;
    Label1 : TLabel;
begin

Form1:=TForm.create(nil);
with Form1 do
 begin
  BorderStyle:=bsSizeable;
  Caption:='Ein einfaches formular';
  Height:=300;
  Left:=908;
  Top:=149;
  Visible:=True;
  Width:=400;
 
  Panel1:=TPanel.create(Form1);
  with Panel1 do
  begin
    Parent:=Form1; // <-- ! Hierarchie beachten
    Width:=291;
    Visible:=True;
    Top:=16;
    Left:=10;
    Height:=107;
   

    Label1:=TLabel.create(Panel1);
    with Label1 do
    begin
      Parent:=Panel1; // <-- ! Hierarchie beachten
      Font.Name:='Verdana';
      Width:=202;
      Visible:=True;
      Top:=5;
      Left:=10;
      Height:=13;
      Caption:='Ich bin ein Label';
    end;

  end;

end;


result:=Form1;
end;
Dieses Ergebnis wurde übrigens mit meinen o.g. Prototypen generiert.
(Es fehlen halt noch viele Sachen wie z.B. Listboxen mit Strings, Imagelisten mit Bildern usw.)

Ziel: Die Erstellung der Formulare direkt im Programmcode, ohne Ressourcen zu verwenden.

uligerhardt 16. Aug 2006 11:47

Re: DFMEdit
 
Zitat:

Zitat von luwo
ja, stimmt, aber die erstellt ja das komplette Codegerüst,
ich dachte an was viel simpleres wie:

Aus dem DFM-"QuellCode"...
...wird z.B. folgender PascalCode generiert:
Ziel: Die Erstellung der Formulare direkt im Programmcode, ohne Ressourcen zu verwenden.

Wenn ich dich richtig verstehe, schau dir mal "GExperts -> Components to Code" an.

Uli.

luwo 16. Aug 2006 11:55

Re: DFMEdit
 
Zitat:

Zitat von uligerhardt
Zitat:

Zitat von luwo
ja, stimmt, aber die erstellt ja das komplette Codegerüst,
ich dachte an was viel simpleres wie:

Aus dem DFM-"QuellCode"...
...wird z.B. folgender PascalCode generiert:
Ziel: Die Erstellung der Formulare direkt im Programmcode, ohne Ressourcen zu verwenden.

Wenn ich dich richtig verstehe, schau dir mal "GExperts -> Components to Code" an.

Uli.

ooooohhhhhhhhh (mannomannomanno)^19 :wall: :wall: :wall:

Ich verwende die GExperts eigentlich seit Delphi5, aber diese Funktion
hab ich seltsamerweise noch nicht benutzt/angeguckt.

Vielen Dank Uli!
Das ist eigentlich GENAU das was ich gesucht habe. :bounce1:

Grüße Luwo

_frank_ 16. Aug 2006 11:58

Re: DFMEdit
 
Zitat:

Zitat von luwo
Ups, sorry, hab ich nicht gelesen, hab mir die Dateien von SF gezogen. :oops:

auf SF liegt keine version, die die vcl30.dpl benötigt...und es ist imho auch kein direktlink auf die beta-datei
Zitat:

Zitat von luwo
ja, stimmt, aber die erstellt ja das komplette Codegerüst,
ich dachte an was viel simpleres wie:

Aus dem DFM-"QuellCode"...
Code:
...
Dieses Ergebnis wurde übrigens mit meinen o.g. Prototypen generiert.
(Es fehlen halt noch viele Sachen wie z.B. Listboxen mit Strings, Imagelisten mit Bildern usw.)

Ziel: Die Erstellung der Formulare direkt im Programmcode, ohne Ressourcen zu verwenden.

das ganze ist aber nicht non-vcl...die wird trotzdem verwendet. ich seh den sinn darin nicht, das form komplett per code zu erstellen (bei kleineren forms i.O. aber bei großen...). Willst du verhindern dass sich die forms per res-editor (oder dfmedit) in der exe ändern lassen?
Das mit den imagelisten wird schwierig...aber warum schreibst du die dfm nicht verschlüsselt in die exe?
dann kannst du die dfm per ResourceStream laden, entschlüsseln in ne und per ReadComponentRes einem form zuweisen. in dem fall hast du das auch sauber umgangen...

Gruß Frank

luwo 16. Aug 2006 12:16

Re: DFMEdit
 
Zitat:

Zitat von _frank_
das ganze ist aber nicht non-vcl...die wird trotzdem verwendet. ich seh den sinn darin nicht, das form komplett per code zu erstellen (bei kleineren forms i.O. aber bei großen...). Willst du verhindern dass sich die forms per res-editor (oder dfmedit) in der exe ändern lassen?
Das mit den imagelisten wird schwierig...aber warum schreibst du die dfm nicht verschlüsselt in die exe?
dann kannst du die dfm per ResourceStream laden, entschlüsseln in ne und per ReadComponentRes einem form zuweisen. in dem fall hast du das auch sauber umgangen...

Klar ist das nicht komplett "non-VCL", darum ging es mir auch gar nicht, der Bezug sollte nur die Intention verdeutlichen.
Die eigentliche Entwicklungsidee ist ein Framework für Formulare für einen Interpreter zu basteln.
Um die Ressource-DFM´s weitgehend "unveränderbar" zu machen gibt es ja genügend Komprimierungs- bzw. Verschlüsselungsmöglichkeiten. :wink:

Aber trotzdem, cooles Programm! :thumb:

Und hab ich´s schon erwähnt: Bald is Sandkerwa!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz