mitzi 43 Posted October 19, 2020 (edited) DFM Editor allows edit and create Borland Delphi VCL/FireMonkey Forms in text and binary format. It is compatible with all Borland/Codegear/Embarcadero development tools (Delphi, Builder, BDS, RAD). DFM Editor can extracts forms from compiled executables and DLLs (or others Portable Executable files) by its extraction tool. Syntax highlihting editor with code folding, object inspector and object tree view are tools that make work easier. There's form preview tool available so you can view form in WYSIWYG mode. DFM Editor allows also user packages (*.bpl) registration to make included components to be known to DFM Editor. For more information see https://www.mitec.cz/dfm.html Edited October 19, 2020 by mitzi 1 1 Share this post Link to post
Kryvich 165 Posted October 19, 2020 New developer's instruments are always welcomed! (Fix the link, should be "dfm.html" instead of "pm.html") Share this post Link to post
Frickler 11 Posted October 19, 2020 Is it possible to do manipulations like "multiply all 'Left' properties by 2" using this DFM Editor? Share this post Link to post
Lars Fosdal 1793 Posted October 19, 2020 This could be an interesting companion to VS Code with OmniPascal. 1 Share this post Link to post
Dinar 22 Posted October 19, 2020 4 minutes ago, Lars Fosdal said: This could be an interesting companion to VS Code with OmniPascal. Or for IntelliJ IDEA Community Edition with I-Pascal plugin installed Share this post Link to post
limelect 48 Posted October 19, 2020 This is my own for more than 20 years Nowadays including fmx Never publish sorry Share this post Link to post
limelect 48 Posted October 19, 2020 (edited) @mitziJust downloaded your tool for curiosity Loaded a binary dfm, not text so I got gibberish. plz fix it. In my case, i get it right as binary>text Furthermore, check your properties they are wrong. More how come you bring more properties that exist.? Using the default? Bit Button did not show on the form finally nice layout Edited October 19, 2020 by limelect Share this post Link to post
limelect 48 Posted October 19, 2020 (edited) @mitzi I just found that your program loads only d10.4 bpl . well in my case I load any bpl and if it has something to show as you can see in the picture. Sorry. No more debug Edited October 19, 2020 by limelect Share this post Link to post
Fr0sT.Brutal 900 Posted October 20, 2020 Could someone explain the real use-case of this? Share this post Link to post
limelect 48 Posted October 20, 2020 (edited) @Fr0sT.Brutal I am using my program a lot. 1. if you have a DFM in binary I can see it in text. Important. 2. Now for its use. In my case. 3. I can make a PAS file of a DFM. 4. If I have a form and it has a component that is not installed then I move the component to private copy the object on the dfm and create the component. If it does not have bmp it is easy. Obviously the above can be done with text editor except #1. 5. Furthermore you can see the form and have an impression of how it looks. 6. All the above is true if you are trying to use some source you did not make. 7. In my case I mention only a small use. 8. If #1 is used I can save as text the dfm 9. Have you seen what inside a BPL,DLL.EXE? I can Edited October 20, 2020 by limelect Share this post Link to post
limelect 48 Posted October 20, 2020 @Fr0sT.Brutal This is a BPL taken from D10.2.3 which has a lot of forms inside Translate to PAS and use it. Share this post Link to post
Fr0sT.Brutal 900 Posted October 20, 2020 @limelect thanks for explanations. I got rid of binary DFMs completely since I started using VCS. Other cases aren't actual for me. 1 Share this post Link to post
limelect 48 Posted October 20, 2020 (edited) @Fr0sT.Brutal You never used someone else source? You got a binary dfm in it a component you do not have but is a derivative of memo. You want to rename it. Easy. Just use the binary as text rename the component and then in pas you rename it too. Easy now you can compile the form. Otherwise no compilation. P.S leave out properties that you cannot use. Edited October 20, 2020 by limelect Share this post Link to post
Fr0sT.Brutal 900 Posted October 20, 2020 1 hour ago, limelect said: You got a binary dfm in it a component you do not have but is a derivative of memo. I've never had to use components without sources neither had to modify forms inside. My regrets if you face this case often 1 Share this post Link to post
Bill Meyer 337 Posted October 20, 2020 19 minutes ago, Fr0sT.Brutal said: I've never had to use components without sources neither had to modify forms inside. My regrets if you face this case often Had just one experience with it. A former employer used an encryption component for which they had no source. And the publisher of the component was out of business. We needed to move form D6 to D2006, so wrapped the component in a DLL and moved on. Never use a component without source. Never. 2 Share this post Link to post
limelect 48 Posted October 20, 2020 @Bill Meyer Nice idea. I guess you made the dll in D6 and used it with D2006. Great. Share this post Link to post
Bill Meyer 337 Posted October 20, 2020 1 minute ago, limelect said: @Bill Meyer Nice idea. I guess you made the dll in D6 and used it with D2006. Great. Yes. The alternatives were ugly. Although the component supposedly implemented a standard encryption scheme, others which implemented the same yielded different results, and we had to support previously encrypted data in customers' systems. Share this post Link to post
Guest Posted October 23, 2020 @mitzi, Would you consider making it possible to select multiple bpl:s in one go? Maybe drag-and-drop to the modal setting form. The tool GPF:s and misses more complicated structures, but perhaps it will work if the correct bpl's are loaded? I'm trying to leverage DX ribbon and layoutcontrol. Not much luck at all. Since they have so many bpl's in their "Lib" folder... i do not have the time to "pick" them all. Thus i cannot determine if it is bugs/features, incapacity to deal with multiple layers (DX properties setup), or just me missing something. Share this post Link to post