Re: [Lazarus] VirtualTreeView question, horizontal jump

2013-08-22 Thread Jürgen Hestermann


Am 2013-08-21 18:40, schrieb luiz americo pereira camara:


2013/8/21 Jürgen Hestermann juergen.hesterm...@gmx.de 
mailto:juergen.hesterm...@gmx.de


I now found that toDisableAutoscrollOnFocus (under AutoOptions) is 
changing between these both behaviours:

If I set it to TRUE I can navigate as usual within the tree (without 
horizontal shifting) *but* when reaching the bottom border of the window the 
cursor disappears below it without shifting up the tree display. So I don't see 
my cursor anymore (which is totally useless).
If I set it to FALSE the tree display is shifted up when reaching the 
bottom of the display *but* now it jumps to the right border every second down 
move (so that I don't see the tree anymore, only when shifting it back with 
Ctrl+Enter).


Try to set toCenterScrollIntoView and toDisableAutoscrollOnFocus




With
toCenterScrollIntoView = True
toDisableAutoscrollOnFocus = False
the only change is, that the horizontal scroll is now centering (instead of 
moving to the right margin). This does not solve the problem because the tree 
is still out of sight.

With
toCenterScrollIntoView = True
toDisableAutoscrollOnFocus = True
I get the same as before (cursor moves below the bottom without shifting up the 
tree to make it visible).

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Shell notifications

2013-08-22 Thread Antonio Fortuny

Hi All.

I've built some code which works fine under Linux.
I'm now working on the Windows part using FindFirstChangeNotificationA 
to get the directory handle and ReadDirectoryChangesW to fetch events data.
And I'm blocked there. The receiving buffer is set to 32kb. After 
changing a file content, ReadDirectoryChangesW does not return any error 
but the return length is crazy (28 megs) and nothing in the returned 
buffer contents looks right.
After reading some ms docs I've read thah the buffer has to be DWORD 
aligned.

So there is may question: how to do that ?

Thanks,

Antonio.



--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Juha Manninen
On Thu, Aug 22, 2013 at 3:50 AM, waldo kitty wkitt...@windstream.net wrote:
 after preventing all additional apps from starting, including my firewall
 and my avast anti-virus, i saw 1.047 seconds for the reading of the compiler
 options... unloading lazarus and immediately reloading it and trying again
 gave me a (cached) reading time of 00.047 seconds...

This 47 ms is exactly one second less than the first value. Maybe you
typed it wrong.
Still, it is a realistic value in a healthy machine. I also got
smaller than 50 ms timings on my work machine with Linux. Quite a
difference compared to 18 seconds.

Juha

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Martin

On 20/08/2013 14:13, Juha Manninen wrote:

Attention waldo kitty and others with slow machines.

I added code for timing the reading of all compiler options and the
rendering the GUI for them. It shows a MessageBox after reading and
rendering.


I don't use the define, it should log to console, not dialog

But normally on my system the time is not noticeable (100 ms, tops 150 ?)

Now I just experienced it taking about 3 or 4 seconds.
win 32 vista

The system was particular busy (another fpc (different exe / different 
version) was running).

- using 1 of 2 cpu = but the other was idle, so enough cpu power
- still 1Gb of RAM free
- but it would have prevented anything useful being in the OS disc cache 
because it accesses plenty of other files
Everything on my system react nice and fine, except that tab (other) 
took a few seconds


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Shell notifications

2013-08-22 Thread Antonio Fortuny

See the code in attachment

I changed the code a little bit adding the OVERLAP parameter and events 
to use the async method.

Now the same function returns error code 6

Antonio.
procedure TFrmMain.StartNotify(const FolderName: String);

  {$IFDEF LINUX}
  function decodeMask(Mask:Longint):string;
  var
 Rslt:String;
  begin
 Rslt:='';
 if (Mask and IN_ACCESS)=IN_ACCESS then
Rslt:=Rslt+' File was accessed.';
 if (Mask and IN_MODIFY)=IN_MODIFY then
Rslt:=Rslt+' File was modified.';
 if (Mask and IN_ATTRIB)=IN_ATTRIB then
Rslt:=Rslt+' Attribute was changed.';
 if (Mask and IN_CLOSE_WRITE)=IN_CLOSE_WRITE then
Rslt:=Rslt+' Writtable file was closed.';
 if (Mask and IN_CLOSE_NOWRITE)=IN_CLOSE_NOWRITE then
Rslt:=Rslt+' Unwrittable file was closed.';
 if (Mask and IN_CLOSE)=IN_CLOSE then
Rslt:=Rslt+' File was closed.';
 if (Mask and IN_OPEN)=IN_OPEN then
Rslt:=Rslt+' File was opened.';
 if (Mask and IN_MOVED_FROM)=IN_MOVED_FROM then
Rslt:=Rslt+' File was moved from ';
 if (Mask and IN_MOVED_TO)=IN_MOVED_TO then
Rslt:=Rslt+' File was moved to ';
 if (Mask and IN_MOVE)=IN_MOVE then
Rslt:=Rslt+' File is moving';
 if (Mask and IN_CREATE)=IN_CREATE then
Rslt:=Rslt+' Subfile was created';
 if (Mask and IN_DELETE)=IN_DELETE then
Rslt:=Rslt+' Subfile was deleted';
 if (Mask and IN_DELETE_SELF)=IN_DELETE_SELF then
Rslt:=Rslt+' Self was deleted';
 if (Mask and IN_MOVE_SELF)=IN_MOVE_SELF then
Rslt:=Rslt+' Self was moved';
 if (Mask and IN_UNMOUNT)=IN_UNMOUNT then
Rslt:=Rslt+' Filesystem was unmounted';
 if (Mask and IN_Q_OVERFLOW)=IN_Q_OVERFLOW then
Rslt:=Rslt+' Event queued overflowed';
 if (Mask and IN_IGNORED)=IN_IGNORED then
Rslt:=Rslt+' File was ignored';
 if (Mask and IN_ONLYDIR)=IN_ONLYDIR then
Rslt:=Rslt+' Only watch the path if it is a directory';
 if (Mask and IN_DONT_FOLLOW)=IN_DONT_FOLLOW then
Rslt:=Rslt+' Do not follow a sym link';
 if (Mask and IN_MASK_ADD)=IN_MASK_ADD then
Rslt:=Rslt+' Add to the mast of an already existing watch';
 if (Mask and IN_ISDIR)=IN_ISDIR then
Rslt:=Rslt+' Event occurred against dir';
 if (Mask and IN_ONESHOT)=IN_ONESHOT then
Rslt:=Rslt+' Only send event once';
 decodeMask:=Rslt;
  end;
  {$ENDIF}
  {$IFDEF MSWINDOWS}
  function decodeMask(Mask:Longint):string;
  var
Rslt:String;
  begin
Result := '';
if (Mask and FILE_ACTION_ADDED) = FILE_ACTION_ADDED then
  Result := Result + ' file ADDED';
if (Mask and FILE_ACTION_REMOVED) = FILE_ACTION_REMOVED then
  Result := Result + ' file REMOVED';
if (Mask and FILE_ACTION_MODIFIED) = FILE_ACTION_MODIFIED then
  Result := Result + ' file CHANGED';
  end;
  {$ENDIF}

var
  wFolderName: String;
  FileName: String;
  Timeout: Integer=200;
  Buffer: PChar;
  PData: Pointer;
  P: Integer;
  {$IFDEF LINUX}
  Ret: Integer;
  instance_handle: cint;
  notify_handle: cint;
  rfds: tfdset;
  length: Integer;
  iEvent: inotify_event;
  buflen: Integer=(SizeOf(iEvent) + 16) * 512;
  evnt: Pinotify_event;
  TotalRead: TSsize;
  FileName: String;
  {$ENDIF}
  {$IFDEF MSWINDOWS}
  wHandle: THANDLE;
  Ret: Integer;
  Res: BOOL;
  pFileInfo: PFILE_NOTIFY_INFORMATION;
  buflen: DWORD=SizeOf(FILE_NOTIFY_INFORMATION) * 512;
  TotalRead: DWORD;
  Error: Integer;
  Overlap: OVERLAPPED;
  events: array[0..1] of THANDLE;
  Ev1: TEvent;
  Ev2: TEvent;
  {$ENDIF}
begin
  wFolderName := ExcludeTrailingPathDelimiter(Trim(FolderName));
  {$IFDEF MSWINDOWS}
  wHandle := FindFirstChangeNotificationA(PChar(wFolderName), 
DWORD(LongBool(False)), FILE_NOTIFY_CHANGE_SIZE + 
FILE_NOTIFY_CHANGE_LAST_WRITE);
  try
if wHandle = INVALID_HANDLE_VALUE then begin
  MessageDlg('Error','Invalid notify handle', mtError, [mbOK], 0, mbOK);
  Exit
