Re: [lazarus] how to test my changes in the lcl in a small app?

2006-05-19 Thread DarekM

Alexandre Leclerc napisał(a):

I did made some changes to the lcl, but would like to test before
posting. But I don't see any effets when compiling my app.

There is something I'm missing? do I have to:
make clear ?
make lcl ?


I have open one terminal window and after any changes in LCL do

cd /usr/share/lazarus //only firmst time
cd lcl //its faster compiling only LCL
make


and then compiling own application.


Its better to start new application: one form with one control to test.


Darek






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


Re: [lazarus] Who needs Unicode controls.

2006-05-19 Thread Micha Nelissen

A.J. Venter wrote:

One problem, however, is what to do on Windows 9x and on Gtk 1. We
would need to convert utf-8 to iso. But to which iso? A easy solution
is to just convert to western european iso.
Actually there must be ways of getting the current running environment's 
preferred character set. Under Linux you could use the LANG environment 
variable to determine what language the desktop is in, and call the best 
character set for that, surely the windows API must provide something 
similar ?


GetACP. WideCharToMultiByte also has a 'to ANSI' flag.

Micha

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


Re: [lazarus] Speedbutton property transparant default value should be false.

2006-05-19 Thread Marien van Westen
Delphi compatibility.Delphi compatability is not the issue here I think. The strange thing is that speedbuttons don't have borders in the designer, but at runtime the borders show when the mouse is over the speedbutton.
I think speedbuttons are also used in menus where you don't want to have bordres around them, but when you have a row of speedbuttons somewere else, the user might want to have borders around them.I also noticed that the buttons are transparent even when transparancy is false.
I think transparancy somway interferes with the borderstyle of the buttons.Shall I report this as a bug?Marien


Re: [lazarus] how to test my changes in the lcl in a small app?

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 08:24:47 +0200
DarekM [EMAIL PROTECTED] wrote:

 Alexandre Leclerc napisa__(a):
  I did made some changes to the lcl, but would like to test before
  posting. But I don't see any effets when compiling my app.
 
  There is something I'm missing? do I have to:
  make clear ?
  make lcl ?
 
 I have open one terminal window and after any changes in LCL do
 
 cd /usr/share/lazarus //only firmst time
 cd lcl //its faster compiling only LCL
 make
 
 
 and then compiling own application.
 
 
 Its better to start new application: one form with one control to test.

Right.

Or use the Tools - Configure build lazarus to only build the LCL.

At the moment the IDE does not check the LCL for changes, so it the LCL is
never recompiled automatically.

Mattias

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


Re: [lazarus] Show hint from code

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 02:25:16 +0200
A.J. Venter [EMAIL PROTECTED] wrote:

 [...]
   Did you make any changes ? I'll test mine tomorrow (it's very late
   here)
 
  No, I did a svn update, then I went to the command line, and did make
  clean all
 Doesn't work here.

What doesn't work?


  Next I recompiled only LCL for Gtk2 (from the IDE), and it worked.
 My lazarus hangs when I do that,

Can you reproduce that? If yes, please start the IDE in gdb and create a
backtrace.


 I have to rerun make, then rebuild with
 gtk1,  gives me enough gtk2 for my apps to be compiled - but it might
 prevent the  GTK2 def from being passed to trayicon ? If so that's a bug
 either in lazarus  or in ttrayicon, I'm not sure.
 On a hunch I opened the ttrayicon.lpk file, changed it's compiler options
 to  use gtk2, reinstalled, rebuilt wole for gtk2 - same result. Same stack
 trace  as well. So it doesn't matter what the component's compiler options
 say -  which makes sense, it ought to receive it from the parent app. But
 it also  ought to do so regardless of whether the LCL is using the same
 widget set as  the project target. 

When the IDE compiles itself (LCL + IDE + installed packages) it compiles
for the target set in the configure build lazarus dialog (Target cpu, os,
widgetset). Even if the project has another target. This has been fixed a
few weeks ago, so it does not always work with 0.9.14.

 
 I reckon I should fix the lazarus issue first but I am stumped as to what 
 could be causing it. Even a gdb backtrace didn't tell me anything usefull,
 
 just that it's pango that crashed. 
 Lazarus's own backtraces are talking bull, complaining about crashes in 
 whichever component was the last to be added, remove the component and it 
 just moves one step back in history - e.g. it doesn't show me what is
 REALLY  wrong.
 Mattias you wouldn't have any theories perhaps ? If I have any idea  where
 to  look for the cause of the bug  I would be happy to fix it.

Where are the crashes? In the IDE? Which widgetset? Which components
installed?

Mattias

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


Re: [lazarus] Speedbutton property transparant default value should be false.

2006-05-19 Thread Michael Van Canneyt



On Fri, 19 May 2006, Marien van Westen wrote:




Delphi compatibility.



Delphi compatability is not the issue here I think. The strange thing is
that speedbuttons don't have borders in the designer, but at runtime the
borders show when the mouse is over the speedbutton.


This is standard behaviour for a 'flat' look.

Michael.

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


Re: [lazarus] Speedbutton property transparant default value should be false.

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 09:01:50 +0200
Marien van Westen [EMAIL PROTECTED] wrote:

 
 
  Delphi compatibility.
 
 
 Delphi compatability is not the issue here I think.

I meant: for Delphi compatibility Transparent = true is the default. 


 The strange thing is
 that speedbuttons don't have borders in the designer, but at runtime the
 borders show when the mouse is over the speedbutton.
 
 I think speedbuttons  are also used in menus where you don't want to have
 bordres around them, but when you have a row of speedbuttons somewere
 else, the user might  want to have borders around them.
 I also noticed that the buttons are transparent  even when transparancy is
 false.
 I think transparancy somway interferes  with the borderstyle of the
 buttons.
 
 Shall I report this as a bug?

How does it work under Delphi?


Mattias

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


[lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread A.J. Venter
 
  Doesn't work here.

 What doesn't work?
TrayIcon gets compiled with wsgtktrayicon instead of wsgtk2trayicon if the 
project is set to use gtk2 while the IDE is running gtk1.

   Next I recompiled only LCL for Gtk2 (from the IDE), and it worked.
 
  My lazarus hangs when I do that,

 Can you reproduce that? If yes, please start the IDE in gdb and create a
 backtrace.
Reproduce ? I cannot get avoid it :) but we are talking about two sepperate 
bugs here - we shouldn't ASSUME a relationnship
Backtrace attached.

This happens on every machine I have access to and has been for about 2 weeks 
now. .

  I have to rerun make, then rebuild with
  gtk1,  gives me enough gtk2 for my apps to be compiled - but it might
  prevent the  GTK2 def from being passed to trayicon ? If so that's a bug
  either in lazarus  or in ttrayicon, I'm not sure.
  On a hunch I opened the ttrayicon.lpk file, changed it's compiler options
  to  use gtk2, reinstalled, rebuilt wole for gtk2 - same result. Same
  stack trace  as well. So it doesn't matter what the component's compiler
  options say -  which makes sense, it ought to receive it from the parent
  app. But it also  ought to do so regardless of whether the LCL is using
  the same widget set as  the project target.

 When the IDE compiles itself (LCL + IDE + installed packages) it compiles
 for the target set in the configure build lazarus dialog (Target cpu, os,
 widgetset). Even if the project has another target. This has been fixed a
 few weeks ago, so it does not always work with 0.9.14.
I always run up to date SVN.
Either way - this is the other bug - I am happy to work on both but the gtk2 
ide  bug is much more severe.


  I reckon I should fix the lazarus issue first but I am stumped as to what
  could be causing it. Even a gdb backtrace didn't tell me anything
  usefull,
 
 Where are the crashes? In the IDE? Which widgetset? Which components
 installed?
IDE starts up, splash screen shows. Then the lazarus editor window comes up, 
then the source editor window appears - and then the whole thing freezes 
solid - have to xkill it.
1) This only happens with GTK2 as the IDE widgetset
2) This happens REGARDLESS of what components are installed - even on a brand 
new fresh install with no .lazarus in existence yet.
I also attach an LDD on the lazarus executable.

GTK2 version is: gtk+2-2.8.7 
But I have the same problem on other versions both older and newer.

Ciao
A.J.

-- 
80% Of a hardware engineer's job is application of the uncertainty principle.
80% of a software engineer's job is pretending this isn't so.
A.J. Venter
Chief Software Architect
OpenLab International
http://www.getopenlab.com   | +27 82 726 5103 (South Africa)
http://www.silentcoder.co.za| +55 118 162 2079 (Brazil)
bash-3.00$ gdb ./lazarus
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as i486-slackware-linux...Using host libthread_db 
library /lib/libthread_db.so.1.

(gdb) run
Starting program: /home/silentcoder/lazarus/lazarus
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 10199)]

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,

(lazarus:10199): Gtk-WARNING **: Unable to locate theme engine in module_path: 
smooth,
TApplication.IconChanged - TODO: convert this message...no implementation in 
gtk or win32
NOTE: editor options config file not found - using defaults
NOTE: codetools config file not found - using defaults
NOTE: help options config file not found - using defaults
TMainIDE.DoNewProject A
TMainIDE.DoNewEditorFile A NewFilename=
TPascalParserTool.BuildTree B OnlyIntf=False  project1.lpr

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 10199)]
0x405f83b2 in memset () from /lib/libc.so.6
(gdb) backtrace
#0  0x405f83b2 in memset () from /lib/libc.so.6
#1  0x40838f47 in gray_render_span () from /usr/lib/libfreetype.so.6
#2  0x40839022 in gray_hline () from /usr/lib/libfreetype.so.6
#3  0x408391c0 in gray_sweep () from /usr/lib/libfreetype.so.6
#4  0x408396d7 in gray_convert_glyph () from /usr/lib/libfreetype.so.6
#5  0x408055b0 in FT_Outline_Render () from /usr/lib/libfreetype.so.6
#6  0x40805663 in FT_Outline_Get_Bitmap () from /usr/lib/libfreetype.so.6
#7  0x406e1e9a in cairo_pattern_get_extend () from /usr/lib/libcairo.so.2
#8  0x406e2971 in 

Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 11:53:19 +0200
A.J. Venter [EMAIL PROTECTED] wrote:

  
   Doesn't work here.
 
  What doesn't work?
 TrayIcon gets compiled with wsgtktrayicon instead of wsgtk2trayicon if the
 project is set to use gtk2 while the IDE is running gtk1.

When the project is set to gtk2 and you compile it, the IDE checks all
packages. The package should be compiled with LCLWidgetSet macro set to the
value of the project (gtk2). If not, then you spotted a bug.

In case of TTrayIcon: 
This component differs between gtk1 and gtk2. But the output directory is
the same.
I added the LCLWidgetSet macro to the path of the trayicon package, so it
won't be recompiled everytime you switch the widgetset.


Next I recompiled only LCL for Gtk2 (from the IDE), and it worked.
  
   My lazarus hangs when I do that,
 
  Can you reproduce that? If yes, please start the IDE in gdb and create a
  backtrace.
 Reproduce ? I cannot get avoid it :) but we are talking about two
 sepperate  bugs here - we shouldn't ASSUME a relationnship
 Backtrace attached.
 
 This happens on every machine I have access to and has been for about 2
 weeks  now. .

Gtk-WARNING **: Unable to locate theme engine in module_path: smooth,

This means: your theme uses abilities you don't have. Either install another
theme, or install the smooth engine.


   I have to rerun make, then rebuild with
   gtk1,  gives me enough gtk2 for my apps to be compiled - but it might
   prevent the  GTK2 def from being passed to trayicon ? If so that's a
   bug either in lazarus  or in ttrayicon, I'm not sure.
   On a hunch I opened the ttrayicon.lpk file, changed it's compiler
   options to  use gtk2, reinstalled, rebuilt wole for gtk2 - same
   result. Same stack trace  as well. So it doesn't matter what the
   component's compiler options say -  which makes sense, it ought to
   receive it from the parent app. But it also  ought to do so regardless
   of whether the LCL is using the same widget set as  the project
   target.
 
  When the IDE compiles itself (LCL + IDE + installed packages) it
  compiles for the target set in the configure build lazarus dialog
  (Target cpu, os, widgetset). Even if the project has another target.
  This has been fixed a few weeks ago, so it does not always work with
  0.9.14.
 I always run up to date SVN.
 Either way - this is the other bug - I am happy to work on both but the
 gtk2  ide  bug is much more severe.

Can you give exact steps how to reproduce that?


   I reckon I should fix the lazarus issue first but I am stumped as to
   what could be causing it. Even a gdb backtrace didn't tell me anything
   usefull,
  
  Where are the crashes? In the IDE? Which widgetset? Which components
  installed?
 IDE starts up, splash screen shows. Then the lazarus editor window comes
 up,  then the source editor window appears - and then the whole thing
 freezes  solid - have to xkill it.
 1) This only happens with GTK2 as the IDE widgetset
 2) This happens REGARDLESS of what components are installed - even on a
 brand  new fresh install with no .lazarus in existence yet.
 I also attach an LDD on the lazarus executable.
 
 GTK2 version is: gtk+2-2.8.7 
 But I have the same problem on other versions both older and newer.

Because I don't have the time to debug the gtk2 interface, my only advice is
to use gtk1 for the IDE.


Mattias

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread A.J. Venter

 Gtk-WARNING **: Unable to locate theme engine in module_path: smooth,

 This means: your theme uses abilities you don't have. Either install
 another theme, or install the smooth engine.
Yep, I know that one, though it should just skip them - either way, I also 
tested with the gtk2 standard theme - this had no impact.


 Can you give exact steps how to reproduce that?
Exact steps I follow:
svn co $LAZARUSSVNURL
cd lazarus
make 
./lazarus

Go to Tools|Configure Build Lazarus, click build all, set LCL to gtk2
Click ok.
Go to Tools|Build Lazarus  -problem occurs on the restart.

This happens even on a fresh user with pretty much no settings at all for 
anything.

 Because I don't have the time to debug the gtk2 interface, my only advice
 is to use gtk1 for the IDE.
Heh, fair enough - though technically I was offering to debug this one for you 
- all I need is a hint on where to look.


A.J.
-- 
80% Of a hardware engineer's job is application of the uncertainty principle.
80% of a software engineer's job is pretending this isn't so.
A.J. Venter
Chief Software Architect
OpenLab International
http://www.getopenlab.com   | +27 82 726 5103 (South Africa)
http://www.silentcoder.co.za| +55 118 162 2079 (Brazil)

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 12:32:13 +0200
A.J. Venter [EMAIL PROTECTED] wrote:

 
  Gtk-WARNING **: Unable to locate theme engine in module_path: smooth,
 
  This means: your theme uses abilities you don't have. Either install
  another theme, or install the smooth engine.
 Yep, I know that one, though it should just skip them - either way, I also
 
 tested with the gtk2 standard theme - this had no impact.
 
 
  Can you give exact steps how to reproduce that?
 Exact steps I follow:
 svn co $LAZARUSSVNURL
 cd lazarus
 make 
 ./lazarus
 
 Go to Tools|Configure Build Lazarus, click build all, set LCL to gtk2
 Click ok.
 Go to Tools|Build Lazarus  -problem occurs on the restart.
 
 This happens even on a fresh user with pretty much no settings at all for 
 anything.
 
  Because I don't have the time to debug the gtk2 interface, my only
  advice is to use gtk1 for the IDE.
 Heh, fair enough - though technically I was offering to debug this one for
 you  - all I need is a hint on where to look.

If I understood correct, you should first fix the gtk warnings about the
theme.

Mattias

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread A.J. Venter
 
  Heh, fair enough - though technically I was offering to debug this one
  for you  - all I need is a hint on where to look.

 If I understood correct, you should first fix the gtk warnings about the
 theme.
Well no other GTK apps are affected by the missing bits, nonetheless I had 
done the test (easy way -just change to the GTK2 standard theme which ships 
with the library) , with or without the warnings however the bug persists. 
Even if it was theme related however, it would still constitute a bug - the 
code ought to fall-back if the theme has a problem. 

Since I know that it is in pango that the crash occurs, although the stack 
won't show me the exact place - I can from how much appears on the screen get 
a fairly safe guess that the crash is being caused by a font-change call from 
inside TSynEdit -so the question is , how do I determine which one so I can 
fix the code...

A.J.
-- 
80% Of a hardware engineer's job is application of the uncertainty principle.
80% of a software engineer's job is pretending this isn't so.
A.J. Venter
Chief Software Architect
OpenLab International
http://www.getopenlab.com   | +27 82 726 5103 (South Africa)
http://www.silentcoder.co.za| +55 118 162 2079 (Brazil)

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread Felipe Monteiro de Carvalho

On 5/19/06, A.J. Venter [EMAIL PROTECTED] wrote:


 What doesn't work?
TrayIcon gets compiled with wsgtktrayicon instead of wsgtk2trayicon if the
project is set to use gtk2 while the IDE is running gtk1.


I see now why it works for me, and not for you. I use trayicon
directly, from code and I add the directory where it is to my project,
so it´s really part of my software. The package needed some fixes
Mattias pointed.

thanks,
--
Felipe Monteiro de Carvalho

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


[lazarus] Detecting user cancel

2006-05-19 Thread Arí Ricardo Ody
Is there a way that I can detect if a Lazarus 
application was cancelled by the windows task manager?


For example: Does the Destroy event of the main 
occurs(And then I can intercept)?


I want to detect this situation and do some special processing.

Greetings from São Paulo - Brazil

Ricardo

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


Re: [lazarus] how to test my changes in the lcl in a small app?

2006-05-19 Thread Alexandre Leclerc

Thanks Darek and Mattias.

I just saw that my fix was introducing more problems than solving :)
So I'll post an example of my findings if someone has better knowledge
of the lcl.

--
Alexandre Leclerc

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 13:03:23 +0200
A.J. Venter [EMAIL PROTECTED] wrote:

  
   Heh, fair enough - though technically I was offering to debug this one
   for you  - all I need is a hint on where to look.
 
  If I understood correct, you should first fix the gtk warnings about the
  theme.
 Well no other GTK apps are affected by the missing bits, nonetheless I had
 
 done the test (easy way -just change to the GTK2 standard theme which
 ships  with the library) , with or without the warnings however the bug
 persists.  Even if it was theme related however, it would still constitute
 a bug - the  code ought to fall-back if the theme has a problem. 
 
 Since I know that it is in pango that the crash occurs, although the stack
 
 won't show me the exact place - I can from how much appears on the screen
 get  a fairly safe guess that the crash is being caused by a font-change
 call from  inside TSynEdit -so the question is , how do I determine which
 one so I can  fix the code...

The stack is corrupted and the pango use in the gtk2 interface is
incomplete. It could be anything.
I didn't implement the gtk2 intf pango code, so I don't know, what should
already work. I would start some simple gtk2 test apps and see what is
working and what not.


Mattias

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread A.J. Venter

 I see now why it works for me, and not for you. I use trayicon
 directly, from code and I add the directory where it is to my project,
 so it´s really part of my software. The package needed some fixes
 Mattias pointed.
Mmm, okay, that is indeed an option - will you be fixing the package ?

I am looking at the notification window but it's slow going, I have never 
tried to do a tform descendent component before. I may have to leave it 
halfway and just create one built-in for my program with hookups where 
needed, and then later do an abstract component.

A.J.
-- 
80% Of a hardware engineer's job is application of the uncertainty principle.
80% of a software engineer's job is pretending this isn't so.
A.J. Venter
Chief Software Architect
OpenLab International
http://www.getopenlab.com   | +27 82 726 5103 (South Africa)
http://www.silentcoder.co.za| +55 118 162 2079 (Brazil)

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


[lazarus] Re: Detecting user cancel

2006-05-19 Thread roozbeh gholizadeh
On Fri, 19 May 2006 15:00:38 +0330, Arí Ricardo Ody  
[EMAIL PROTECTED] wrote:


Is there a way that I can detect if a Lazarus application was cancelled  
by the windows task manager?


For example: Does the Destroy event of the main occurs(And then I can  
intercept)?


I want to detect this situation and do some special processing.

Greetings from S�o Paulo - Brazil

Ricardo

If you mean cancelled as kill task by windows task manager,no i really  
doubt that.
becouse it is use is to force killling of a task,mostly when program is  
hung,
you can be sure by checking your program with spy++ and see if it recieves  
any message,

also maybe global hooking can do something for you.


--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

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


Re: [lazarus] GTK2 Bug - was Show hint from code

2006-05-19 Thread Felipe Monteiro de Carvalho

On 5/19/06, A.J. Venter [EMAIL PROTECTED] wrote:

I am looking at the notification window but it's slow going, I have never
tried to do a tform descendent component before. I may have to leave it
halfway and just create one built-in for my program with hookups where
needed, and then later do an abstract component.


Are you having difficulties with anything specific? It should look like this:

unit myunit;

type
 MyClass = class(TCustomForm)
 private
   lblTitle: TLabel;
   lblText: TLabel;
   imgIcon: TImage;
   btnX: TButton;
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   // publish some properties, others not
 end;

then on create you have to create the components:

constructor TMainWindow.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);

 BorderStyle := bsNone;

 lblTitle := TLabel.Create(Self);

 lblTitle .Left := 0;
 lblTitle .Top := 0;
 lblTitle .Width := ?;
 lblTitle .Height :=?;

 // Initializes the Glass component
 lblTitle.Align := alClient;
 lblTitle.Parent := Self;

 // Connects the methods to events
 vGlass.OnClick := HideWindow;
end;

--
Felipe Monteiro de Carvalho

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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Arí Ricardo Ody

At 08:56 19/5/2006, you wrote:

On Fri, 19 May 2006 15:00:38 +0330, Arí Ricardo Ody
[EMAIL PROTECTED] wrote:
If you mean cancelled as kill task by windows task manager,no i really
doubt that.
becouse it is use is to force killling of a task,mostly when program is
hung,


Suppose computer is doing a long processing. 
Then, someone that can copies some information 
that is available only during this processing, 
tries to interrupt the processing. I want to 
detect this and delete the privileged 
information(that otherwise would be encripted - 
sources of a interpreted language).



you can be sure by checking your program with spy++ and see if it recieves
any message,
also maybe global hooking can do something for you.


I know nothing of this matter. May you develop, please?

Thanks a lot

Ricardo 


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


[lazarus] Fwd: [MailServer Notification]Attachment Blocking Notification

2006-05-19 Thread Alexandre Leclerc

I received a message from this address that my attached file was not
received. So I would like to know if the zip file has actually reached
the mailling list.

Regards.


-- Forwarded message --
From: [EMAIL PROTECTED]
[EMAIL PROTECTED]
Date: 19.05.2006 08:30
Subject: [MailServer Notification]Attachment Blocking Notification
To: [EMAIL PROTECTED]


The test_dock.zip has been blocked,
and Replace has been taken on 5/19/2006 2:29:30 PM.
Message details:
Server:MPKWFX01
Sender: [EMAIL PROTECTED];
Recipient:lazarus@miraclec.com;
Subject:[lazarus] Docked form focus problem - Finding and example app.
Attachment name:test_dock.zip


--
Alexandre Leclerc

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


Re: [lazarus] Fwd: [MailServer Notification]Attachment Blocking Notification

2006-05-19 Thread Graeme Geldenhuys

Yup got the attachment.  I also received a bounced message the other
day from that address.

Graeme.


On 5/19/06, Alexandre Leclerc [EMAIL PROTECTED] wrote:

I received a message from this address that my attached file was not
received. So I would like to know if the zip file has actually reached
the mailling list.

Regards.


-- Forwarded message --
From: [EMAIL PROTECTED]
[EMAIL PROTECTED]
Date: 19.05.2006 08:30
Subject: [MailServer Notification]Attachment Blocking Notification
To: [EMAIL PROTECTED]


The test_dock.zip has been blocked,
and Replace has been taken on 5/19/2006 2:29:30 PM.
Message details:
Server:MPKWFX01
Sender: [EMAIL PROTECTED];
Recipient:lazarus@miraclec.com;
Subject:[lazarus] Docked form focus problem - Finding and example app.
Attachment name:test_dock.zip


--
Alexandre Leclerc

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




--
There's no place like 127.0.0.1

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


Re: [lazarus] Fwd: [MailServer Notification]Attachment Blocking Notification

2006-05-19 Thread Alexandre Leclerc

2006/5/19, Vincent Snijders [EMAIL PROTECTED]:

Alexandre Leclerc wrote:
 I received a message from this address that my attached file was not
 received. So I would like to know if the zip file has actually reached
 the mailling list.


It did, but it did not reach some user.


Fine, I'll ignore message from this server then.

--
Alexandre Leclerc

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


Re: [lazarus] Speedbutton property transparant default value should be false.

2006-05-19 Thread Mattias Gaertner
On Fri, 19 May 2006 14:39:00 +0200
Marien van Westen [EMAIL PROTECTED] wrote:

 On 5/19/06, Mattias Gaertner [EMAIL PROTECTED] wrote:
 
  On Fri, 19 May 2006 09:01:50 +0200
  Marien van Westen [EMAIL PROTECTED] wrote:
 
   
   
Delphi compatibility.
  
  
   Delphi compatability is not the issue here I think.
 
  I meant: for Delphi compatibility Transparent = true is the default.
 
 
 Ok, yes, you are right
 
  The strange thing is
   that speedbuttons don't have borders in the designer, but at runtime
   the borders show when the mouse is over the speedbutton.
  
   I think speedbuttons  are also used in menus where you don't want to
  have
   bordres around them, but when you have a row of speedbuttons somewere
   else, the user might  want to have borders around them.
   I also noticed that the buttons are transparent  even when
   transparancy
  is
   false.
   I think transparancy somway interferes  with the borderstyle of the
   buttons.
  
   Shall I report this as a bug?
 
  How does it work under Delphi?
 
 
 I Delphi (V6 open edition) the speedbuttons have a border. When I place a
 speedbutton on a panel I cannot see the text Panel1 through the
 speedbutton although the transparancy is set true (changing this to false
 doesn't change this. Delphi bug?). The appearence is the same at
 design-time and at runtime.
 Attachment shows how it looks in Delphi

Maybe at design time transparency and flat are disabled.
Please run the program under Delphi.

Mattias

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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Alexander Todorov

On 5/19/06, Arí Ricardo Ody [EMAIL PROTECTED] wrote:

Suppose computer is doing a long processing.
Then, someone that can copies some information
that is available only during this processing,
tries to interrupt the processing. I want to
detect this and delete the privileged
information(that otherwise would be encripted -
sources of a interpreted language).


If it is Windows only application then it should be receiving some
sort of WM message.
e.g. when the user logs off WM_QUERYENDSESSION is sent (IIRC).


you can be sure by checking your program with spy++ and see if it recieves
any message,
also maybe global hooking can do something for you.

I know nothing of this matter. May you develop, please?


Try to find the appropriate WM and then use Windows hooks to insert
your code before this message is processed. See SetWindowsHookEx /
UnhookWindowsHookEx / CallNextHookEx Win32 API functions.

Hope this will help you.
If you need a sample code using hooks please send me a private message.

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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Adrian Maier

On 5/19/06, Arí Ricardo Ody [EMAIL PROTECTED] wrote:

Suppose computer is doing a long processing.
Then, someone that can copies some information
that is available only during this processing,
tries to interrupt the processing. I want to
detect this and delete the privileged
information(that otherwise would be encripted -
sources of a interpreted language).


Hello,

My feeling is that deleting that information when the program is
killed would only partially solve the problem , and would only
give a false feeling of security.  For instance:
- since it's a long-running operation,   it might be possible to
 copy the sensitive information before the processing ends ?
 (we are talking about some temporary files , right ? )
- someone might run the program inside a debugger,  and stop the
 execution of the program just before the privileged information
 is deleted   - giving that person enough time to inspect
 all the secrets.

Perhaps it would be better to keep that information in memory in some
kind of buffer ?  that memory would be freed after the application is
killed ;   (again - i'm assuming that you are currently storing  the
information in some temporary files).

Cheers,
--
Adrian Maier

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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Arí Ricardo Ody

At 10:15 19/5/2006, you wrote:


Hello,

My feeling is that deleting that information when the program is
killed would only partially solve the problem , and would only
give a false feeling of security.  For instance:
- since it's a long-running operation,   it might be possible to
 copy the sensitive information before the processing ends ?
 (we are talking about some temporary files , right ? )
- someone might run the program inside a debugger,  and stop the
 execution of the program just before the privileged information
 is deleted   - giving that person enough time to inspect
 all the secrets.


First, thank you for you considerations. I think that people that 
would handle the application have no expertise to do the things you 
suggest above. This is my hope. I'll put the sources in a (local) 
ramdrive. This may difficult these actions. At least for access the 
information thru the network.




Perhaps it would be better to keep that information in memory in some
kind of buffer ?  that memory would be freed after the application is
killed ;   (again - i'm assuming that you are currently storing  the
information in some temporary files).


My Lazarus application will manage a list of programs to be converted 
and will run a tool(once for each file of the list) that uses an 
interpreter to execute sources that would writed in a ramdrive. I 
have no way of establish a communications with the interpreter in the 
way it takes the sources from a buffer of memory and not from a 
real drive. If you know what I mean...




Cheers,
--
Adrian Maier

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


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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Adrian Maier

On 19/05/06, Arí Ricardo Ody [EMAIL PROTECTED] wrote:

My Lazarus application will manage a list of programs to be converted
and will run a tool(once for each file of the list) that uses an
interpreter to execute sources that would writed in a ramdrive. I
have no way of establish a communications with the interpreter in the
way it takes the sources from a buffer of memory and not from a
real drive. If you know what I mean...


Hmm. I see.  There is nothing you can do if the interpreter accepts
input only from files. It's a shame that you can't pass the sources to the
interpreter through pipes.

Just curious: what interpreter is it ?

--
Adrian Maier

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


Re: [lazarus] Focus problem -- where is it handled in the lcl?

2006-05-19 Thread Tony Maro
Alexandre Leclerc wrote:
 2006/5/18, Mattias Gaertner [EMAIL PROTECTED]:
 On Thu, 18 May 2006 14:08:19 -0400
 Alexandre Leclerc [EMAIL PROTECTED] wrote:

  Ok, can someone point me where the focus events / mouse click events
  and all that low level stuff for visual components (including forms)
  are handled in the source files?

 TControl, TWinControl, TCustomForm and the widgetsets.

 Just a question like that... what must I understand by widgetsets? The
 buttons, panels, etc?

Alexandre, keep in mind that Lazarus is designed to be cross-platform. 
Each operating system handles focus a different way, and in Linux, each
window manager handles focus a different way making it even more
complex.  That's why it's separated from the actual component and in the
interfaces portion - to abstract the OS specific code from the typical
developer's code.

With Lazarus designed to compile the same code for Windows, Linux, OSX
and more, it's much more complex.

-Tony

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


Re: [lazarus] Re: Detecting user cancel

2006-05-19 Thread Arí Ricardo Ody

At 10:39 19/5/2006, you wrote:
Hmm. I see.  There is nothing you can do if the interpreter accepts

input only from files. It's a shame that you can't pass the sources to the
interpreter through pipes.

Just curious: what interpreter is it ?

--
Adrian Maier


A guy here develop an application using que macro language o 
Mansfield's Kedit editor(www.kedit.com). The interpreter runs under Kedit.
It has a powerful language and you can mix editor commands in the 
macro programs. But it's a high CPU usage.
I wrote a front end in Lazarus that allow the user to select a list 
of input files. The front end remains starting KEDIT once for each input file.


[ ]

Ricardo 


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


[lazarus] TrayIcon patch

2006-05-19 Thread A.J. Venter
Attached patch fixes compilation of trayicon for GTK2 projects.

Ciao
A.J.
-- 
there's nothing as inspirational for a hacker as a cat obscuring a bug 
by sitting in front of the monitor - Boudewijn Rempt
A.J. Venter
Chief Software Architect
OpenLab International
www.getopenlab.com
www.silentcoder.co.za
+27 82 726 5103


trayicongtk2.patch.gz
Description: GNU Zip compressed data


Re: [lazarus] Speedbutton property transparant default value should be false.

2006-05-19 Thread Marien van Westen
 I Delphi (V6 open edition) the speedbuttons have a border. When I place a speedbutton on a panel I cannot see the text Panel1 through the
 speedbutton although the transparancy is set true (changing this to false doesn't change this. Delphi bug?). The appearence is the same at design-time and at runtime. Attachment shows how it looks in Delphi
Maybe at design time transparency and flat are disabled.Please run the program under Delphi.At run-time the speedbuttons have the same behaviour.I show some screenshots. Note that when transparacy is true and the mouse is over the button (runtime only) the borders are visible (2) otherwise the borders are invisible.
I hope those screenshots will help .I only tested this in Windows of course.Greetings, Marien 


speedbuttons-panel-delphi-runtime.png
Description: PNG image


speedbuttons-panel-lazarus-designtime-transparacy-false.png
Description: PNG image


speedbuttons-panel-lazarus-designtime-transparancy-true.png
Description: PNG image


speedbuttons-panel-lazarus-runtime-transparancy false.png
Description: PNG image


speedbuttons-panel-lazarus-runtime-transparancy true-1.png
Description: PNG image


speedbuttons-panel-lazarus-runtime-transparancy true-2.png
Description: PNG image


Re: [lazarus] Request for PR noise !

2006-05-19 Thread m2

[EMAIL PROTECTED] a écrit :

 [EMAIL PROTECTED] writes:

 Florian Klaempfl wrote:
 
 Lv wrote:
  
 

 So if you guys want to change the name, where does it leave
users like
 me presenting papers at conferences and citing Lazarus in technical
 papers as my software of choice?

 

 
 Nice to hear that not all users believe into the imo stupid idea
to change the
 name. I don't think either that the board of directors of
lazarus (Michael H.,
  Matthias, Marc, Vincents, Micha et al.) consider a name change :)
  
 

 Just for the record, I also think a name change is uncalled for. A
name
 change would have serious consequences - and we could start promoting
 everything from zero since the new name will be even less known then
 Lazarus. The word Lazarus is neither offensive or more ambiguous than
 other well known projects and companies.
 
 One more comment: Cheetah is the simbol of FPC, not lazarus. A
cheetah
 on a column is Lazarus. Now you don't see anyone calling FPC cheetah,
 nor calling Linux Pinguin.

I agree with Andreas (and thank the board of directors and their
fine insight in dismissing this idea as being a total waste of time
and effort)


Which fine insight? Calling it a stupid idea is a fine
insight? ;-)


The drawbacks from a name change are phenomenal!!!


Even without the !!!, it would be exaggerated.


1) Loss of current user base who don't keep up on the mailing
list and all of sudden can't find their product under the name they
know (and hopefully love)


What is your estimate of the average IQ of a current user? :-)


2) Loss of new user base. I have actively promoted Lazarus,
whenever asked, as a great tool/environment with my contacts. Don't
know how many have looked at it yet, but I'm going to be very
embarrassed if they do finally take my advice and check it out, and
it's called something different than what I was advertising.


That's the contrary, there will be more new users more quickly
(assuming the new name is good). Moreover, why all that panic around
a simple change of name. That's a current practice. Many software
editors make use of temporary names for the beta versions of their
softwares.


3) I suspect would require a lot of effort in renaming all sorts
of directories/web sites/links, blah blah blah on a global basis


Yes, and this is the only valuable reason. A change of name could
lead to too much work in rewriting for the Lazarus team. This is a
problem because the possibility of a renaming has not been taken in
account when starting the project.


4) Same as #3 above on each existing users's personal computer(s)


Renaming once for all a few directories is not a problem.


All this for some cosmetics?


Cosmetic!? Some people are paid fortunes just to search for (and to
find) the name of a new product. Are you saying that companies who pay
them are wasting their money?

 Much better that we quit talking

about this and get back to making a really great product that will
really sell itself based on it's stability and functionality, not
on whether it is called S__T or Lazarus.
 
Just my two cents. Let's get back to work making Lazarus GREAT!


Yes, and a change of name would be good in order to do that. Btw, why
do you present things as if we have to choose between either a good name
or a good quality. Asking for both of them, that's not possible?

I agree that if a software is useful and of good quality, good name or
bad name, it will be used. A bad name cannot kill a good software. But a
good name can help it. And Lazarus is indeed very bad. What does this
name suggest? Bringing back a death to the life. The first thing it
leads to think of is the death. This is totally negative. Lazarus
might be an appropriate name for a game where you have to destroy lots
of death-alive ones in catacombs but there we are talking about a Pascal
programming tool.

Note that I don't say that naming the software Lazarus was a stupid
idea, no, I try to explain why I think it was a bad idea. Stupid idea
is not an explanation, it is at most a peremptory judgement. Personally,
and very frankly, I don't care whether the Lazarus team decides to
change the name or not. Now, I know and use Lazarus. For me its name has
no more importance, I know what is behind it. But this is not the case
for those who don't know it yet.

mm

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


[lazarus] Anybody know what is wrong here ?

2006-05-19 Thread A.J. Venter
I'm trying to extend my tsimple_html component so it can read from a 
tstringlist property instead of a URL (which in many [at least of my] 
programs could severely reduce overhead).
So I basically just added a tstringlist property exactly as I have always done 
it before (and I compared code with my other components, I cannot find the 
difference).
But in this one, the moment you click the property editor for the tstringlist, 
it throws an access violation - not a good sign.

Any chance somebody knows what I am doing wrong here ? (code attached)

A.J.
-- 
there's nothing as inspirational for a hacker as a cat obscuring a bug 
by sitting in front of the monitor - Boudewijn Rempt
A.J. Venter
Chief Software Architect
OpenLab International
www.getopenlab.com
www.silentcoder.co.za
+27 82 726 5103

Unit simple_html;
{A simple file based html viewer component based on ippro with image viewing 
added}

{$mode objfpc}{$H+}

interface

uses
LResources,Classes, SysUtils, Forms, Controls, Graphics,IPHtml,lazjpeg,util,simple_downloader
,fileUtil,dialogs,extCtrls;
   
   
Type

  TParseEvent = procedure(Sender: TObject;TempFileName:String) of object;
  
  THTML = class(TIpHtml)
  public
property OnGetImageX;
  end;

  TSimpleHtml = Class(TComponent)
private
FTDIR : String;
FURL : String;
FHTML : THTML;
FLines : TStringlist;
FPanel : TipHTMLPanel;
FParseMe: TParseEvent;
FDownLoader : TSimple_Downloader;
Function FetchURL(URL:String):String;
destructor destroy;
procedure setHTMLSTrings(const Avalue: TStringlist);
Public 
  constructor Create(AOwner: TComponent);
  procedure showHTML;
  Procedure HTMLGetImageX(Sender: TIpHtmlNode; Const URL: String; Var Picture: TPicture);
published
  property URL : String read FURL write FURL;
  property HTMLSTrings : TStringlist read FLines write setHTMLSTrings;
  property TempDir : String read FTDir write FTDir;
  property Panel: TipHTMLPanel read FPanel write Fpanel;
  property OnCanParse: TParseEvent read FParseMe write FParseMe;
  property DownLoader : TSimple_Downloader read FDownLoader Write FDownloader;
End;

procedure Register;
Implementation
procedure Register;
begin
  RegisterComponents('OLPack',[TSimpleHTML]);
end;

Procedure TSimpleHTML.SetHTMLSTrings(const Avalue: TStringList);
Begin
If AValue  Nil then
  FLines.Assign(AValue);
end;

Function TSimpleHTML.FetchURL(URL:String):String;
Var
  SDIR,Ext: STring;
Begin
If pos('://',URL) = 0 then
 FetchURL := URL
else begin
  FileUTil.ForceDirectory(FTDIR);
  SDIR := '';
  Ext := UpperCase(ExtractFileExt(URL));
  If (Ext = '.JPG') or
  (Ext = '.PNG') or
  (Ext = '.GIF') or
  (Ext = '.XPM') then
SDIR := FTDIR+pathDelim+ExtractFileName(URL) else
  If (length(ExtractFileName(URL)) = 0) or (Length(EXT)=0)  then
SDIR := FTDIR+pathdelim+'index.html' else
  If pos('.html',ExtractFileName(URL)) = 0 then
SDIR := FTDIR+pathdelim+ExtractFileName(URL)+'.html' else
SDIR := FTDIR+pathdelim+ExtractFileName(URL);
SDIR := SingleSlashes(SDIR);
  DownLoader.URL := URL;
  Downloader.Download;
  DownLoader.Output.SaveToFile(SDIR);
  if ((ExtractFileExt(SDIR) = '.html') or (ExtractFileExt(SDIR) = '.htm'))
 And (Assigned(FParseMe)) then
 FParseMe(Self,SDIR);
  FetchURL := SDIR;
end;
end;

Procedure TSimpleHTML.HTMLGetImageX(Sender:TIpHtmlNode; Const URL: String; Var Picture: TPicture);
Var
   PicCreated: boolean;
   IMGFile:String;
Begin
Try
  IF (FileExists(FTDIR+PathDelim+ExtractFileName(URL))) then
  IMGFile := FTDIR+PathDelim+ExtractFileName(URL) else
  if (pos('://',URL)  0) then
  IMGFile := FetchURL(URL) else
  IMGFILE := URL;
  If FileExists(IMGFIle) Then
Begin
   PicCreated := False;
   If Picture=Nil Then
   Begin
Picture := TPicture.Create;
PicCreated := True;
   End;
  Picture.LoadFromFile(IMGFile);
End;
Except
  If PicCreated Then
 Picture.Free;
 Picture := Nil;
End;
End;

Constructor TSimpleHTML.Create(AOwner: TComponent);
Begin
  FLines := TStringlist.create;
  inherited create(AOwner);
End;

Procedure TSimpleHTML.ShowHTML;
Var Path : String;
HTMLStream: TMemoryStream;
I :Integer;
Begin
if length(FTDir) = 0 then
   FTDir := SysUtils.GetTempFileName;
If Length(FURL)  0 then
begin
Path := FetchURL(FURL);
HTMLStream := TMemoryStream.Create;
HTMLStream.LoadFromFile(Path);
end else
begin
For I := 0 to FLines.Count - 1 do
  HTMLStream.WriteAnsiString(FLines[I]);
end;
FHTML := THTML.Create;
FHTML.OnGetImageX := @HTMLGetImageX;
FHTML.LoadFromStream(HTMLStream);
   

[lazarus] Unicode - basic logic would be...

2006-05-19 Thread Borut Maricic
Sorry for going further on the subject. I have started an
introductory wiki-page that should be a kind of knowledge
base for those (if any) trying/thinking about
Unicode-enabling win32 interface:

http://wiki.lazarus.freepascal.org/index.php/LCL_Unicode_Support

Of course, currently there is not exactly much information there.

Here follow two concept procedures that just describe a
possible logic of what should happen at the boundary between
win32 widgetset and WinAPI. Could some core developer take a
look and comment, please. Those interested in Unicode are
also invited to comment, of course.

Regards,
Borut

var
 UseUnicode : Boolean;  //Global variable, so that application can initialise 
global behaviour

procedure FromWidgetToWinAPI(Text:String);
begin
  if UseUnicode then // implicit statement: Text is UTF-8 encoded
  begin
   if RunningOnUnicodeenabledPlatform
   then Call_Set_API_W(UTF8ToUTF16(Text))//reencode to UTF-16 and 
call *W
   else Call_Set_API_A(UTF8ToActiveCodePage(Text));  //reencode to ISO- and 
call *A (possible information loss)
  end else   // implicit statement: Text is NOT UTF-8 encoded
  begin
   Call_Set_API_A(Text); // current case (not meaningful if text is UTF-8 
encoded)
  end;
end;

function FromWinAPIToWidget : String;
var W : WideString;
S : String;
begin
  if UseUnicode then // implicit statement: Result should be UTF-8 encoded
  begin
if RunningOnUnicodeenabledPlatform then
begin
  W:=Call_Get_API_W;
  Result:=UTF16ToUTF8(W);//reencode from UTF-16 to UTF-8
end else
begin
  S:=Call_Get_API_A;
  Result:=ActiveCodePageToUTF8(S);   //reencode from UTF-16 to ISO- 
(possible information loss)
end;
  end else  // implicit statement: Result should NOT be UTF-8 encoded
  begin
   Result:=Call_Get_API_A; // current case (not meaningful if Result will later 
be treated as UTF-8 encoded)
  end;
end;






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