![]() |
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. ![]() ![]() letzte beta (Direktlink): mit Laufzeitpackage-Support (benötigt VCL30.dpl): ![]() ohne Laufzeit-packages: ![]() source: ![]() Hoffe auf viel Feedback. Gruß Frank |
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é |
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 |
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. |
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 |
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. :) |
Re: DFMEdit
Zitat:
Zitat:
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:
Gruß Frank |
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 ;) |
Re: DFMEdit
ich habe meine letzte beta (0.1.1.3) nochmal überarbeitet und neu hochgeladen.
link im ersten post... bitte mal testen |
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 |
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 |
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..
|
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 |
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 |
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... |
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 |
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: ![]() das hätte dir einen kompletten generischen objektbaum aus DFM-daten gebaut. und meinen eigenen DFM-editor... ![]() ...der recht primitiv ist. gruss, maximov. |
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 |
Re: DFMEdit
Zitat:
Zitat:
Zitat:
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. |
Re: DFMEdit
Zitat:
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:
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 |
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é |
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 |
Re: DFMEdit
Hallo Frank,
vielen Dank für den Downloadlink, er meckert jetzt wegen der vclx30.dpl, die fehlt ihm wohl noch. Gruß René |
Re: DFMEdit
hab das Archiv geupdated.
schau mal bitte, ob jetzt alle Dateien vorhanden sind. Gruß Frank |
Re: DFMEdit
Moin Frank,
jawohl, jetzt ist alles drin. Einen schönen Sonntag René |
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 |
Re: DFMEdit
^^hab gerade mal geschaut, der 9x-Bug ist auf jeden Fall weg.
|
Re: DFMEdit
hat schon jemand Fehler gefunden? *push* :???:
|
Re: DFMEdit
Hm,
das war imho vorher noch nicht so: Zitat:
|
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 |
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 |
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:
Gruß Frank
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 |
Re: DFMEdit
Zitat:
( ![]() 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 |
Re: DFMEdit
Zitat:
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 ![]() 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 |
Re: DFMEdit
Zitat:
Zitat:
Zitat:
Gruß Frank |
Re: DFMEdit
Zitat:
Zitat:
ich dachte an was viel simpleres wie: Aus dem DFM-"QuellCode"...
Code:
...wird z.B. folgender PascalCode generiert:
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
Code:
Dieses Ergebnis wurde übrigens mit meinen o.g. Prototypen generiert.
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; (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. |
Re: DFMEdit
Zitat:
Uli. |
Re: DFMEdit
Zitat:
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 |
Re: DFMEdit
Zitat:
Zitat:
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 |
Re: DFMEdit
Zitat:
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 21:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz