Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2006-11

fpdoc and three packages

11 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Graeme Geldenhuys

Hi,

I have 3 packages using fpdoc documentation in the tiOPF project. Core, Options and GUI. I generate the html help as shown below. I have 2 problems...

1) The index.html file gets overwritten with the last package when the html help is generate, so I don't have a index page for the first two packages. How can I get the three packages to merge there index.html pages, or do I have to create it manually and then have the 3 packages as a sub-directory of that.

eg:
/html
index.html <-- manually create listing three packages /core
index.html <-- auto generated by fpdoc
/options
index.html <-- auto generated by fpdoc
/gui
index.html <-- auto generated by fpdoc

2) How do I reference one package docs from another. For example I have a abstract class in Core and in Options is all the descendants. I want to create a See Also list in Core's documentation so the user can see the concrete class documentation in Options package. Also creating sub-directories as mentioned in (1), wouldn't that cause problems linking two or more packages docs?

[...sorry for the text wrapping...]

fpdoc --format=html --package=tiOPF2Core --output=html/ \ --input='-Fi../Source/Core ../Source/Core/tiConstants.pas' --descr=xml/core/ticonstants.xml \
--input='-Fi../Source/Core ../Source/Core/tiBaseObject.pas' --descr=xml/core/tibaseobject.xml \
--input='-Fi../Source/Core ../Source/Core/tiVisitor.pas' --descr=xml/core/tivisitor.xml \
<....>
fpdoc --format=html --package=tiOPF2Options --output=html/ \ <....>

Graeme Geldenhuys Location: S 34° 03.168' E018° 49.342' http://tinyurl.com/y6lc26 There's no place like 127.0.0.1

Reply by email

Michael Van Canneyt
to Graeme Geldenhuys
Graeme Geldenhuys wrote 21 lines
Hi, I have 3 packages using fpdoc documentation in the tiOPF project. Core, Options and GUI. I generate the html help as shown below. I have 2 problems... 1) The index.html file gets overwritten with the last package when the html help is generate, so I don't have a index page for the first two packages. How can I get the three packages to merge there index.html pages, or do I have to create it manually and then have the 3 packages as a sub-directory of that. eg: /html index.html <-- manually create listing three packages /core index.html <-- auto generated by fpdoc /options index.html <-- auto generated by fpdoc /gui index.html <-- auto generated by fpdoc

You'll have to do it like this.

Show quoted text 7 lines
2) How do I reference one package docs from another. For example I have a abstract class in Core and in Options is all the descendants. I want to create a See Also list in Core's documentation so the user can see the concrete class documentation in Options package. Also creating sub-directories as mentioned in (1), wouldn't that cause problems linking two or more packages docs?

Normally not. You should
1. Generate a .toc file (explained in the docs)
2. Reference a something in another package using #packagename.unit.identifier
3. Import the .toc file for the packages you refer to when generating docs for step 2. Do not move the .toc file, as it's location is used to determine the .html files.

Michael.

Reply by email

Graeme Geldenhuys
to Michael Van Canneyt

Thanks Michael!

G.

Michael Van Canneyt wrote 8 lines
Normally not. You should 1. Generate a .toc file (explained in the docs) 2. Reference a something in another package using #packagename.unit.identifier 3. Import the .toc file for the packages you refer to when generating docs for step 2. Do not move the .toc file, as it's location is used to determine the .html files. Michael.
Graeme Geldenhuys Location: S 34° 03.168' E018° 49.342' http://tinyurl.com/y6lc26 There's no place like 127.0.0.1

Reply by email

Matt Emson
to Graeme Geldenhuys
Yes, for a year now... Been using it in a commercial application since January.

Cool.. and it works with Lazarus?

I looked at tiOPF, but went with instant objects becauuse it had better Delphi 5 support.

tiOPF is cross platform too?

M

Reply by email

Graeme Geldenhuys
to Matt Emson
Matt Emson wrote
Cool.. and it works with Lazarus? I looked at tiOPF, but went with instant objects because it had better Delphi 5 support.

Delphi 5 support has been removed in tiOPF version 2, but version 1 is still available on request. Anybody still using tiOPF v1 is highly recommended to upgrade to tiOPF v2.

And yes it works under Lazarus, but I guess that depends on what you mean by that. :-)
If you mean the tiOPF GUI components, then Boguslaw Brandys would be the best person to speak to, but I think he has ported most of the components. I took a different route mainly because I used Kylix and CLX before FPC, so don't use the tiOPF's GUI controls. I use the Model-GUI-Mediator (MGM) pattern, to make any standard GUI control Object Aware. MGM is a combination of the Observer and Mediator design patterns.

tiOPF is cross platform too?

Yes, tiOPF is standard Object Pascal code. I use tiOPF under Linux and Windows for all my projects.

Graeme Geldenhuys Location: S 34° 03.168' E018° 49.342' http://tinyurl.com/y6lc26 There's no place like 127.0.0.1

Reply by email

Matt Emson
to Graeme Geldenhuys
Delphi 5 support has been removed in tiOPF version 2, but version 1 is still available on request. Anybody still using tiOPF v1 is highly recommended to upgrade to tiOPF v2.

No, I used v1. I looked at how much work a backport to D5 would be. Mostly it was routines missing from the Delphi RTL until you got into the whole RTTI debarcle. Needless to say I gave up.

I use the Model-GUI-Mediator (MGM) pattern, to make any standard GUI

control

Object Aware. MGM is a combination of the Observer and Mediator design patterns.

Never used that patter but have used those patterns to achieve the same result. However, it's pnly viable for new projects, and those are not generally in Delphi here anymore. Useful for my own work though I guess.

If you've never looked at Instant Objects it is worthwhile. Far, far simpler to get in to than tiOPF. Only Win32 though AFAIAA.

Yes, tiOPF is standard Object Pascal code. I use tiOPF under Linux and Windows for all my projects.

Very useful to know. Thank you!

Reply by email

Matt Emson
to Joao Morais
Matt Emson wrote: > If you've never looked at Instant Objects it is worthwhile. Far, far

simpler

> to get in to than tiOPF. Only Win32 though AFAIAA. And Kylix.

Kylix 1? I have access to Kylix 1 developer (not the highest one, the middle one) but nothing newer bar the open ones.

Reply by email

Graeme Geldenhuys
to Matt Emson: No, I used v1. I looked at how much work a backport to D5 would be. Mostly it was…
Matt Emson wrote
If you've never looked at Instant Objects it is worthwhile. Far, far simpler to get in to than tiOPF. Only Win32 though AFAIAA.

I have evaluated IO before v2 got released. Created quite a few prototype applications to try and reproduce my requirements. There was a few things I really liked, but at that stage you couldn't evolve an existing database, you always had to build the DB from scratch. This was a big no-no. Also performance tuning was an issue and so was complicated relationships. All things tiOPF could do at the time, so that is what I went for.

A big plus in IO was the GUI class builder and the runtime Object Inspector tree (can't remember their exact names). Maybe some day, I'll create those for tiOPF and Lazarus.

Graeme Geldenhuys Location: S 34° 03.168' E018° 49.342' http://tinyurl.com/y6lc26 There's no place like 127.0.0.1

Reply by email