On Thu, 16 Feb 2006 10:22:17 -0300
Alexsander Rosa <[EMAIL PROTECTED]> wrote:

> Maybe the tool could use the codetools for some complex source-code
> operations and TProject for generation of the lpi file - from *outside*
> the IDE.

The codetools are no problem.
About TProject: I agree, that the converter needs a lot of the IDE. Too
much, to put it all into the IDEIntf.
What about this:

We add a directory <lazarusdir>/converter.
Here we put all new IDE units, that converts Delphi things.
And we add <lazarusdir>/tools/delphiconverter/
Here we put the new standalone tool.

If you agree, I can setup this. Just send me a current version.

I just had a short look at your project:
- The .dof file is ignored
- You scan sub directories, but this will find too much and not enough.
Delphi projects define their parts via the uses section in the .dpr file.
For example: 
uses MyUnit in '..\dir\MyUnit.pas';

This line means: MyUnit is part of the project and the directory '..\dir'
must be added to the unit path.

- I like the idea, to first setup some values, then get an overview (scan
button), what will happen.


Mattias


 
> One early version of my previous idea is attached.
> 
> 2006/2/15, Mattias Gaertner <[EMAIL PROTECTED]>:
> >
> > On Wed, 15 Feb 2006 12:00:39 -0300
> > Alexsander Rosa <[EMAIL PROTECTED]> wrote:
> >
> > > After a few "quick looks", I do not fully understand the structure of
> > the
> > > Lazarus source code. I would be easier for me if I could start a
> > separate
> > > application for early limited tests and, after it proves itself
> > > worthy, someone more familiar with Lazarus source tree could help me
> > > to
> > integrate
> > > the tool into the IDE.
> >
> > Of course, reinventing the wheel is much easier at the beginning.
> > And for simple Delphi sources, without packages, include files, IFDEFs,
> > etc.
> > a simple converter could be written quite easily.
> > So, please continue, but keep in mind to write it as modules and/or
> > package.
> > This way we can later add some designtime features, so the converter can
> > be
> > extended to use the IDE package system. Then more complex Delphi
> > projects/packages can be converted too.
> >
> >
> > > IMHO, main.pp is a bit "crowded". More comments below.
> >
> > main.pp is a monster.
> > Eventually the source editor stuff and the form editor stuff will become
> > separate parts.
> >
> >
> > > 2006/2/14, Mattias Gaertner <[EMAIL PROTECTED]>:
> > > >
> > > > On Tue, 14 Feb 2006 17:22:21 -0300
> > > > Alexsander Rosa < [EMAIL PROTECTED]> wrote:
> > > >
> > > > > (...) I was thinking about a different design, where the typical
> > > > > use would be:
> > > > >
> > > > > 1) Select a directory where the Delphi project is
> > > >
> > > > 1b) Open in the Lazarus IDE a Delphi project
> > >
> > >
> > > This would be nice, too. Seems easy to add this feature after the tool
> > is
> > > ready.
> > >
> > > > 2) Click "Convert to Lazarus"
> > > > > 3) Watch the progress bar run ;-)
> > > > >
> > > > > Optionally, the user could specify two places: LCL_DIR and
> > > > > VCL_DIR,
> > > > where
> > > > > the tool would read the classes to get the available properties,
> > > > removing
> > > > > them from the DFM files (and commenting out in the PAS files). A
> > > > > "translation table" could be used to replace the property instead
> > > > > of
> >
> > > > > removing the entire line from the DFM. In the PAS files, the Uses
> > > > section
> > > > > would be corrected, and so on.
> > > > >
> > > > > I would like to start coding as soon as possible, but I'm putting
> > this
> > > > > here in order to discuss this design and get ideas.
> > > >
> > > > About LCL_DIR and VCL_DIR:
> > > > - The tool must work without Delphi sources too.
> > > > - The tool should also work with Delphi packages.
> > > > - The tool should also convert Delphi projects, which require
> > packages.
> > > > A LCL_DIR is not enough.
> > > >
> > > > The idea is that:
> > > > It first scans the project for required packages and searches
> > > > corresponding
> > > > lazarus packages.
> > > > Then it loads the needed packages.
> > > > Then it scans for search paths and compiler options.
> > > > Then it converts each .pas file and does a simple conversion of the
> > .dfm
> > > > to
> > > > .lfm files.
> > > > Then it searches for all used classes in the .lfm files and collects
> > all
> > > > properties.
> > > > Then it finishes the conversion of the .lfm files.
> > >
> > >
> > > About packages: there's a huge number of standard and third-party
> > packages
> > > available for Delphi, many of them have similar counterparts for
> > Lazarus,
> > > others are unique. How the tool would solve that? A simple solution
> > > (for
> >
> > > version 1.0) is to have a database of Delphi third-party packages with
> > the
> > > provided functionality: after the first scan, the tool would show a
> > report
> > > of what needs to be installed on Lazarus, what is compatible, what is
> > > similar, etc.
> >
> > Yes.
> > Or a simple heuristic: If a unit is missing and a lazarus package
> > contains a
> > unit with this name, suggest the user to add this package to the
> > requirements of the new lazarus project.
> > But this can be added later. Just keep the interface of the converter
> > open for additions. Aka add some events.
> >
> >
> > > The package stuff, the compiler options and the .lpi parts require so
> > many
> > > > parts of the IDE, that it will be quite hard to create a separated
> > > > application. That's why I suggest to create instead a package with
> > > > the conversion functions. You can write a small application to test
> > > > the basic functions, like converting simple Delphi projects.
> >
> >
> > Mattias
> >
> > _________________________________________________________________
> >      To unsubscribe: mail [EMAIL PROTECTED] with
> >                 "unsubscribe" as the Subject
> >    archives at http://www.lazarus.freepascal.org/mailarchives
> >
> 
> 
> 
> --
> Atenciosamente,
> 
> Alexsander da Rosa

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to