end;
Ev1 := TEvent.Create(nil, False, False, 'FEV1_tralala');
Ev2 := TEvent.Create(nil, False, False, 'FEV2_tralala');
events[0] := THANDLE(Ev1.Handle);
events[1] := THANDLE(Ev2.Handle);
FillMemory(@Overlap, SizeOf(OVERLAPPED), byte(#0));
Overlap.hEvent := THANDLE(Ev1.Handle);
FStopNotify := False;
PData := nil;
buflen := 32 * 1024;
ReAllocMem(PData, buflen);
//Buffer := system.Align(PData, 16);
Buffer := PData;
while not FStopNotify do begin
  Ret := WaitForSingleObject(wHandle, 200);
  if Ret = WAIT_OBJECT_0 then begin
FillMemory(PData, buflen, byte(#0));

Res := ReadDirectoryChangesW(wHandle, Buffer, buflen, False,
FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_SIZE + 
FILE_NOTIFY_CHANGE_LAST_WRITE, @TotalRead, @Overlap, nil);
if not Res then begin
  Error := GetLastError;
  FStopNotify := True;
  Memo1.Lines.Add(Format('error on read changes: %d %s', [Error, 
SysErrorMessage(Error)]));
  

Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread waldo kitty

On 8/22/2013 05:56, Juha Manninen wrote:

On Thu, Aug 22, 2013 at 3:50 AM, waldo kittywkitt...@windstream.net  wrote:

after preventing all additional apps from starting, including my firewall
and my avast anti-virus, i saw 1.047 seconds for the reading of the compiler
options... unloading lazarus and immediately reloading it and trying again
gave me a (cached) reading time of 00.047 seconds...


This 47 ms is exactly one second less than the first value. Maybe you
typed it wrong.


not typoed... i looked at the wrong number on the sheet i wrote them down on... 
the cached speed should have been 00:141...



Still, it is a realistic value in a healthy machine. I also got
smaller than 50 ms timings on my work machine with Linux. Quite a
difference compared to 18 seconds.


yeah... i've been trying to locate the setting in my firewall where i can turn 
that protection off but i haven't found it and i'm not sure i want it off just 
in case something does try to get loose during my network security 
investigations and research ;)


--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Sven Barth

Am 21.08.2013 17:45, schrieb Sven Barth:
Maybe I'll need to test this on my mobile development computer as well 
(800 MHz Intel Stealy processor, 1 GB RAM, Windows 7) ^^
I've written a simple application that uses TProcess to start fpc -i 
and fpc -h and reads it standard and error output. The fpc 
executable can be passed as parameter.


On my above mentioned 800 MHz system fpc -i takes ~445ms and fpc -h 
~540ms for a 2.6.2 fpc.exe. If I now use a 2.6.2 ppc386.exe (which is 
called by fpc.exe) the time is ~240ms and ~315ms respectively.


I've attached the lpr if someone wants to test him-/herself.

Regards,
Sven
program processtest;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  SysUtils
  { you can add units after this }, process;

procedure ExecuteProcess(const aExecutable: String;
  const aArgs: array of String);
var
  p: TProcess;
  s: String;
  buf: array[0..1023] of Byte;
  start: TDateTime;
begin
  p := TProcess.Create(Nil);
  try
p.Executable := aExecutable;
for s in aArgs do
  p.Parameters.Add(s);
p.Options := [poUsePipes];
start := Now;
p.Execute;
while p.Running do begin
  if p.Stderr.NumBytesAvailable  0 then
p.Stderr.Read(buf, Length(buf));
  if p.Output.NumBytesAvailable  0 then
p.Output.Read(buf, Length(buf));
end;
while p.StdErr.NumBytesAvailable  0 do
  p.Stderr.Read(buf, Length(buf));
while p.Output.NumBytesAvailable  0 do
  p.Output.Read(buf, Length(buf));
Writeln('Duration: ', FormatDateTime('hh:nn:ss.zzz', Now - start));
  finally
p.Free;
  end;
end;

var
  exe: String;
begin
  if ParamCount = 0 then
exe := 'fpc'
  else
exe := ParamStr(1);
  ExecuteProcess(exe, ['-i']);
  ExecuteProcess(exe, ['-h']);
end.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Shell notifications

2013-08-22 Thread Sven Barth

Am 22.08.2013 13:33, schrieb Antonio Fortuny:

See the code in attachment

I changed the code a little bit adding the OVERLAP parameter and 
events to use the async method.

Now the same function returns error code 6
Error code 6 is ERROR_INVALID_HANDLE (would be nice if you'd mention the 
error message as well next time when you're already using 
SysErrorMessage). FindFirstChangeNotification returns a notification 
handle, but ReadDirectoryChanges requires a directory handle (with 
FILE_LIST_DIRECTORY priviledge), so you need to open the directory yourself.


Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread waldo kitty

On 8/22/2013 06:58, Martin wrote:

The system was particular busy (another fpc (different exe / different version)
was running).
- using 1 of 2 cpu = but the other was idle, so enough cpu power
- still 1Gb of RAM free
- but it would have prevented anything useful being in the OS disc cache because
it accesses plenty of other files
Everything on my system react nice and fine, except that tab (other) took a
few seconds


the possibility of slow access is why i originally requested a please wait 
while acquiring options popup window just to let us know what was going on... 
but if the process is going to go into a background thread, there's no real need 
for the box... even in my testing, loading lazarus with the default empty 
project and going directly to project settings - other as quickly as i could, 
it still took some few seconds... my mouse has to walk a long way over this 
1600x1200 screen ;)


FWIW: i just spent several hours moving some large files off this machine so i 
could perform a thorough defrag of this NTFS file system... have returned the 
machine to normal operations and just tested again... consistent 15.xxx load 
times even back to back without exiting lazarus... just canceling the panel, 
re-opening it and selecting other... the drive light doesn't even blink... not 
sure what to do to make it faster... not sure that it really matters, either...



--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Shell notifications

2013-08-22 Thread Henry Vermaak
On Thu, Aug 22, 2013 at 01:49:28PM +0200, Sven Barth wrote:
 Am 22.08.2013 13:33, schrieb Antonio Fortuny:
 See the code in attachment
 
 I changed the code a little bit adding the OVERLAP parameter and
 events to use the async method.
 Now the same function returns error code 6
 Error code 6 is ERROR_INVALID_HANDLE (would be nice if you'd mention
 the error message as well next time when you're already using
 SysErrorMessage). FindFirstChangeNotification returns a notification
 handle, but ReadDirectoryChanges requires a directory handle (with
 FILE_LIST_DIRECTORY priviledge), so you need to open the directory
 yourself.

To add to this, the remarks section on msdn says this:

To obtain a handle to a directory, use the CreateFile function with the
FILE_FLAG_BACKUP_SEMANTICS flag.

In addition to this you're also passing an OVERLAPPED record to
ReadDirectoryChangesW(), so you'll have to use FILE_FLAG_OVERLAPPED when
you open the directory, too.

Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Juha Manninen
On Thu, Aug 22, 2013 at 2:50 PM, waldo kitty wkitt...@windstream.net wrote:
 blink... not sure what to do to make it faster...

Replacing Windows with Linux would make it faster. See my earlier
timings for a much slower P2 233 MHz machine.
Sorry, I could not resist writing this... You may have other reasons
for using Windows of course. :)

Juha

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Sven Barth

Am 22.08.2013 14:14, schrieb Juha Manninen:

On Thu, Aug 22, 2013 at 2:50 PM, waldo kitty wkitt...@windstream.net wrote:

blink... not sure what to do to make it faster...

Replacing Windows with Linux would make it faster. See my earlier
timings for a much slower P2 233 MHz machine.
I *know* that process startup time on Windows is slower than on Linux. 
That's what I have written already in another mail in this thread though 
not in relation to Linux.

Sorry, I could not resist writing this... You may have other reasons
for using Windows of course. :)

I'm using Windows on that machine, because Linux does not fully work there.

Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread waldo kitty

On 8/22/2013 07:42, Sven Barth wrote:

Am 21.08.2013 17:45, schrieb Sven Barth:

Maybe I'll need to test this on my mobile development computer as well (800
MHz Intel Stealy processor, 1 GB RAM, Windows 7) ^^

I've written a simple application that uses TProcess to start fpc -i and fpc
-h and reads it standard and error output. The fpc executable can be passed
as parameter.

On my above mentioned 800 MHz system fpc -i takes ~445ms and fpc -h ~540ms
for a 2.6.2 fpc.exe. If I now use a 2.6.2 ppc386.exe (which is called by
fpc.exe) the time is ~240ms and ~315ms respectively.

I've attached the lpr if someone wants to test him-/herself.


saved as processtest.lpr... opened laz and opened a project... pointed to 
processtest.lpr and chose 'Application' when laz asked what kind of project... 
was 'Application' the proper project to choose?



also, i edited line 49 where the value of 'exe' is set to 'fpc' to put in the 
complete path and filename since there is no apparent path search or extension...


  exe := 'X:\freepascal\fpc\trunk\bin\i386-win32\fpc.exe'


running gives me the following in a popup box...


  Process processtest raised exception class 'RunError(103)'.

   In file 'processtest.lpr' at line 39:
  Writeln('Duration: ', FormatDateTime('hh:nn:ss.zzz', Now - start));


clicking [Continue] gives me this in another popup box...


  Project processtest raised exception class 'EInOutError' with message:
  File not open

   In file 'processtest.lpr' at line 39:
  Writeln('Duration: ', FormatDateTime('hh:nn:ss.zzz', Now - start));


clicking [Continue] gives me this in a final popup box...


  An unhandled exception occurred at $004017E4:
  EInOutError: File not open
$004017E4 EXECUTEPROCESS, line 39 of processtest.lpr
$004018EA main, line 52 of processtest.lpr


thinking that it might be a path related problem, i copied fpc.exe and 
ppc386.exe into the same directory as this processtest project... then i was 
able to see processtest start fpc and fpc attempted to start ppp386.exe but i 
got the same outputs as above...


--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread patspiper

Hi,

The following applies at least to Linux, and should probably apply as 
well to other OSes.


When multiple FPC versions are used, the fpc binary and related 
utilities are usually located in fpc folder/fpc version/bin, and the 
compiler itself (ppcxxx) in fpc folder/fpc version/lib/fpc/fpc 
version. The folders could be different than these, but the point to 
note is that there are 2 folders that rely on the fpc version.


Furthermore, it is not good practice to specify the ppcxxx compiler in 
the compiler path in the IDE options, especially when cross-compiling. 
The fpc binary must be specified instead, and that binary must be able 
to locate the ppcxxx folder.


I define the compiler path in the IDE options as 'fpc' only, and ensure 
that both paths above (with the required fpc version to use) are 
exported in a shell before launching the IDE from that shell (actually I 
use a script with a menu to select the version). This setup runs 
smoothly even for cross-compiling.


However to switch from one fpc version to another, one must quit the IDE 
and the shell, and repeat the process above with the new paths.


In order to avoid quitting the IDE, I suggest the following:

- If the compiler path in the IDE options is set as a relative path to 
the fpc binary, or more specifically 'fpc' only, then one would assume 
that the required paths have been exported, and nothing more needs to be 
done.


- If on the other hand the compiler path in the IDE options is set as an 
absolute path to the fpc binary (indicating that no paths have been 
exported), then an additional edit box can be used where one specifies 
the relative path of the ppcxxx compiler (relative to the fpc binary 
folder), and thus the IDE can feed that path to the fpc binary using 
'absolute path to the fpc binary/fpc -Xprelative path of ppc 
compiler' when launching the fpc binary. Here two sub cases arise:


  * If the FPCVER macro does not appear in any of the 2 paths 
(absolute path to the fpc binary and relative path of ppc compiler) 
then the fpc binary can be queried to set the FPCVER macro.


  * If any of the 2 paths depend on the FPCVER macro, then another edit 
box (with dropdown history) is used to force the FPCVER macro to the 
required value instead of querying the fpc binary. In that case, 
changing the FPCVER macro will ensure the use of the right FPC version. 
As a sanity check, the fpc binary can be queried for the fpc version 
which is compared to the user specified FPCVER macro.


Thoughts?

Regards,
Stephano

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread Sven Barth

Am 22.08.2013 14:38, schrieb waldo kitty:

On 8/22/2013 07:42, Sven Barth wrote:

Am 21.08.2013 17:45, schrieb Sven Barth:
Maybe I'll need to test this on my mobile development computer as 
well (800

MHz Intel Stealy processor, 1 GB RAM, Windows 7) ^^
I've written a simple application that uses TProcess to start fpc 
-i and fpc
-h and reads it standard and error output. The fpc executable can 
be passed

as parameter.

On my above mentioned 800 MHz system fpc -i takes ~445ms and fpc 
-h ~540ms

for a 2.6.2 fpc.exe. If I now use a 2.6.2 ppc386.exe (which is called by
fpc.exe) the time is ~240ms and ~315ms respectively.

I've attached the lpr if someone wants to test him-/herself.


saved as processtest.lpr... opened laz and opened a project... pointed 
to processtest.lpr and chose 'Application' when laz asked what kind of 
project... was 'Application' the proper project to choose?
'Program' or 'Simple Program' would have been correct. Alternatively you 
could have compiled it on the command line as well...
also, i edited line 49 where the value of 'exe' is set to 'fpc' to put 
in the complete path and filename since there is no apparent path 
search or extension...


  exe := 'X:\freepascal\fpc\trunk\bin\i386-win32\fpc.exe'
That is only the fallback (as Lazarus does). 'fpc' will then be searched 
in %PATH%. Other executables can be supplied using a parameter (the 
first one is used) so that I need to compile the test program only once 
to test different executables.



running gives me the following in a popup box...


  Process processtest raised exception class 'RunError(103)'.
Maybe you should have chosen 'Program' indeed. ^^ Alternatively add 
{$apptype console} at the top or disable GUI application in the 
project options.


Regards,
Sven

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread waldo kitty

On 8/22/2013 07:42, Sven Barth wrote:

On my above mentioned 800 MHz system fpc -i takes ~445ms and fpc -h ~540ms
for a 2.6.2 fpc.exe. If I now use a 2.6.2 ppc386.exe (which is called by
fpc.exe) the time is ~240ms and ~315ms respectively.

I've attached the lpr if someone wants to test him-/herself.


i went back and created a new project but chose 'Program' this time instead of 
'Application' and that works much better...



X:\freepascal\projects\processtestprocesstest
Duration: 00:00:04.750
Duration: 00:00:02.421

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:01.047
Duration: 00:00:01.063

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:00.921
Duration: 00:00:01.047

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:01.188
Duration: 00:00:01.219

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:01.047
Duration: 00:00:01.047

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:00.813
Duration: 00:00:00.922

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:01.265
Duration: 00:00:01.281

X:\freepascal\projects\processtestprocesstest
Duration: 00:00:01.281
Duration: 00:00:01.078


so... i tried project - options - other again and got 14.906 and 16.205 on the 
two test runs i made... hummm... why just a huge difference in time??


i deleted the two exes (fpc and ppc386) i had copied to the project directory 
and specified the full path to fpc on the command line...



X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\fpc.exe

Duration: 00:00:01.094
Duration: 00:00:03.281

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\fpc.exe

Duration: 00:00:01.031
Duration: 00:00:03.156

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\fpc.exe

Duration: 00:00:01.157
Duration: 00:00:02.859

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\fpc.exe

Duration: 00:00:01.047
Duration: 00:00:03.110


weird... but ok... so once more but directly to ppc386...


X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\ppc386.exe

Duration: 00:00:00.500
Duration: 00:00:02.485

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\ppc386.exe

Duration: 00:00:00.610
Duration: 00:00:02.515

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\ppc386.exe

Duration: 00:00:00.610
Duration: 00:00:02.172

X:\freepascal\projects\processtestprocesstest 
\freepascal\fpc\trunk\bin\i386-win32\ppc386.exe

Duration: 00:00:00.484
Duration: 00:00:02.641


i'm at a loss for the difference in times for each of these as well as the much 
longer times in lazarus project-options-other :?



--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread Mattias Gaertner
On Thu, 22 Aug 2013 15:39:47 +0300
patspiper patspi...@gmail.com wrote:

[...]
* If the FPCVER macro does not appear in any of the 2 paths 
 (absolute path to the fpc binary and relative path of ppc compiler) 
 then the fpc binary can be queried to set the FPCVER macro.

The FPCVer always comes from querying the compiler.


Mattias

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Timing of all compiler options on slow machines

2013-08-22 Thread waldo kitty

On 8/22/2013 08:14, Juha Manninen wrote:

On Thu, Aug 22, 2013 at 2:50 PM, waldo kittywkitt...@windstream.net  wrote:

blink... not sure what to do to make it faster...


Replacing Windows with Linux would make it faster. See my earlier
timings for a much slower P2 233 MHz machine.


ROTFLMAO!!! i love it! :)


Sorry, I could not resist writing this... You may have other reasons
for using Windows of course. :)


no problem, my friend... none at all... i do use linux on other boxen for 
mission critical stuffs... and i also have a few primaries running OS/2 eCS as 
well... but for everything i do, winwhatever currently takes all for the simple 
ease of use and i can do anything i want in 99% of the cases... since it is w2k, 
i am not restricted from being able to run DOS apps whenever i want... quite 
unlike the new winwhatever stuff out there today... habit and muscle memory are 
hard things to overcome when one is set in their ways with their daily tasks and 
goals ;)


--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Shell notifications

2013-08-22 Thread Antonio Fortuny


Le 22/08/2013 14:06, Henry Vermaak a écrit :

On Thu, Aug 22, 2013 at 01:49:28PM +0200, Sven Barth wrote:

Am 22.08.2013 13:33, schrieb Antonio Fortuny:

See the code in attachment

I changed the code a little bit adding the OVERLAP parameter and
events to use the async method.
Now the same function returns error code 6

Error code 6 is ERROR_INVALID_HANDLE (would be nice if you'd mention
the error message as well next time when you're already using
SysErrorMessage). FindFirstChangeNotification returns a notification
handle, but ReadDirectoryChanges requires a directory handle (with
FILE_LIST_DIRECTORY priviledge), so you need to open the directory
yourself.

To add to this, the remarks section on msdn says this:

To obtain a handle to a directory, use the CreateFile function with the
FILE_FLAG_BACKUP_SEMANTICS flag.

In addition to this you're also passing an OVERLAPPED record to
ReadDirectoryChangesW(), so you'll have to use FILE_FLAG_OVERLAPPED when
you open the directory, too.

This did it. Don't even need FindFirstChangeNotification
Thanks

Antonio.


Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus






--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread Mark Morgan Lloyd

patspiper wrote:

When multiple FPC versions are used, the fpc binary and related 
utilities are usually located in fpc folder/fpc version/bin, and the 
compiler itself (ppcxxx) in fpc folder/fpc version/lib/fpc/fpc 
version. The folders could be different than these, but the point to 
note is that there are 2 folders that rely on the fpc version.


I don't see that here (Linux/Debian, FPC and Lazarus built broadly with 
defaults). Binaries are in /usr/local/bin, FPC-specific stuff in 
/usr/local/lib/fpc/x.y.z where x.y.z is a version number. As a general 
point, I normally copy a clean fpcsrc into x.y.z for Lazarus's benefit 
but that still only leaves a single directory named for a version number.


Furthermore, it is not good practice to specify the ppcxxx compiler in 
the compiler path in the IDE options, especially when cross-compiling. 
The fpc binary must be specified instead, and that binary must be able 
to locate the ppcxxx folder.


For users who aren't cross-compiling, why is this a bad idea? (I ask for 
information, not because I'm arguing or criticising).


I usually add a couple of symlinks in /usr/local/bin e.g. ppcsparc - 
ppcsparc-2.6.2 and ppcsparc-2.6.2 - /usr/local/lib/fpc/2.6.2/ppcsparc. 
The fpc binary will be the one installed by the most recent build.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread patspiper

On 22/08/13 15:59, Mattias Gaertner wrote:

On Thu, 22 Aug 2013 15:39:47 +0300
patspiper patspi...@gmail.com wrote:


[...]
* If the FPCVER macro does not appear in any of the 2 paths
(absolute path to the fpc binary and relative path of ppc compiler)
then the fpc binary can be queried to set the FPCVER macro.

The FPCVer always comes from querying the compiler.


Right. But the proposal, if implemented, introduces one case where 
either the fpc binary or the ppcxxx compiler cannot be located because 
their paths depend on the FPCVER macro. In that case, the FPCVER macro 
needs to be manually set/selected in the IDE to allow the paths to 
resolve correctly. And as a sanity check, the FPC binary can then be 
queried for the version, and that version is compared with the 'forced' 
FPCVER macro.


If this is somehow convoluted (for this specific case), then instead of 
having the paths depend on FPCVER, they could depend on some user 
defined macro (e.g. USERFPCVER or XYZ) provided the user is able to set 
that macro in the IDE options via some selector.


Stephano

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread patspiper

On 22/08/13 16:23, Mark Morgan Lloyd wrote:

patspiper wrote:

When multiple FPC versions are used, the fpc binary and related 
utilities are usually located in fpc folder/fpc version/bin, and 
the compiler itself (ppcxxx) in fpc folder/fpc 
version/lib/fpc/fpc version. The folders could be different than 
these, but the point to note is that there are 2 folders that rely on 
the fpc version.


I don't see that here (Linux/Debian, FPC and Lazarus built broadly 
with defaults). Binaries are in /usr/local/bin, FPC-specific stuff in 
/usr/local/lib/fpc/x.y.z where x.y.z is a version number. As a general 
point, I normally copy a clean fpcsrc into x.y.z for Lazarus's benefit 
but that still only leaves a single directory named for a version number.


When you install using the distribution's packages or standard 
installers, you'll not be able to use more than one FPC version without 
considerable tweaking.


Furthermore, each version has its own fpc binary and tools in the 
usr/local/bin folder. They could be compatible or incompatible across 
versions. Thus it is better for each version to have its own set of folders.


Furthermore, it is not good practice to specify the ppcxxx compiler 
in the compiler path in the IDE options, especially when 
cross-compiling. The fpc binary must be specified instead, and that 
binary must be able to locate the ppcxxx folder.


For users who aren't cross-compiling, why is this a bad idea? (I ask 
for information, not because I'm arguing or criticising).


AFAIK, the fpc binary is supposed to be the gate to the compiler, and 
that's by design. You can get away by using the ppcxxx compiler directly 
if you're not cross compiling, but that's not guaranteed to not break in 
the future.


I usually add a couple of symlinks in /usr/local/bin e.g. ppcsparc - 
ppcsparc-2.6.2 and ppcsparc-2.6.2 - 
/usr/local/lib/fpc/2.6.2/ppcsparc. The fpc binary will be the one 
installed by the most recent build.


You are tweaking your system unnecessarily. Just make sure that both 
folder paths are exported and forget about any symlinks. That's by far 
more flexible, easily upgradeable, and less prone to errors.


Stephano


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread Henry Vermaak
On Thu, Aug 22, 2013 at 05:12:04PM +0300, patspiper wrote:
 On 22/08/13 16:23, Mark Morgan Lloyd wrote:
 I usually add a couple of symlinks in /usr/local/bin e.g. ppcsparc
 - ppcsparc-2.6.2 and ppcsparc-2.6.2 -
 /usr/local/lib/fpc/2.6.2/ppcsparc. The fpc binary will be the one
 installed by the most recent build.
 
 You are tweaking your system unnecessarily. Just make sure that both
 folder paths are exported and forget about any symlinks. That's by
 far more flexible, easily upgradeable, and less prone to errors.

Executing `fpc -Vversionstr` will call ppcbin-versionstr, so those
symlinks are actually quite useful if you want to use different compiler
versions.

Henry

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread patspiper

On 22/08/13 17:26, Henry Vermaak wrote:

On Thu, Aug 22, 2013 at 05:12:04PM +0300, patspiper wrote:

On 22/08/13 16:23, Mark Morgan Lloyd wrote:

I usually add a couple of symlinks in /usr/local/bin e.g. ppcsparc
- ppcsparc-2.6.2 and ppcsparc-2.6.2 -
/usr/local/lib/fpc/2.6.2/ppcsparc. The fpc binary will be the one
installed by the most recent build.

You are tweaking your system unnecessarily. Just make sure that both
folder paths are exported and forget about any symlinks. That's by
far more flexible, easily upgradeable, and less prone to errors.

Executing `fpc -Vversionstr` will call ppcbin-versionstr, so those
symlinks are actually quite useful if you want to use different compiler
versions.


That's one way for sure, but I'd rather keep my different installs 
separate and either export the right paths or use the Xp switch.


Btw, are the Xp and V switches documented? fpc does not list them and 
they cannot be found in 
http://www.freepascal.org/docs-html/user/userap1.html#x169-176000A


Stephano

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] SynEdit onMouseWell

2013-08-22 Thread Junior

Hello all.

How to implement onMouseWell in SynEdit ?

thanks

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread Mark Morgan Lloyd

patspiper wrote:

On 22/08/13 16:23, Mark Morgan Lloyd wrote:

patspiper wrote:

When multiple FPC versions are used, the fpc binary and related 
utilities are usually located in fpc folder/fpc version/bin, and 
the compiler itself (ppcxxx) in fpc folder/fpc 
version/lib/fpc/fpc version. The folders could be different than 
these, but the point to note is that there are 2 folders that rely on 
the fpc version.


I don't see that here (Linux/Debian, FPC and Lazarus built broadly 
with defaults). Binaries are in /usr/local/bin, FPC-specific stuff in 
/usr/local/lib/fpc/x.y.z where x.y.z is a version number. As a general 
point, I normally copy a clean fpcsrc into x.y.z for Lazarus's benefit 
but that still only leaves a single directory named for a version number.


When you install using the distribution's packages or standard 
installers, you'll not be able to use more than one FPC version without 
considerable tweaking.


I started off with a standard FPC binary installation circa 2.0, this 
put the utilities in /usr/local/bin ** . Since then I've generally built 
from source- in many cases I've had to since there wasn't an up-to-date 
binary- and I've never had to explicitly tell the build to use 
non-standard directories.


So if you're now saying that I'm doing something wrong by- in some way- 
overriding correct behaviour then I'm interested to know. Otherwise, 
what you're suggesting is a significant change to FPC build and I 
suggest you raise it with the compiler developers- it's not a Lazarus issue.


Furthermore, each version has its own fpc binary and tools in the 
usr/local/bin folder. They could be compatible or incompatible across 
versions. Thus it is better for each version to have its own set of 
folders.


I've never seen any suggestion that this breaks backwards compatibility, 
and if it does it should probably be raised as a bug- at least so that 
it can be documented properly. In any event, as long as fpc (etc.) knows 
what version of backend it's using then later versions should be able to 
emulate older ones: I don't think anybody'd be fool enough to try the 
other way round :-)


** On Linux. Solaris was lightly different, and of course Windows has 
its own best practice.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] VirtualTreeView question, horizontal jump

2013-08-22 Thread luiz americo pereira camara
2013/8/22 Jürgen Hestermann juergen.hesterm...@gmx.de


 Am 2013-08-21 18:40, schrieb luiz americo pereira camara:


 2013/8/21 Jürgen Hestermann juergen.hesterm...@gmx.de


 I now found that toDisableAutoscrollOnFocus (under AutoOptions) is
 changing between these both behaviours:

 If I set it to TRUE I can navigate as usual within the tree (without
 horizontal shifting) *but* when reaching the bottom border of the window
 the cursor disappears below it without shifting up the tree display. So I
 don't see my cursor anymore (which is totally useless).
 If I set it to FALSE the tree display is shifted up when reaching the
 bottom of the display *but* now it jumps to the right border every second
 down move (so that I don't see the tree anymore, only when shifting it back
 with Ctrl+Enter).


  Try to set toCenterScrollIntoView and toDisableAutoscrollOnFocus



 With
 toCenterScrollIntoView = True
 toDisableAutoscrollOnFocus = False
 the only change is, that the horizontal scroll is now centering (instead
 of moving to the right margin). This does not solve the problem because the
 tree is still out of sight.

 With
 toCenterScrollIntoView = True
 toDisableAutoscrollOnFocus = True
 I get the same as before (cursor moves below the bottom without shifting
 up the tree to make it visible).


Please create an example and add a bug report

Make sure you are using
http://sourceforge.net/p/lazarus-ccr/svn/2775/tree/components/virtualtreeview-new/branches/4.8/

Luiz




 --
 ___
 Lazarus mailing list
 Lazarus@lists.lazarus.freepascal.org
 http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] SynEdit onMouseWell

2013-08-22 Thread waldo kitty

On 8/22/2013 12:20, Junior wrote:

Hello all.

How to implement onMouseWell in SynEdit ?


do you mean onMouseWheel?



--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread patspiper

On 22/08/13 19:36, Mark Morgan Lloyd wrote:


I started off with a standard FPC binary installation circa 2.0, this 
put the utilities in /usr/local/bin ** . Since then I've generally 
built from source- in many cases I've had to since there wasn't an 
up-to-date binary- and I've never had to explicitly tell the build to 
use non-standard directories.


So if you're now saying that I'm doing something wrong by- in some 
way- overriding correct behaviour then I'm interested to know. 


I never said you were doing something wrong, although I am not sure what 
would happen if you uninstall your original FPC. Would the newer built 
from source versions still work? Moreover, if you install from trunk,  
then some of the unstable files will be used for all fpc versions. What 
I do is always build from source, and have several versions coexist 
without any possibility of conflict since the folders are completely 
separate.


Otherwise, what you're suggesting is a significant change to FPC build 
and I suggest you raise it with the compiler developers- it's not a 
Lazarus issue.


I use standard building (from source) for FPC as if it were a new 
install, but just make sure each gets its own folder by specifying the 
INSTALL_PREFIX accordingly. So there is nothing that needs to be raised 
with FPC devs.


On the other hand, my proposal relates to being able to change the fpc 
version in the Lazarus IDE on the fly.


Furthermore, each version has its own fpc binary and tools in the 
usr/local/bin folder. They could be compatible or incompatible across 
versions. Thus it is better for each version to have its own set of 
folders.


I've never seen any suggestion that this breaks backwards 
compatibility, and if it does it should probably be raised as a bug- 
at least so that it can be documented properly. In any event, as long 
as fpc (etc.) knows what version of backend it's using then later 
versions should be able to emulate older ones: I don't think anybody'd 
be fool enough to try the other way round :-)


Would you trust using the fpc binary (not ppcxxx) and associated 
utilities of trunk for your production apps?




** On Linux. Solaris was lightly different, and of course Windows has 
its own best practice.



:)

Stephano

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Proposal for changing fpc version on the fly in the IDE

2013-08-22 Thread Mark Morgan Lloyd

patspiper wrote:

On 22/08/13 19:36, Mark Morgan Lloyd wrote:




I've never seen any suggestion that this breaks backwards 
compatibility, and if it does it should probably be raised as a bug- 
at least so that it can be documented properly. In any event, as long 
as fpc (etc.) knows what version of backend it's using then later 
versions should be able to emulate older ones: I don't think anybody'd 
be fool enough to try the other way round :-)


Would you trust using the fpc binary (not ppcxxx) and associated 
utilities of trunk for your production apps?


I have more than one computer :-)

Frankly though, I'm not sure /what/ I'd trust for production apps. I'd 
be reluctant to use FPC _trunk and cautious about using _fixes, and I 
think I'd have to say the same about Lazarus... which obviously 
complicates things since in general there are always must have 
features and fixes only in the bleeding-edge revision.


But that takes us back to the original point: I usually set up Lazarus 
to invoke ppcXXX.x.y.z rather than the fpc wrapper, at which point I'm 
not sure which of the utilities in /usr/local/bin are at all relevant.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] SynEdit onMouseWell

2013-08-22 Thread Martin

On 22/08/2013 17:20, Junior wrote:

Hello all.

How to implement onMouseWell in SynEdit ?



looks like a bug

procedure TCustomSynEdit.WMMouseWheel(var Message: TLMMouseEvent);

only calls inherited, if there are no scrollbars.

--

just change it to always call inherited.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] SynEdit onMouseWell

2013-08-22 Thread Martin

On 22/08/2013 19:36, Martin wrote:

On 22/08/2013 17:20, Junior wrote:

Hello all.

How to implement onMouseWell in SynEdit ?



looks like a bug


try to change it to the below. (int synedit.pp


I have not tested it yet... will do later

procedure TCustomSynEdit.WMMouseWheel(var Message: TLMMouseEvent);
var
  lState: TShiftState;
  MousePos: TPoint;
begin
  if ((sfHorizScrollbarVisible in fStateFlags) and (Message.Y  
ClientHeight)) or
 ((sfVertScrollbarVisible in fStateFlags) and (Message.X  
ClientWidth))

   then begin
 inherited;
 exit;
   end;

  MousePos.X := Message.X;
  MousePos.Y := Message.Y;
  if DoMouseWheel(lState, Message.WheelDelta, MousePos) then begin
Message.Result := 1; // handled
exit;
  end;

  lState := Message.State - [ssCaps, ssNum, ssScroll]; // Remove 
unreliable states, see http://bugs.freepascal.org/view.php?id=20065


  FMouseClickDoPopUp := False;
  IncPaintLock;
  try
if Message.WheelDelta  0 then begin
  FindAndHandleMouseAction(mbXWheelUp, lState, Message.X, 
Message.Y, ccSingle, cdDown, Message.WheelDelta);

end
else begin
  // send megative delta
  FindAndHandleMouseAction(mbXWheelDown, lState, Message.X, 
Message.Y, ccSingle, cdDown, Message.WheelDelta);

end;
  finally
DecPaintLock;
  end;

  if FMouseClickDoPopUp and (PopupMenu  nil) then begin
PopupMenu.PopupComponent:=self;
PopupMenu.PopUp;
  end;

  Message.Result := 1 // handled, skip further handling by interface
end;


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Remote Registry...

2013-08-22 Thread Liyuan Garcia Caballero
Hi guys,

I need access to remote registry of Microsoft Window and get a data,
it's posible with Pascal?

Somebody can share one code?

Thank a lot

-- 
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Remote Registry...

2013-08-22 Thread waldo kitty

On 8/22/2013 16:46, Liyuan Garcia Caballero wrote:

Hi guys,

I need access to remote registry of Microsoft Window and get a data,
it's posible with Pascal?


of course it is possible... the question is how are you expecting to be able to 
perform this task...



Somebody can share one code?


no but possibly an idea or two... write a remote server that accesses the 
registry for whatever you want... then talk to it via a local client...


in reality, it should be no different than using ssh or rdp into the remote host 
and starting the remote machine's regedit or similar... capturing that 
information and feeding it back across the link...


NOTE: i use the term server above because you are wanting to connect to a 
remote system and pull data from it... in the most general terms, that makes it 
a server... the connecting package on the local side is then considered a client...



--
NOTE: No off-list assistance is given without prior approval.
  Please keep mailing list traffic on the list unless
  private contact is specifically requested and granted.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] SynEdit onMouseWell

2013-08-22 Thread Junior
The bars work, I wanted to implement the event because they appear in 
the Object Inspector.



Em 22-08-2013 15:36, Martin escreveu:

On 22/08/2013 17:20, Junior wrote:

Hello all.

How to implement onMouseWell in SynEdit ?



looks like a bug

procedure TCustomSynEdit.WMMouseWheel(var Message: TLMMouseEvent);

only calls inherited, if there are no scrollbars.

--

just change it to always call inherited.


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Remote Registry...

2013-08-22 Thread Flávio Etrusco
On Thu, Aug 22, 2013 at 9:55 PM, waldo kitty wkitt...@windstream.net wrote:
 On 8/22/2013 16:46, Liyuan Garcia Caballero wrote:

 Hi guys,

 I need access to remote registry of Microsoft Window and get a data,
 it's posible with Pascal?


 of course it is possible... the question is how are you expecting to be able
 to perform this task...

 Somebody can share one code?


 no but possibly an idea or two... write a remote server that accesses the
 registry for whatever you want... then talk to it via a local client...

 in reality, it should be no different than using ssh or rdp into the remote
 host and starting the remote machine's regedit or similar... capturing that
 information and feeding it back across the link...

 NOTE: i use the term server above because you are wanting to connect to a
 remote system and pull data from it... in the most general terms, that makes
 it a server... the connecting package on the local side is then considered a
 client...



I guess he means this:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724840%28v=vs.85%29.aspx

-Flávio

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus