Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread Rainer Hantsch
Hi, Marco!

On Thu, 24 Jul 2003, Marco van de Voort wrote:
| Howrever the site is still up:
|
| http://www.nomssi.de/pasjpeg/pasjpeg.html

I know this site, and I know 'pasjpeg' from its name. I tried multiple times
to get it working, but I always had the same problems, it does not compile.
In the silent hope that this "toolbox" may have changed in the last year, I
downloaded version 1.1 today.

Well, the author still has some "problems" with upper/lowercase in his ZIP's
(everything extract as uppercase, but he references the files in lowercase
inside his code), a typical identification that the files were created in a
DOS environment. So I am not surprised that the code is primarily for WINDOWS
and does not compile on Linux. :-/


mfg

  Ing. Rainer Hantsch


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


[fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Michael Van Canneyt

Hello,

I think the point about users finding include files cumbersome to use,
and developers who require maintainability, has been made clear.

We can discuss about this for ages, and never agree. So I would like to
conclude the discussion with a proposal.

My proposal is as follows:

If someone contributes a tool which does the necessary preprocessing
i.e. including needed files, then I will set up a system where the
source files are 'assembled' into single-source units for a given
platform/cpu combination. These single-source units can be distributed
with each platform or separately downloaded.

This tool can be run on a daily basis on our CVS server, and zips can be
made available as a service to the FPC users.

As for the tool, I ask only 3 things:
1. It should compile with FPC and should be cross-platform.
2. Should obey {$ifdefs}/{$define} and the like, such as
   run-time platform selection.
   (linux based tool must generate sources for e.g. win32)
3. As for the rest, it would be good to have the command-line options
   which match the compiler's:
   -d define symbol
   -u undefine symbol
   -I/-Fi set include path
   -T select target os/cpu
   -FE set output name.

If someone makes this tool, I will do the rest.

Hopefully, this proposal helps to end an otherwise lengthy discussion.

Michael.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread Michael Van Canneyt


On Fri, 25 Jul 2003, Rainer Hantsch wrote:

> Hi, Marco!
>
> On Thu, 24 Jul 2003, Marco van de Voort wrote:
> | Howrever the site is still up:
> |
> | http://www.nomssi.de/pasjpeg/pasjpeg.html
>
> I know this site, and I know 'pasjpeg' from its name. I tried multiple times
> to get it working, but I always had the same problems, it does not compile.
> In the silent hope that this "toolbox" may have changed in the last year, I
> downloaded version 1.1 today.
>
> Well, the author still has some "problems" with upper/lowercase in his ZIP's
> (everything extract as uppercase, but he references the files in lowercase
> inside his code), a typical identification that the files were created in a
> DOS environment. So I am not surprised that the code is primarily for WINDOWS
> and does not compile on Linux. :-/

It uses some windows bitmap structures, and cannot be compiled on Linux as is.
For the rest it compiles 100% fine. You could cut&paste the needed
definitions from the windows unit and put them between
{$ifndef win32}..{$endif}

But you will not find it to your liking. Contrary to my earlier
statement (based on the paszlib units) it is not TP style, but uses
Delphi style to do the streaming.

Michael.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]A suggestion.

2003-07-25 Thread Jonas Maebe
On vrijdag, jul 25, 2003, at 08:30 Europe/Brussels, A.J. Venter wrote:

I miss being able to put the cursor on a function/procedure/reserved
word name and hitting F1 to see the help section for it.
The text mode IDE already has support for this (using the html 
documentation).

Jonas

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]MMSYSTEM problem...

2003-07-25 Thread L D Blake
In reply to your message of July 25, 2003

> Here are the complete instructions on how you can obtain the unit that 
> you want:

Thanks.

The reason I wanted this was that it's got the direct-play MCI function in it.

MCIWndCreate lets you hand MCI a filename and it will play anything mci can
handle... which is how windows sounds are done.

-
 L D Blake


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Florian Klaempfl
Michael Van Canneyt wrote:
Hello,

I think the point about users finding include files cumbersome to use,
and developers who require maintainability, has been made clear.
We can discuss about this for ages, and never agree. So I would like to
conclude the discussion with a proposal.
My proposal is as follows:

If someone contributes a tool which does the necessary preprocessing
i.e. including needed files, then I will set up a system where the
source files are 'assembled' into single-source units for a given
platform/cpu combination. These single-source units can be distributed
with each platform or separately downloaded.
This tool can be run on a daily basis on our CVS server, and zips can be
made available as a service to the FPC users.
As for the tool, I ask only 3 things:
1. It should compile with FPC and should be cross-platform.
2. Should obey {$ifdefs}/{$define} and the like, such as
   run-time platform selection.
   (linux based tool must generate sources for e.g. win32)
3. As for the rest, it would be good to have the command-line options
   which match the compiler's:
   -d define symbol
   -u undefine symbol
   -I/-Fi set include path
   -T select target os/cpu
   -FE set output name.
If someone makes this tool, I will do the rest.

Hopefully, this proposal helps to end an otherwise lengthy discussion.
Hmmm, this could be easily done by the compiler but I see no real use 
for it. I think it would be much more useful, if fpdoc could be extended 
to include the file name and line number into the docs ...

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Michael Van Canneyt


On Fri, 25 Jul 2003, Florian Klaempfl wrote:

> Michael Van Canneyt wrote:
> > Hello,
> >
> > I think the point about users finding include files cumbersome to use,
> > and developers who require maintainability, has been made clear.
> >
> > We can discuss about this for ages, and never agree. So I would like to
> > conclude the discussion with a proposal.
> >
> > My proposal is as follows:
> >
> > If someone contributes a tool which does the necessary preprocessing
> > i.e. including needed files, then I will set up a system where the
> > source files are 'assembled' into single-source units for a given
> > platform/cpu combination. These single-source units can be distributed
> > with each platform or separately downloaded.
> >
> > This tool can be run on a daily basis on our CVS server, and zips can be
> > made available as a service to the FPC users.
> >
> > As for the tool, I ask only 3 things:
> > 1. It should compile with FPC and should be cross-platform.
> > 2. Should obey {$ifdefs}/{$define} and the like, such as
> >run-time platform selection.
> >(linux based tool must generate sources for e.g. win32)
> > 3. As for the rest, it would be good to have the command-line options
> >which match the compiler's:
> >-d define symbol
> >-u undefine symbol
> >-I/-Fi set include path
> >-T select target os/cpu
> >-FE set output name.
> >
> > If someone makes this tool, I will do the rest.
> >
> > Hopefully, this proposal helps to end an otherwise lengthy discussion.
>
> Hmmm, this could be easily done by the compiler but I see no real use
> for it. I think it would be much more useful, if fpdoc could be extended
> to include the file name and line number into the docs ...

This can be done too. But that will not solve the problem of the
'include' files. You saw that many people don't want to have the docs as
an in-between.

But it's noted as a feature for fpdoc. It's a good idea.

Michael.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Matt Emson
> If someone contributes a tool which does the necessary preprocessing
> i.e. including needed files, then I will set up a system where the
> source files are 'assembled' into single-source units for a given
> platform/cpu combination. These single-source units can be distributed
> with each platform or separately downloaded.

This was all I ever really wanted to be honest.

> This tool can be run on a daily basis on our CVS server, and zips can be
> made available as a service to the FPC users.

Cool, that sounds like a good idea.

> As for the tool, I ask only 3 things:
> 1. It should compile with FPC and should be cross-platform.
> 2. Should obey {$ifdefs}/{$define} and the like, such as
>run-time platform selection.
>(linux based tool must generate sources for e.g. win32)
> 3. As for the rest, it would be good to have the command-line options
>which match the compiler's:
>-d define symbol
>-u undefine symbol
>-I/-Fi set include path
>-T select target os/cpu
>-FE set output name.
>
> If someone makes this tool, I will do the rest.


I will look at it. I will initially write it in Delphi, simply because that
is to hand, but will get it to compile under FPC 1.1x when I have got it to
work here.

One question, do you want a recursive batch job, or single file operation.
i.e, do all in one go, respecting commandd like options, or simply the files
passed to the command line. Think of the difference between gcc and fpc. gcc
expects explicitly to be given all files at command line, fpc will look for
them automatically. I have no preference and may simply add this as an
option.

> Hopefully, this proposal helps to end an otherwise lengthy discussion.

Done ;-)

Matt



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Marco van de Voort
[ Charset ISO-8859-1 unsupported, converting... ]
> > If someone contributes a tool which does the necessary preprocessing
> > i.e. including needed files, then I will set up a system where the
> > source files are 'assembled' into single-source units for a given
> > platform/cpu combination. These single-source units can be distributed
> > with each platform or separately downloaded.
> 
> This was all I ever really wanted to be honest.
> 
> > This tool can be run on a daily basis on our CVS server, and zips can be
> > made available as a service to the FPC users.
> 
> Cool, that sounds like a good idea.
> 
> > As for the tool, I ask only 3 things:
> > 1. It should compile with FPC and should be cross-platform.
> > 2. Should obey {$ifdefs}/{$define} and the like, such as
> >run-time platform selection.
> >(linux based tool must generate sources for e.g. win32)
> > 3. As for the rest, it would be good to have the command-line options
> >which match the compiler's:
> >-d define symbol
> >-u undefine symbol
> >-I/-Fi set include path
> >-T select target os/cpu
> >-FE set output name.
> >
> > If someone makes this tool, I will do the rest.
> 
> 
> I will look at it. I will initially write it in Delphi, simply because that
> is to hand, but will get it to compile under FPC 1.1x when I have got it to
> work here.
> 
> One question, do you want a recursive batch job, or single file operation.
> i.e, do all in one go, respecting commandd like options, or simply the files
> passed to the command line. Think of the difference between gcc and fpc. gcc
> expects explicitly to be given all files at command line, fpc will look for
> them automatically. I have no preference and may simply add this as an
> option.

I think it can be done better to match the commandline behaviour to the
compiler as close as possible. AND to generate an empty .ppu and .o file
for each access, and also a .a file if there is a -CX parameter.

This will make sure that simply running 

make all PP=  OPT='other parameters to your tools like rootdirectory of the 
output'

visits the same units that would be build in a release build. It would also
avoid the trouble of keeping what units need to be generated.

However it doesn't have to do unit search, since you don't have to access
dependant units (uses clauses)


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]XChat plugins using FPC

2003-07-25 Thread Holger Peters
Hi,

if you are successful, I would be glad to receive the ported Header 
files and a small example.

Holger

James Mills schrieb:

Hi,

I can successully compile and test the plugin source listed at
http://xchat.org/docs/plugin20.html written in C.
However I don't like C much and am wondering if it's possible to do the
same thing in pascal... ? I know it has to be possible, but I need
someone to start me off in the right direction...
cheers
James
 



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Michael Van Canneyt


On Fri, 25 Jul 2003, Matt Emson wrote:

> > If someone contributes a tool which does the necessary preprocessing
> > i.e. including needed files, then I will set up a system where the
> > source files are 'assembled' into single-source units for a given
> > platform/cpu combination. These single-source units can be distributed
> > with each platform or separately downloaded.
>
> This was all I ever really wanted to be honest.
>
> > This tool can be run on a daily basis on our CVS server, and zips can be
> > made available as a service to the FPC users.
>
> Cool, that sounds like a good idea.
>
> > As for the tool, I ask only 3 things:
> > 1. It should compile with FPC and should be cross-platform.
> > 2. Should obey {$ifdefs}/{$define} and the like, such as
> >run-time platform selection.
> >(linux based tool must generate sources for e.g. win32)
> > 3. As for the rest, it would be good to have the command-line options
> >which match the compiler's:
> >-d define symbol
> >-u undefine symbol
> >-I/-Fi set include path
> >-T select target os/cpu
> >-FE set output name.
> >
> > If someone makes this tool, I will do the rest.
>
>
> I will look at it. I will initially write it in Delphi, simply because that
> is to hand, but will get it to compile under FPC 1.1x when I have got it to
> work here.
>
> One question, do you want a recursive batch job, or single file operation.

Single file operation: name of a input unit file, name of output file.
(plus command-line options for where to find include files, and defines)

Michael.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]XChat plugins using FPC

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 01:04:14PM +0200, Holger Peters wrote:
> Hi,
> 
> if you are successful, I would be glad to receive the ported Header 
> files and a small example.

rofl! :) Make me do all the hard work :(
This is the first time I've converted any c headers of any sort... I'm
getting close though

I think I'll end up writing a unit interface to the c functions though.
I don't want to end up writing plugins and having to remember every
bloody xchat interface command :) do you ?

cheers
James

> 
> Holger
> 
> 
> James Mills schrieb:
> 
> >Hi,
> >
> >I can successully compile and test the plugin source listed at
> >http://xchat.org/docs/plugin20.html written in C.
> >
> >However I don't like C much and am wondering if it's possible to do the
> >same thing in pascal... ? I know it has to be possible, but I need
> >someone to start me off in the right direction...
> >
> >cheers
> >James
> > 
> >
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
- James Mills
Zero Defect Software Engineers Group - ZDSEG

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]A suggestion.

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 10:33:19AM +0200, Jonas Maebe wrote:
> 
> On vrijdag, jul 25, 2003, at 08:30 Europe/Brussels, A.J. Venter wrote:
> 
> >I miss being able to put the cursor on a function/procedure/reserved
> >word name and hitting F1 to see the help section for it.
> 
> The text mode IDE already has support for this (using the html 
> documentation).

I use to use borland's turbo pascal ide once too, but I don't miss this
feature :) Nowadays vim suits be better

cheers
James

> 
> 
> Jonas
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
- James Mills
Zero Defect Software Engineers Group - ZDSEG

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]A suggestion.

2003-07-25 Thread A.J. Venter
Trouble is, that is the only feature I miss !
Everything else about the borland IDE is downright annoying in it's
primitiveness. Had this not been the case, I would have been using the
fp ide anyway.
I use vim myself.  
Hence my thought of a separate proggie that can do this. The easy way
here would be to extract the section of the fp ide that does this, and
create a modified standalone version that simply dumps the results to
standard out. No sense reinventing the wheel, except for one tiny
downside - we have no access to the ide sources. 
Perhaps someone who does could mail me just the part in question, I will
do the rest. 
I cannot imagine I am the only one who would like this. 

Mind you, it would even make a nifty plugin for lazarus.

A.J.

On Fri, 2003-07-25 at 14:11, James Mills wrote:
> On Fri, Jul 25, 2003 at 10:33:19AM +0200, Jonas Maebe wrote:
> > 
> > On vrijdag, jul 25, 2003, at 08:30 Europe/Brussels, A.J. Venter wrote:
> > 
> > >I miss being able to put the cursor on a function/procedure/reserved
> > >word name and hitting F1 to see the help section for it.
> > 
> > The text mode IDE already has support for this (using the html 
> > documentation).
> 
> I use to use borland's turbo pascal ide once too, but I don't miss this
> feature :) Nowadays vim suits be better
> 
> cheers
> James
> 
> > 
> > 
> > Jonas
> > 
> > 
> > ___
> > fpc-pascal maillist  -  [EMAIL PROTECTED]
> > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
-- 
Do not try to think outside the box. That's impossible. 
Instead only try to realise the truthThere is no box.

A.J. Venter
Tech Guru
DireqLearn.



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]A suggestion.

2003-07-25 Thread Jonas Maebe
On vrijdag, jul 25, 2003, at 14:17 Europe/Brussels, A.J. Venter wrote:

No sense reinventing the wheel, except for one tiny
downside - we have no access to the ide sources.
Sure you do, checkout the module "ide" from cvs. The problem with the 
IDE is that you can't build the version we distribute, because of the 
problems with the Free Vision license.

Jonas

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]XChat plugins using FPC

2003-07-25 Thread James Mills
On Thu, Jul 24, 2003 at 11:17:53AM +0200, Michael Van Canneyt wrote:
> 
> 
> On Thu, 24 Jul 2003, James Mills wrote:
> 
> > On Wed, Jul 23, 2003 at 08:50:35AM +0200, Michael Van Canneyt wrote:
> > >
> > >
> > > On Wed, 23 Jul 2003, James Mills wrote:
> > >
> > > > On Wed, Jul 23, 2003 at 03:28:55AM +0200, Marco van de Voort wrote:
> > > > > > I can successully compile and test the plugin source listed at
> > > > > > http://xchat.org/docs/plugin20.html written in C.
> > > > > >
> > > > > > However I don't like C much and am wondering if it's possible to do the
> > > > > > same thing in pascal... ? I know it has to be possible, but I need
> > > > > > someone to start me off in the right direction...
> > > > >
> > > > > Probably yes, but you'll need to convert headers of xchat-plugin.h. The
> > > > > "h2pas" util can be handy for this. (or at least it can save a lot of time)
> > > >
> > > > Okay I've converted the headers (step 1) :P
> > > >
> > > > $ h2pas -S -D -p -l xchat xchat-plugin.h
> > > > at line 6 error : syntax error
> > > > Illegal character in line 6
> > > > "#define XCHAT_IFACE_VERSION((XCHAT_IFACE_MAJOR * 1) + \"
> > > > at line 7 error : syntax error
> > > > Illegal character in line 7
> > > > "(XCHAT_IFACE_MINOR * 100) + \"
> > > >
> > > >
> > > >
> > > > What do I do with these errors though ?
> > >
> > > run the file through the gcc preprocessor:
> > >
> > > gcc -E xchat-plugin.h -o xchat-plugin.hp
> > > h2pas -S -D -p -l xchat xchat-plugin.hp
> > >
> > > Note that this destroys all '#define'  constants, so you'll have to
> > > run h2pas a second time to get all constants.
> > >
> > > Michael.
> > >
> > >
> > > ___
> > > fpc-pascal maillist  -  [EMAIL PROTECTED]
> > > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> >
> > I've sucessfully now done all this and now have the headers converted...
> > I have a problem though when trying to compiling a test plugin:
> >
> > $ fpc test
> > Free Pascal Compiler version 1.0.6 [2002/08/10] for i386
> > Copyright (c) 1993-2002 by Florian Klaempfl
> > Target OS: Linux for i386
> > Compiling test.pas
> > Compiling xchatplugin.pas
> > xchatplugin.pas(49,24) Error: Identifier not found XCHAT_PLUGIN
> > xchatplugin.pas(49,36) Error: Error in type definition
> > xchatplugin.pas(50,22) Error: Identifier not found XCHAT_LIST
> > xchatplugin.pas(50,32) Error: Error in type definition
> > xchatplugin.pas(51,22) Error: Identifier not found XCHAT_HOOK
> > xchatplugin.pas(51,32) Error: Error in type definition
> > xchatplugin.pas(55,25) Error: Identifier not found XCHAT_CONTEXT
> > xchatplugin.pas(55,38) Error: Error in type definition
> > xchatplugin.pas(61,24) Error: Duplicate identifier _XCHAT_PLUGIN
> > xchatplugin.pas(61,24) Error: Duplicate identifier _XCHAT_PLUGIN
> > xchatplugin.pas(62,60) Error: Identifier not found PXCHAT_PLUGIN
> > xchatplugin.pas(62,96) Error: Type identifier expected
> > xchatplugin.pas(62,96) Fatal: Syntax error, ) expected but FUNCTION found
> >
> >
> > What's going on here ?
> 
> The unit is not correct. There are things that h2pas doesn't 'know'
> about. C is case sensitive. Pascal is not. so duplicate identifiers can
> exist. the C construct "xchat_plugin *" is translated to
> 'Pxchat_plugin', but that may or may not be defined already.
> 
> In general, a generated file may still need some manual editing before
> it is compilable. This is perfectly normal.

I'm a little confused as to what manual editing is necessary...
What about the:
  const
External_library='xchat'; {Setup as you need}

What does this need to be ?

Does the unit need to be linked with anything ? (There are no xchat
libraries I am aware of).

Help me out here :P (please)

cheers
James


> 
> Michael.
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
- James Mills
Zero Defect Software Engineers Group - ZDSEG

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread Rainer Hantsch
On Fri, 25 Jul 2003, Michael Van Canneyt wrote:
| It uses some windows bitmap structures, and cannot be compiled on Linux as
| is. For the rest it compiles 100% fine. You could cut&paste the needed
| definitions from the windows unit and put them between {$ifndef
| win32}..{$endif}

So, in fact, the whole 'pasjpeg' does not exist at all, because converting
such a thing will require that knowledge which I currently do not have. The
only way to learn from source code is to analyze a _working_ one. It makes no
sense to analyze windows-dependent code when Linux code is (so I guess)
nearely the opposite -- otherwise it would not be so complicated to port
Windoze-Software to Linux...


So I return to my initial question in the hope that somebody has already done
such things...

What I need for my first steps, is some source code which compiles without any
change on Linux and uses Linux' shared libraries for reading/writing data
from/to image files in jpeg/gif/tif/... format.
I definitely prefer procedural and/or OOP style before Delphi Style, because
this is easier to understand and also matches better to my already existing
code.

A good sample for doing first steps would be a program which reads a little
JPEG image into RAM, hereby decoding it into a simple structure (i.e. an array
of pixels, one for every color, so that I can get the RGB or CMYK values out
easily for every pixel.
Next step would be to store this structure back into a file.

With this two steps I can start. Nobody here who can help?


  Ing. Rainer Hantsch



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


[fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread James Mills
Hi,

Why does the following result in a runtime error ?

program example;

const
THE_PORT = ;

function swapWord(w: Word): Word;
begin
swapWord := (w SHL 8) OR (w SHR 8);
end;

var
port:   Word;
begin
port := swapWord(THE_PORT)
end.

$ ./swapword 
Runtime error 201 at 0x08052AA2
  0x08052AA2
  0x08052AC2
  0x080480B0


cheers
James

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 04:04:47PM +0200, Rainer Hantsch wrote:
> On Fri, 25 Jul 2003, Michael Van Canneyt wrote:
> | It uses some windows bitmap structures, and cannot be compiled on Linux as
> | is. For the rest it compiles 100% fine. You could cut&paste the needed
> | definitions from the windows unit and put them between {$ifndef
> | win32}..{$endif}
> 
> So, in fact, the whole 'pasjpeg' does not exist at all, because converting
> such a thing will require that knowledge which I currently do not have. The
> only way to learn from source code is to analyze a _working_ one. It makes no
> sense to analyze windows-dependent code when Linux code is (so I guess)
> nearely the opposite -- otherwise it would not be so complicated to port
> Windoze-Software to Linux...
> 
> 
> So I return to my initial question in the hope that somebody has already done
> such things...
> 
> What I need for my first steps, is some source code which compiles without any
> change on Linux and uses Linux' shared libraries for reading/writing data
> from/to image files in jpeg/gif/tif/... format.
> I definitely prefer procedural and/or OOP style before Delphi Style, because
> this is easier to understand and also matches better to my already existing
> code.
> 
> A good sample for doing first steps would be a program which reads a little
> JPEG image into RAM, hereby decoding it into a simple structure (i.e. an array
> of pixels, one for every color, so that I can get the RGB or CMYK values out
> easily for every pixel.
> Next step would be to store this structure back into a file.
> 
> With this two steps I can start. Nobody here who can help?

I could write you up a set of such procedures or classes to do this,
however I'm starting back at uni. New semester :)
Anyway, I'm sure there are others here on this mailing list that could
do the same.

Question: Why can't you do it yourself ?
It isn't that hard to grab the specs of the JPEG image format and learn
it and write your own data structures to contain the jpeg image data,
decode it into pixel arrays... It's all there in the specs :)

cheers
James

> 
> 
>   Ing. Rainer Hantsch
> 
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 04:21:36PM +0200, Jonas Maebe wrote:
> 
> On vrijdag, jul 25, 2003, at 16:22 Europe/Brussels, James Mills wrote:
> 
> >Why does the following result in a runtime error ?
> >
> >program example;
> >
> >const
> > THE_PORT = ;
> >
> >function swapWord(w: Word): Word;
> >begin
> > swapWord := (w SHL 8) OR (w SHR 8);
> >end;
> 
> In Pascal, all calculations are performed using the base type (which is 
> longint in FPC), so if w > 255, then w shl 8 > high(word) and will 
> result in a range check error when assigning to swapWord. Even if we 
> calculated everything using words, you'd still get an overflow error, 
> this time when doing the shl.

How can I correct this ?
This bit of code was taken directly from server.pp in one of the old
2002 mailing threads...

cheers
James

> 
> 
> Jonas
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Jonas Maebe
On vrijdag, jul 25, 2003, at 16:22 Europe/Brussels, James Mills wrote:

Why does the following result in a runtime error ?

program example;

const
THE_PORT = ;
function swapWord(w: Word): Word;
begin
swapWord := (w SHL 8) OR (w SHR 8);
end;
In Pascal, all calculations are performed using the base type (which is 
longint in FPC), so if w > 255, then w shl 8 > high(word) and will 
result in a range check error when assigning to swapWord. Even if we 
calculated everything using words, you'd still get an overflow error, 
this time when doing the shl.

Jonas

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Jonas Maebe
On vrijdag, jul 25, 2003, at 16:32 Europe/Brussels, James Mills wrote:

In Pascal, all calculations are performed using the base type (which 
is
longint in FPC), so if w > 255, then w shl 8 > high(word) and will
result in a range check error when assigning to swapWord. Even if we
calculated everything using words, you'd still get an overflow error,
this time when doing the shl.
How can I correct this ?
Use a typecast:

function swapWord(w: Word): Word;
begin
swapWord := Word((w SHL 8) OR (w SHR 8));
end;
Jonas

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Nikolay Nikolov
[EMAIL PROTECTED] wrote:

Why does the following result in a runtime error ?

program example;

const
THE_PORT = ;
function swapWord(w: Word): Word;
begin
swapWord := (w SHL 8) OR (w SHR 8);
end;
How can I correct this ?
This bit of code was taken directly from server.pp in one of the old
2002 mailing threads...
swapWord := ((w AND $FF) SHL 8) OR (w SHR 8);



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Florian Klaempfl
James Mills wrote:
On Fri, Jul 25, 2003 at 04:21:36PM +0200, Jonas Maebe wrote:

On vrijdag, jul 25, 2003, at 16:22 Europe/Brussels, James Mills wrote:


Why does the following result in a runtime error ?

program example;

const
THE_PORT = ;
function swapWord(w: Word): Word;
begin
swapWord := (w SHL 8) OR (w SHR 8);
end;
In Pascal, all calculations are performed using the base type (which is 
longint in FPC), so if w > 255, then w shl 8 > high(word) and will 
result in a range check error when assigning to swapWord. Even if we 
calculated everything using words, you'd still get an overflow error, 
this time when doing the shl.


How can I correct this ?
This bit of code was taken directly from server.pp in one of the old
2002 mailing threads...
Turn range checking off for this piece of code or do

function swapWord(w: Word): Word;
  begin
 swapWord := ((w SHL 8) OR (w SHR 8)) and $;
  end;
___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 04:30:24PM +0200, Jonas Maebe wrote:
> 
> On vrijdag, jul 25, 2003, at 16:32 Europe/Brussels, James Mills wrote:
> 
> >>In Pascal, all calculations are performed using the base type (which 
> >>is
> >>longint in FPC), so if w > 255, then w shl 8 > high(word) and will
> >>result in a range check error when assigning to swapWord. Even if we
> >>calculated everything using words, you'd still get an overflow error,
> >>this time when doing the shl.
> >
> >How can I correct this ?
> 
> Use a typecast:
> 
> function swapWord(w: Word): Word;
> begin
>   swapWord := Word((w SHL 8) OR (w SHR 8));
> end;

Excellent thank you :)

James

> 
> 
> Jonas
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Marco van de Voort
> On Fri, Jul 25, 2003 at 04:21:36PM +0200, Jonas Maebe wrote:
> > 
> > On vrijdag, jul 25, 2003, at 16:22 Europe/Brussels, James Mills wrote:
> > 
> > >Why does the following result in a runtime error ?
> > >
> > >program example;
> > >
> > >const
> > >   THE_PORT = ;
> > >
> > >function swapWord(w: Word): Word;
> > >begin
> > >   swapWord := (w SHL 8) OR (w SHR 8);
> > >end;
> > 
> > In Pascal, all calculations are performed using the base type (which is 
> > longint in FPC), so if w > 255, then w shl 8 > high(word) and will 
> > result in a range check error when assigning to swapWord. Even if we 
> > calculated everything using words, you'd still get an overflow error, 
> > this time when doing the shl.

change to
  swapword word (w shl 8) OR word (w shr 8);

or temporarily disable {$R+} there.

> 
> How can I correct this ?
> This bit of code was taken directly from server.pp in one of the old
> 2002 mailing threads...

But was it under {$R+} there?

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 04:30:35PM +0200, Florian Klaempfl wrote:
> James Mills wrote:
> >On Fri, Jul 25, 2003 at 04:21:36PM +0200, Jonas Maebe wrote:
> >
> >>On vrijdag, jul 25, 2003, at 16:22 Europe/Brussels, James Mills wrote:
> >>
> >>
> >>>Why does the following result in a runtime error ?
> >>>
> >>>program example;
> >>>
> >>>const
> >>>   THE_PORT = ;
> >>>
> >>>function swapWord(w: Word): Word;
> >>>begin
> >>>   swapWord := (w SHL 8) OR (w SHR 8);
> >>>end;
> >>
> >>In Pascal, all calculations are performed using the base type (which is 
> >>longint in FPC), so if w > 255, then w shl 8 > high(word) and will 
> >>result in a range check error when assigning to swapWord. Even if we 
> >>calculated everything using words, you'd still get an overflow error, 
> >>this time when doing the shl.
> >
> >
> >How can I correct this ?
> >This bit of code was taken directly from server.pp in one of the old
> >2002 mailing threads...
> 
> Turn range checking off for this piece of code or do
> 
> function swapWord(w: Word): Word;
>   begin
>  swapWord := ((w SHL 8) OR (w SHR 8)) and $;
>   end;

Least now I know the reason :)

cheers
James

> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Michael Van Canneyt


On Sat, 26 Jul 2003, James Mills wrote:

> Hi,
>
> Why does the following result in a runtime error ?
>
> program example;
>
> const
>   THE_PORT = ;
>
> function swapWord(w: Word): Word;
> begin
>   swapWord := (w SHL 8) OR (w SHR 8);
> end;
>
> var
>   port:   Word;
> begin
>   port := swapWord(THE_PORT)
> end.
>
> $ ./swapword
> Runtime error 201 at 0x08052AA2
>   0x08052AA2
>   0x08052AC2
>   0x080480B0

This is a range check error.
 (w SHL 8) OR (w SHR 8)
is evaluated as a longint. i.e. the result may not fit in a longint.
And I think it should be:
 ((w and $FF) SHL 8) OR (w SHR 8)

Michael.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Boguslaw Brandys
Hello,

Just for adding my few cents : I'm not keen on FPC , and rather know a
little about FPC design but I think this is academical disscuss becouse
Pascal never used preprocessor like C++ and becouse of that was so fast, but
also so complicated when  using it in multiplatform envinronment.
Look into wxWindows details and You will find that an platform independent
code and platform dependent library working very good together ! And even
processor specific such like type declaration or machines with different
byte orders is doable that way.

I'm not insist that it is the right solution for FPC, but looking into it
could help.

Boguslaw


- Original Message -
From: "Michael Van Canneyt" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, July 25, 2003 10:12 AM
Subject: [fpc-pascal]The state of FPC - wrap up


>
> Hello,
>
> I think the point about users finding include files cumbersome to use,
> and developers who require maintainability, has been made clear.
>
> We can discuss about this for ages, and never agree. So I would like to
> conclude the discussion with a proposal.
>
> My proposal is as follows:
>
> If someone contributes a tool which does the necessary preprocessing
> i.e. including needed files, then I will set up a system where the
> source files are 'assembled' into single-source units for a given
> platform/cpu combination. These single-source units can be distributed
> with each platform or separately downloaded.
>
> This tool can be run on a daily basis on our CVS server, and zips can be
> made available as a service to the FPC users.
>
> As for the tool, I ask only 3 things:
> 1. It should compile with FPC and should be cross-platform.
> 2. Should obey {$ifdefs}/{$define} and the like, such as
>run-time platform selection.
>(linux based tool must generate sources for e.g. win32)
> 3. As for the rest, it would be good to have the command-line options
>which match the compiler's:
>-d define symbol
>-u undefine symbol
>-I/-Fi set include path
>-T select target os/cpu
>-FE set output name.
>
> If someone makes this tool, I will do the rest.
>
> Hopefully, this proposal helps to end an otherwise lengthy discussion.
>
> Michael.
>
>
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread Matt Emson


Doesn't  system contain a routine called 'swap' that does this exact thing??

This program would seem to work in both Delphi and FPC1.1:

program test;
{$APPTYPE CONSOLE}

uses
  sysutils;

var
  i, j: word;
begin
  i := $9988;
  writeln( IntToHex(i, 4) ); //output '9988'
  j := swap( i );
  writeln( IntToHex(j, 4)); //output '8899'
  readln;
end.

No need to go to the trouble of writing your won routine!! ;-)

Matt


> Hi,
>
> Why does the following result in a runtime error ?
>
> program example;
>
> const
> THE_PORT = ;
>
> function swapWord(w: Word): Word;
> begin
> swapWord := (w SHL 8) OR (w SHR 8);
> end;
>
> var
> port: Word;
> begin
> port := swapWord(THE_PORT)
> end.
>
> $ ./swapword
> Runtime error 201 at 0x08052AA2
>   0x08052AA2
>   0x08052AC2
>   0x080480B0
>
>
> cheers
> James
>
> --
> -
> -Zero Defect Software Engineers Group - ZDSEG
> -
> -You need only two tools. WD-40 and duct tape.
> -If it doesn't move and it should, use WD-40.
> -If it moves and shouldn't, use the tape.
>
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]The state of FPC - wrap up

2003-07-25 Thread Marco van de Voort
> Just for adding my few cents : I'm not keen on FPC , and rather know a
> little about FPC design but I think this is academical disscuss becouse
> Pascal never used preprocessor like C++ and becouse of that was so fast, but
> also so complicated when  using it in multiplatform envinronment.
> Look into wxWindows details and You will find that an platform independent
> code and platform dependent library working very good together ! And even
> processor specific such like type declaration or machines with different
> byte orders is doable that way.

We can be short about this: The complexity of a few includefiles pales by
the magnitude of complexity of bringing a C/C++ macro preprocessor.
The average C system is a mess in this respect.

People that disagree, are welcome to make a fully automatic (read: perfect)
header translator for C header files to Pascal. Or at least come up with a
design that _could_ work. 
It doesn't have to be compiler independant, just basic C+preprocessor
macro's are enough.

If you succeed, the gratitude and the glory would be immense :-)

Moreover The average C system that interfaces to a multitude of OSes
or other deeper libraries have the exact same solution as FPC. A directory
per item (OS, GUI toolkit) that contains a wrapper if needed + headers that
are independant of the system, and a common include dir. They use "make" to
hide it.

(check nearly every project, GDB, GCC, libc, _anything_), and you will
find OS (or GUI toolkit, or both) directories.
 
> I'm not insist that it is the right solution for FPC, but looking into it
> could help.

The C preprocessor is a kludge from an historical perspective. The main
reason for it was to defer preprocessing from the actual compiler, so that
the actual compiler needs less memory. Later it was extended to make up for
other problems of C. (most of which reasons were valid then, but not now,
to make the compiler more lightweight).

C/C++ designers know that too, and have known it for a long time. You just
have to read all C standards, and study the C++ design, and you see that the
preprocessor got less and less important with time.


___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread Rainer Hantsch
Hello, James!

On Sat, 26 Jul 2003, James Mills wrote:
| I could write you up a set of such procedures or classes to do this,
| however I'm starting back at uni. New semester :)

Good success at Uni! What are you studying?


| Anyway, I'm sure there are others here on this mailing list that could
| do the same.
Possibly, yes. But you are the _first_ one who answered, so the number of
people still seems to be very small... ;-)


| Question: Why can't you do it yourself ? It isn't that hard to grab the
| specs of the JPEG image format and learn it and write your own data
| structures to contain the jpeg image data, decode it into pixel arrays...
| It's all there in the specs :)

Something about me: I started programming in Pascal roughly 15 years ago, on
CP/M (Z80 CPU, 4MB RAM, 10MB HDD,...), later I changed to DOS with finally
Borland Pascal, but I kept consequently away from Windoze programming.
Finally I changed to Linux, which is more what I like DOS, than Windoze...

But all this years I never wrote one line in assembly language, nor was there
any need for me to include external code. I did everything in plain Pascal
language, without any hacking and tweaking, which was perfect for writing all
this userspecific software.

So my primary problem is that I never got experience about how to solve such
things like linking to external libraries. Of course, I could sit down and
hope to find it out by myself with trial & error, but this is extremely
inefficient and time consuming. Also success will be very low in this case.
Another thing is: Why should I start re-inventing the wheel and writing my own
JPEG/TIFF/.../units from scratch, when there exist a lot of ready made
libraries? Isn't it the purpose of libraries to do exactly this?


So I am looking for some help in form of _working_ samples which I can analyze
and try to understand. It will also be very helpful if there would be somebody
who could "teach" me a little bit and guide me to my first success.



mfg

  Ing. Rainer Hantsch



___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread Micha? Kamburelis
Hi Rainer

Pasjpeg is basically just a Pascal translation of sources originally 
written in ANSI C by IJG, Independent JPEG Group. You can find this C 
code with documentation at http://www.ijg.org/. At these URL there are 
also some informations about JPEG file coding (actually JFIF, JPEG is a 
standard for compressing image data and JFIF is a file format that uses 
JPEG compression; JFIF stands for "JPEG File Interchange Format"). But 
you will not find there a complete specification of JPEG format and, to 
be honest, I don't know where you can find it on the internet. 
Definitely, coding JPEG [de]compression by yourself is really an 
advanced topic and I would not advice you this.

Besides, Pasjpeg can really do all that you want. Pasjpeg contains some 
extra units not found in IJG code - mainly Jeg.pas and Pasjpeg.pas.

The first one implements a class that loads a jpeg image into a TGraphic 
class descendant from Graphics unit. Graphics unit comes from Delphi's 
VCL and it's not available with FPC - but I know Lazarus tries to 
implement library compatible with VCL (but Lazarus does it for FPC and 
for many platforms FPC supports), so maybe you could integrate Jpeg with 
Lazarus (I don't know, maybe they even already did that in Lazarus ?). 
So that's the first option you can try.

The second option is to take Jpeg unit and tweak it so that it is 
capable of reading and storing jpeg images in your preferable format, 
like simple two-dimensional array of RGB. For that you will definitely 
need IJG documentation to understand how Jpeg unit works - it's really 
too big subject to describe it in this letter.

Third option is probably the easiest one - you can use Pasjpeg unit to 
convert jpeg files into BMP files. Than you can learn how to read BMP 
files, it's really simple, and after doing that you will be able to read 
both BMP and JPEG images in quite the same way, you will only have to 
"filter" JPEG images through Pasjpeg. Not very elegant way to read JPEG 
images, but simple and working.

There is also a forth option, probably the hardets one : read IJG 
documentation and write your own code to handle pasjpeg library without 
Pasjpeg and Jpeg units (I hope you don't get confused when I sometimes 
use "pasjpeg" to name the whole "pasjpeg library" and sometimes to name 
the specific unit named "Pasjpeg.pas" in that library). Actually, if you 
learn how to do that you will not need pasjpeg library - under Linux 
there is usually a libjpeg.so shared library that contains whole IJG 
code, so you will not have to use pasjpeg library - just link 
dynamically to libjpeg.so (or statically to libjpeg.a).

Final words : what do I advise : take the easiest way - learn how to 
read BMP images and than use Pasjpeg unit. Also, there is a question - 
do you really need the JPEG format ? If you want just ANY image format 
than thinking about JPEG is a big mistake - there are many image formats 
MUCH easier to read. E.g. PPM (the simplest possible image format, you 
can handle it with a few lines of code), PNG (nice format with lots of 
capabilities and lossless compression (you DO know that JPEG compression 
is lossy, do you?), very easily readable with libpng) and so on. BMP 
format is somewhere between, it's a bit more complicated and a bit more 
functional than PPM - if you don't care about JPEGs anymore I would 
advice you PPM (or more general PNM) or PNG formats.

And remember there are many programs that can convert JPEG images into 
other formats (like PPM and PNG).

Oh, one more thing - Pasjpeg unit uses TStream classes and you said you 
dont like Classes. But, really, they are so simple - I guarantee that 
you will be glad when you learn how to use them and when you see what 
TStream and it's descendants can do for you.

Hope this helps,
--
Michalis Kamburelis
[EMAIL PROTECTED]
http://www.camelot.homedns.org/~michalis/
___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]How to use Linux libraries?

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 06:18:48PM +0200, Rainer Hantsch wrote:
> Hello, James!
> 
> On Sat, 26 Jul 2003, James Mills wrote:
> | I could write you up a set of such procedures or classes to do this,
> | however I'm starting back at uni. New semester :)
> 
> Good success at Uni! What are you studying?

Bachelor of Engineering in Software Engineering at Griffith University
(Australia, QLD)

> 
> 
> | Anyway, I'm sure there are others here on this mailing list that could
> | do the same.
> Possibly, yes. But you are the _first_ one who answered, so the number of
> people still seems to be very small... ;-)
> 
> 
> | Question: Why can't you do it yourself ? It isn't that hard to grab the
> | specs of the JPEG image format and learn it and write your own data
> | structures to contain the jpeg image data, decode it into pixel arrays...
> | It's all there in the specs :)
> 
> Something about me: I started programming in Pascal roughly 15 years ago, on
> CP/M (Z80 CPU, 4MB RAM, 10MB HDD,...), later I changed to DOS with finally
> Borland Pascal, but I kept consequently away from Windoze programming.
> Finally I changed to Linux, which is more what I like DOS, than Windoze...
> 
> But all this years I never wrote one line in assembly language, nor was there
> any need for me to include external code. I did everything in plain Pascal
> language, without any hacking and tweaking, which was perfect for writing all
> this userspecific software.
> 
> So my primary problem is that I never got experience about how to solve such
> things like linking to external libraries. Of course, I could sit down and
> hope to find it out by myself with trial & error, but this is extremely
> inefficient and time consuming. Also success will be very low in this case.
> Another thing is: Why should I start re-inventing the wheel and writing my own
> JPEG/TIFF/.../units from scratch, when there exist a lot of ready made
> libraries? Isn't it the purpose of libraries to do exactly this?
> 
> 
> So I am looking for some help in form of _working_ samples which I can analyze
> and try to understand. It will also be very helpful if there would be somebody
> who could "teach" me a little bit and guide me to my first success.

As you'll read in other posts just recently there are jpeg units for
pascal that do this. I probably have some myself that I'm unaware of :)

cheers
James

> 
> 
> 
> mfg
> 
>   Ing. Rainer Hantsch
> 
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal]runtime 201 with swapword function

2003-07-25 Thread James Mills
On Fri, Jul 25, 2003 at 04:36:39PM +0100, Matt Emson wrote:
> 
> 
> Doesn't  system contain a routine called 'swap' that does this exact thing??
> 
> This program would seem to work in both Delphi and FPC1.1:
> 
> program test;
> {$APPTYPE CONSOLE}
> 
> uses
>   sysutils;
> 
> var
>   i, j: word;
> begin
>   i := $9988;
>   writeln( IntToHex(i, 4) ); //output '9988'
>   j := swap( i );
>   writeln( IntToHex(j, 4)); //output '8899'
>   readln;
> end.
> 
> No need to go to the trouble of writing your won routine!! ;-)

I didn't write it, one of the FPC developers did last year in the
mailing list :)

cheers
James

> 
> Matt
> 
> 
> > Hi,
> >
> > Why does the following result in a runtime error ?
> >
> > program example;
> >
> > const
> > THE_PORT = ;
> >
> > function swapWord(w: Word): Word;
> > begin
> > swapWord := (w SHL 8) OR (w SHR 8);
> > end;
> >
> > var
> > port: Word;
> > begin
> > port := swapWord(THE_PORT)
> > end.
> >
> > $ ./swapword
> > Runtime error 201 at 0x08052AA2
> >   0x08052AA2
> >   0x08052AC2
> >   0x080480B0
> >
> >
> > cheers
> > James
> >
> > --
> > -
> > -Zero Defect Software Engineers Group - ZDSEG
> > -
> > -You need only two tools. WD-40 and duct tape.
> > -If it doesn't move and it should, use WD-40.
> > -If it moves and shouldn't, use the tape.
> >
> > ___
> > fpc-pascal maillist  -  [EMAIL PROTECTED]
> > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> >
> 
> 
> 
> ___
> fpc-pascal maillist  -  [EMAIL PROTECTED]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

-- 
-
-Zero Defect Software Engineers Group - ZDSEG
-
-You need only two tools. WD-40 and duct tape.
-If it doesn't move and it should, use WD-40.
-If it moves and shouldn't, use the tape.

___
fpc-pascal maillist  -  [EMAIL PROTECTED]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal