ANNOUNCE: Win32::VisualStyles V0.02

2009-07-14 Thread Robert May
All,

Back in May there was a discussion on this list about Visual Styles
(aka XP Styles).  Up to now we have been coping with applying style by
copying a manifest file into the perl bin directory.  This is
unsatisfactory for a number of reasons.

(1) It is difficult to make this work when packing executables (usinfg
PAR for example)
(2) It is difficult to test both with and without visual styles -
especially now that Vista may cache the manifest
(3) It is a continual problem with keeping newcomers informed with how
to do this.

I have created a module, Win32::VisualStyles, that allows you do apply
a "V6 Common Control Activation Context" (to use some of the buzz
words) at run-time.  In particular this means that it is easy to pack
an executable - it's just another dependency - and it's easy to test
with and without visual styles simply by adding
"-MWin32::VisualStyles" to the commandline.

V0.02 is currently propagating to CPAN.   The only differences from
V0.01 are to cope better with the build process - there is no internal
difference to the code that runs.

You can download the source from CPAN and build it:
http://search.cpan.org/~robertmay/Win32-VisualStyles-0.01/
or it should be available for 5.8 and 5.10 from ActiveState's new PPM
repository.

Full documentation included with the module, but let me know if you
need any further help.

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: Producing a notification window over icon region

2008-11-09 Thread Robert May
2008/10/15 Andrew Black <[EMAIL PROTECTED]>:
> I would like to produce a noticification window - in the same way as
> programs like Outlook do when new mail comes in. Is this possible with
> Perl or should I be looking for another tool.
>
> My first attempt is
>  perl -MWin32 -e "sleep(10); Win32::MsgBox('take a break')"
> but this produces a msgbox hidden under the window you are currently
> looking at
>
> Afraid I am not a great windows programmer..

Try this as a starting point:
http://www.mail-archive.com/[EMAIL PROTECTED]/msg05020.html

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: rsync for Win32

2008-03-10 Thread Robert May
On 10/03/2008, Sisyphus <[EMAIL PROTECTED]> wrote:
>  But, afaict from 'perldoc perlhack', if I want to stay in touch with the
>  current perl developments I need to be able to download the latest source by
>  running:
>
>  rsync -avz rsync://public.activestate.com/perl-current/
>
>  Only problem is .. I'm having trouble finding a Windows version of 'rsync'
>  that's capable of succesfully running that command. Any advice ?

I use the cwRsync distribution (www.itefix.no/cwrsync/),  which I
believe is just a packaging of the cygwin rsync.  I comes with a
couple of additional utilities, including a good framework batch file
(which includes setting CYGWIN=nontsec in the environment).  I've
successfully pulled the perl sources using it on Win98, win2K and
WinXP.

Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: Registerhotkey() Using Win32 API and GUI

2007-11-10 Thread Robert May
On 24/09/2007, Veli-Pekka Tätilä <[EMAIL PROTECTED]> wrote:
> Robert May wrote:
>>> Has anyone gotten the system wide RegisterHotkey and  UnrEgister hotkey
>>> Win32 functions working with Win32::GUI and Win32::API?
>> See here:
>> http://www.mail-archive.com/[EMAIL PROTECTED]/msg05248.html
>
> Now the only big question is what was the difference to my code?
> the only major differences I can see is at a gllance, with a screen
> reader, are as follows:

[snip]

> Last but not least, you use a nice constant like:
>
>  VK_A
>
>  Where I use the ASCII value
>
> ord 'q'
>
> since I read in Petzold that the virtual key codes for letters are the
> ASCII codes for those letters. Does the case matter normally or since
> shift is down?
>
> ord 'Q'; # is obviously quite different from the lowercase q.

This is the difference.  The virtual key code for a key does not
change when the shift key is down.  It's the combination of seeing the
virtual key code for the shift key and a letter key that allows
TranslateMessage convert virtual key codes in WM_KEYDOWN/WM_KEYUP
messages to the WM_CHAR messages containing the 'character' to be
used.

The virtual key codes for the letter keys are (on an English keyboard)
the ASCII codes for the UPPER case letters.

> Here are the significant snippets from my original:

[snip]

> RegisterHotKey
> (
>$win->{'-handle'}, HOTKEY_ID,
>MOD_SHIFT | MOD_CONTROL,
>ord 'q'
> ) or die "HOtkey registration failed: $^E\n";

I think if you use ord 'Q' rather than ord 'q' your code would work (untested).

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: Registerhotkey() Using Win32 API and GUI

2007-09-23 Thread Robert May
On 23/09/2007, Veli-Pekka Tätilä <[EMAIL PROTECTED]> wrote:
> Hi,
> Has anyone gotten the system wide RegisterHotkey and  UnrEgister hotkey
> Win32 functions working with Win32::GUI and Win32::API?


See here:

http://www.mail-archive.com/[EMAIL PROTECTED]/msg05248.html

Regards,
Rob.


> I just tried but
> my event handler never gets called. Any help as to why this is would be
> appreciated. I hope it's some quirk in my own code I just haven't
> noticed.
>
> My understanding is this:
> YOu call RegisterHotkey with a window handle via which virtual keycode
> messages should be posted, a unique ID for that window handle to
> distinguish multiple key handlers, a list of modifier keys that need to
> be down and finally a virtual keycode to match for the posting to happen
> in the first place. UnregisterHotkey is much the same except that only
> the first two params are needed.
>
> The first problem I had was having to manually dig up constants like
> MOD_WIN from winuser.h (VC2005 Express), it appears to be missing in the
> listing in Win32::GUI::Constant. The second thing was that I couldn't
> find a method of retrieving the Win32 handle from a Win32::GUI::Window
> without having to look at its internals. Thirdly and finally, my event
> handler is never called. This might either be some glich in importing
> the functions, registering the hotkey handlers or adding event handling
> hooks to Win32::GUI, which I've never done before.
>
> Here's the whole code, for your information. What it does is create a
> dummy, currently visible window, register a hotkey handler for
> shift+ctrl+q, and if that handler is triggered, then prints out the
> params in the console:
>
>
> use strict; use warnings;
>
> use constant {MOD_CONTROL => 2, MOD_SHIFT => 4}; # HOtkey modifiers from
> winuser.h
>
> use constant qw|HOTKEY_ID 32|; # Almost any int will do.
>
> use Win32::GUI qw||; use Win32::GUI::Constants qw|WM_HOTKEY|;
> use Win32::API;
>
> # Import the funcs use to register system wide hotkey notifications.
> Win32::API->Import
> (
>user32 => # target window, some id, modifiers, virtual key code.
>'BOOL RegisterHotKey(HWND w, int id, UINT mod, UINT vk)'
> );
>
> Win32::API->Import
> (
>user32 =>
>'BOOL UnregisterHotKey(HWND w, int id)'
> );
>
> my $win = Win32::GUI::Window->new
> (
>-name => 'main', -text => 'main', -size => [320, 240],
>-onTerminate => \&quit
> );
> $win->Show();
>
>
> # Process the virtual key codes sent to us.
> $win->Hook(WM_HOTKEY, \&key);
>
> # Register hotkey, for alphanumerics ASCIi code is virtual key code.
> RegisterHotKey
> (
>$win->{'-handle'}, HOTKEY_ID,
>MOD_SHIFT | MOD_CONTROL,
>ord 'q'
> ) or die "HOtkey registration failed: $^E\n";
>
> Win32::GUI::Dialog();
>
> sub quit
> { # Unregister hotkey handler and quit.
>UnregisterHotKey($win->{'-handle'}, HOTKEY_ID) or die "Unregistration
> failed: $^E\n";
>-1;
> } # sub
>
> sub key
> { # Just a debug print of the key postedd to us.
>print "Key with params: @_\n";
>1
> } # sub
>
> Finally, a cool solution to the hotkey problem and many other uses, in
> which hooks are desired would be this:
>
> Create a DLL in C which does the actual hooking and is somewhat
> customizable in terms of what it posts back to its user i.e. functions
> to specify how to match params and which window receives the message.
>
> Post the desired data to a window registered with the DLL using
> WM_COPYMESSAGE.
> Then use Win32::API to wrap that DLL and have a possibly invisible
> Win32::GUI::Window receive the things that were hooked.
>
> Even better would be a Perl module which encapsulates having to create
> the window and wrap the DLL.
>
> There are plenty of code examples for hooks in the code project.
> Googling for Win32 hooks produces some nice links, for instance. I've
> used hooks a bit in screen reading but the code is way too ugly to be
> published, . And for screen reading, Win32::ActAcc is infinitely
> better.
>
>
> --
> With kind regards Veli-Pekka Tätilä ([EMAIL PROTECTED])
> Accessibility, game music, synthesizers and programming:
> http://www.student.oulu.fi/~vtatila
> ___
> Perl-Win32-Users mailing list
> Perl-Win32-Users@listserv.ActiveState.com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>


-- 
Please update your address book with my new email address:
[EMAIL PROTECTED]
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: Perl Help - Addlabel

2007-08-26 Thread Robert May
On 24/08/07, TR Thomas Rundo (8373) <[EMAIL PROTECTED]> wrote:
> The problem I am having is that as I am adding (AddLabel) labels onto the
> window unless I have a messagebox popup to stop the app and wait for user
> input, you won't see the Add Labels. I have a messagebox at the very end
> that will show them all, but I need to show them as the Perl script
> proceeds, basically like a status. What am I doing wrong?

You don't say so, but I assume that you are talking about the
AddLabel() method from the Win32::GUI package?

If so, then try putting a
  Win32::GUI::DoEvent();
call after each AddLabel() call.

There are probably better ways of achieving what you want to do, but
as you don't give any further details, or any sample code, it's
difficult to advise.

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [perl-win32] Re: Win32::Printer - Multiple Line Output

2006-06-08 Thread Robert May

$Bill Luebkert wrote:

Timothy Johnson wrote:


Maybe try /r/f instead of /r/n?


I'd just use \n which should be output as \r\n if you haven't use binmode.


I doubt it.   The Win32::Printer::Write() method calls the Win32 API 
directly (TextOut() OR DrawText()).  There's no PerlIO layers anywhere 
near this output.


Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [perl-win32] RE: Win32::Printer - Multiple Line Output

2006-06-08 Thread Robert May
Try using 'Draw Mode' (DM) rather than 'String Mode' (SM) - that means 
using the
  $height = $dc->Write($text, $x, $y, $width, $height, [$format, 
[$tab_stop]]);

form of the Write() call.

Rob.

Jack D. wrote:

-Original Message-
From: Timothy Johnson [mailto:[EMAIL PROTECTED] 
Sent: June 8, 2006 4:31 PM

To: Jack D.; perl-win32-users@listserv.ActiveState.com
Subject: RE: Win32::Printer - Multiple Line Output


Maybe try /r/f instead of /r/n?



I tried "\r\f" ( backslashes:-) ) with the same erroneous one-line result.
Any other ideas? So far I'm down 12 pieces of paper trying to figure this
out. In desperation, I have sent a direct e-mail to the author. I'll post a
follow-up if I get a reply. In the meantime - I'm open to any other
solutions.



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On 
Behalf Of Jack D.

Sent: Thursday, June 08, 2006 2:55 PM
To: perl-win32-users@listserv.ActiveState.com
Subject: Win32::Printer - Multiple Line Output

I'm trying to print multiple lines to Win32::Printer 
*without* using a temporary file. Everytime it mushes the 
data into one line with little boxes being printed where the 
carriage returns are. Can anyone help me out here?


##Sample Code##
use Win32::Printer;

my @array = keys %ENV;

printAlpha();

sub printAlpha {
  my $dc = new Win32::Printer(  papersize   => A4,
description => 'Test Print',
unit=> 'mm') or 
die "Failed

to
create object";
  if ($dc) {
 my $textToPrint = join("\r\n",@array);
 my $font = $dc->Font('Times New Roman', 12);
 $dc->Font($font);
 $dc->Color(0, 0, 0);
 $dc->Write($textToPrint, 10, 10);
   $dc->Close;
  }
}
__END__


Jack
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs



___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs



___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [perl-win32] Re: The Command Prompt encoding

2006-05-26 Thread Robert May

> Benct Philip Jonsson wrote:
>> Is the encoding used in the Windows Command Prompt
>> "cp850"?  I need to know that to use the Encode
>> module to convert in order to have perl handle
>> accented characters right.

Reinhard Pagitsch replied:


Try chcp in a DOS BOX, this shows you the active code page in command
prompt.
(on my XP it shows me 850 which is cp850)



From the command prompt of my win98 box:

C:\WINDOWS>chcp
Active code page: 850

C:\WINDOWS>mode con cp

Active code page for device CON is 850
Prepared code pages:
  code page 850

MODE status code page function completed

You can get this info programatically in perl using Win32::Console, 
which you should do, as you have no guarantee that any particular 
console is actually using cp850.


C:\WINDOWS>perl -MWin32::Console -e "print Win32::Console::OutputCP()"
850

Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [perl-win32] Re: Tk beep on Win2K?

2006-05-01 Thread Robert May

Lyle Kopnicky wrote:

$Bill Luebkert wrote:


[snipped stuff about using an ICA session and not getting beeps]



Apparently what you need to do is get the PC or whatever you are logging
in from to generate the beep rather than the MB speaker.
  

I can do that, by typing ^G in the console and hitting Enter.

But I can't do it from a Perl program, running via wperl.


I'm not familiar with Tk and don't know what Tk's beep() uses as it's 
underlying Win32 API call, but the remarks section for the MessageBeep() 
call at MSDN says:


"Terminal Services:  To send a beep to a client, use the Beep function. 
The Beep function is redirected to the client, whereas MessageBeep is 
not, except on Windows NT 4.0 where MessageBeep(-1) calls Beep."


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/messagebeep.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/beep.asp

I also don't know if ICA sessions are the same a Terminal Services ones, 
but if you have Win32::API, do you get any noises from either of the 
following snippets?


#!perl -w
use strict;
use warnings;
use Win32::API();

Win32::API->Import("User32", "MessageBeep", "l", "V");
MessageBeep(-1);
__END__

#!perl -w
use strict;
use warnings;
use Win32::API();

Win32::API->Import("Kernel32", "Beep", "LL", "L");
Beep(750, 300);
__END__

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: Possible DynaLoader or MinGW bug?

2006-03-24 Thread Robert May

Sisyphus wrote:
- Original Message - 
From: "Robert May"

.
.


A series of tests:
Drop  - ok
DropF - fails
AropF - fails
DropFi- fails
DropFile  - fails
DropFiles - fails
DropX - fails
DropFx- fails
DropFilesx- fails
xDropFiles- ok
Win32::DropF  - fails
Win32::xDropF - ok

Appears to indicate that any module whose last component name starts
with 'DropF' fails.


Except that you've stated that 'AropF' fails and 'DropX' fails. Or did you
mean to write that they are ok ?


Careless on my part.  AropF and DropX were OK.


Off to find a mingw forum/list.


You'll find MinGW mailing list subscription details at www.mingw.org
(somewhere). But it's hard to expect helpful answers from them because of
all the perl stuff that's involved in your test case. Better if you could
construct a test case that was pure C. But give it a try anyway (even if you
can't construct a pure C test case) - 'DropF' might mean something to
someone there.

You could just try updating your gcc-3.4.4 and also updating your
mingw32-w32api (assuming your current version is not the latest). My feeling
is that even if you do get an explanation (and I'm sceptical about that),
the solution will be to simply update anyway.


We've crossed messages - after reading the posting guidelines I upgraded 
to the latest 'candidate' releases (I was on the leading stable 
releases), and my problems went away.


Thanks again,
Rob.(M)
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: Possible DynaLoader or MinGW bug?

2006-03-24 Thread Robert May

Robert May wrote:

[possible bug with either mingw or DynaLoader under win98, narrowed down 
to a mingw bug]


Now I just need to find out what the difference is between the 2 dll's. 
MS's Dependency walker (Depends.exe, comes with the platform SDK)
loads both fine, and doesn't reveal anything very useful, but a binary 
diff of the 2 files (which are, incidently, exactly the same size) shows 
areas of significant difference.  I have no idea if this is expected or 
not, but my gut feeling is that it is suspicious.


Off to find a mingw forum/list.


As a final follow-up: Before posting a bug report to the MinGW team I 
downloaded the candidate release for gcc 3.4.5, and the problem goes 
away.  I should have tried this earlier :-)


For clarification my MinGW install is now:
gcc-core 3.4.5
binutils 2.16.91
mingw-runtime 3.9
w32api 3.6

Thanks for listening.

Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: Possible DynaLoader or MinGW bug?

2006-03-24 Thread Robert May

Sisyphus wrote:
- Original Message - 
From: "Robert May"

.
.


Steps to invoke problem:
(1) run:  h2xs -A -n SomeModule
(2) cd into the created SomeModule directory
(3) run the incantation:
   perl -MConfig_m Makefile.PL
   nmake
   nmake test

Generally this works fine, and the (one) test passes, but if
'SomeModule' is 'DropFile' or 'DropFiles' I get the following test
result (re-formatted for readability:

C:\Perl\5.8.7\bin\perl.exe "-MExtUtils::Command::MM" "-e"
  "test_harness(0, 'blib\lib', 'blib\arch')" t\DropFiles.t
# Failed test (t\DropFiles.t at line 9)
# Tried to use 'DropFiles'.
t\DropFilesNOK 1#
Error:  Can't load


'C:\WINDOWS\Desktop\xs_test\DropF\DropFiles\blib\arch/auto/DropFiles/DropFil
es.dll'


for module DropFiles: load_file:The operation completed successfully at
C:/Perl/5.8.7/lib/DynaLoader.pm line 230.

The problem disappears if I compile with
VC6, making me think in more likely to be a MinGW issue, but I'd like to
be able to build with MinGW without choosing a different module name.



Are you using the same 'nmake' in both instances ? (If so we can rule
'nmake' out as the culprit.)


Yes (double checked).


I can't reproduce the problem - though I haven't got exactly the same
environment - Windows2000, using 'dmake', gcc-3.4.4, AS build 810.  However,
I can't see that any of those differences account for the strange behaviour
you're getting. (My immediate thoughts were that you must be doing something
silly - though, of course, that's not necessarily so - and I can't for the
life of me think of what that "silliness" could possibly be :-)


I've now tried it one win2k, and can't reproduce the problem there
either (with an almost identical setup).

I was hoping that I was doing something silly, and that posting to the
world would reveal what it was.  I've spent a long time on this one now,
but I do seem to be getting somewhere.


I'd create 2 separate directories for the creation of DropFiles - one for
creating with MinGW/EU::FC, and one for creating with VC6. Then compare the
2 generated DropFiles.c. (Maybe also compare some of the other files - eg
the Makefile that was generated in both cases.)
Somewhere there has to be a difference that matters.


Nice idea.  Source is identical.  Makefiles, obviously, aren't
identical, but to the best of my knowledge the differences can be
justified and won't cause any issues.


What happens if you name the module (successively) DropFile, DropFil, Drop,
, Dr, D ? At what point does the problem go away ?


A series of tests:
Drop  - ok
DropF - fails
AropF - fails
DropFi- fails
DropFile  - fails
DropFiles - fails
DropX - fails
DropFx- fails
DropFilesx- fails
xDropFiles- ok
Win32::DropF  - fails
Win32::xDropF - ok

Appears to indicate that any module whose last component name starts
with 'DropF' fails.  Interesting, but doesn't get me much closer to a
solution.

So I set about with the perl source code, and now understand a large
amount of the internals of DynaLoader.  Looking at where the failure
appeared to be happening, and tracing throw the perl source
(win32/win32.c and win32/dl_win32.xs mainly) the failure appeared to be
comming from a LoadLibrary() call.

So I took 2 dlls produced by the above process, both compiled and linked
in the same way with gcc; one that works (DropX.dll) and one that
doesn't (DropF.dll), and wrote a simple perl script to attempt to
load them using LoadLibrary() directly (using Win32::LoadLibrary()).
DropX.dll loads fine;  DropFiles.dll fails (returns '0' as a handle),
but the LoadLibrary call does not SetLastError, resulting in any call to
GetLastError returning 0;  0 is interpreted as NO_ERROR, hence the
mis-leading error message from DynaLoader.

So this appears to be a mingw or windows api issue, and not a problem
with DynaLoader.

Now I just need to find out what the difference is between the 2 dll's. 
 MS's Dependency walker (Depends.exe, comes with the platform SDK)
loads both fine, and doesn't reveal anything very useful, but a binary 
diff of the 2 files (which are, incidently, exactly the same size) shows 
areas of significant difference.  I have no idea if this is expected or 
not, but my gut feeling is that it is suspicious.


Off to find a mingw forum/list.

Thanks for your help.

Regards,
Rob(M).
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Possible DynaLoader or MinGW bug?

2006-03-23 Thread Robert May
I've run into an 'interesting' issue when building some of my own XS 
extensions - I've narrowed the issue somewhat, but am about at the limit 
of my knowledge (or possibly already beyond it).  Can anyone else 
duplicate the problem?


My setup:
Win98
Perl 5.8.7 Activestate build 813
MingW (gcc 2.3.2, win32api 3.6, runtime 3.9)
ExtUtils::FakeConfig V0.06

Steps to invoke problem:
(1) run:  h2xs -A -n SomeModule
(2) cd into the created SomeModule directory
(3) run the incantation:
   perl -MConfig_m Makefile.PL
   nmake
   nmake test

Generally this works fine, and the (one) test passes, but if 
'SomeModule' is 'DropFile' or 'DropFiles' I get the following test 
result (re-formatted for readability:


C:\Perl\5.8.7\bin\perl.exe "-MExtUtils::Command::MM" "-e"
  "test_harness(0, 'blib\lib', 'blib\arch')" t\DropFiles.t
# Failed test (t\DropFiles.t at line 9)
# Tried to use 'DropFiles'.
t\DropFilesNOK 1#
Error:  Can't load 
'C:\WINDOWS\Desktop\xs_test\DropF\DropFiles\blib\arch/auto/DropFiles/DropFiles.dll'
for module DropFiles: load_file:The operation completed successfully at 
C:/Perl/5.8.7/lib/DynaLoader.pm line 230.


#  at (eval 3) line 2
# Compilation failed in require at (eval 3) line 2.
# BEGIN failed--compilation aborted at t\DropFiles.t line 9.
# Looks like you failed 1 test of 1.
t\DropFilesdubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
Failed 1/1 tests, 0.00% okay
Failed Test   Stat Wstat Total Fail  Failed  List of Failed
---
t\DropFiles.t1   256 11 100.00%  1
Failed 1/1 test scripts, 0.00% okay. 1/1 subtests failed, 0.00% okay.


It's an odd error message!  The problem disappears if I compile with 
VC6, making me think in more likely to be a MinGW issue, but I'd like to 
be able to build with MinGW without choosing a different module name.


Any suggestions on where to go next appreciated.  Thanks for your time.

Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] RE: Perl Bug (again)

2006-02-18 Thread Robert May
[snip ... why doesn't "my $i if 0;" generate a warning under "use 
warnings;"]


Glenn Linderman wrote:
Partly because the behaviour was probably implemented unintentionally 
(hence no original warning or error), and has been treated (once 
discovered by those nefarious end-user types) as a feature in some code. 
 Adding a warning then makes existing code noisier than it was, so the 
feature can only be added to "blead" not "maint" (if you are familiar 
with Perl development terminology).  I _think_ I recall seeing comments 
on p5p that there is now a warning for that construct in blead?  At 
least it was discussed.  Try downloading Perl 5.9.x and see, if you 
really want to be sure.


Anyway, it is currently a "known gotcha"... there is no other 
programming language that I am aware of that even allows such syntax, to 
"conditionally declare" variables, so it is surprising that you even 
attempted such... which has kept this from being a bigger problem than 
it would be otherwise.


A (deprecated) warning was added in 5.9.1 according to this p5p summary:
http://www.nntp.perl.org/group/perl.perl5.summary/98


  Rafael noted also that the regression tests produce lots of warnings
  "Deprecated use of my() in conditional", referring to the dubious and
  now deprecated construct

  my $foo = $bar if $quux;

  So the warning is maybe too noisy (although it indicates a bug waiting
  to happen.) Rafael and Dave Mitchell proposed some alternatives, but
  the current form of the warning is likely to go into 5.9.1, even if
  it's made lighter afterwards.


I has been discussed on p5p more recently (in the last few months) but I 
can't quickly turn p a reference.


Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] RE: Perl Bug (again)

2006-02-17 Thread Robert May

John Deighan wrote:

At 01:06 PM 2/17/2006, Joe Discenza wrote:

Fascinating! You have one misconception right off: The "my" line is 
never executed (not even to make the new variables) if $L is false.



OK, then, consider this program. Notice that there's a global $i which 
has the value 5. Now, when func() is called, if the "my $i" did not 
create a new lexically scoped variable, then the print line would print 
"i = 5". But it doesn't - obviously because the lexical variable was 
created, but is undefined because $b is false.


our $i = 5;
our $b = 0;

func();

sub func {

my $i = 3 if $b;
print("i = $i\n");
}


my is a compile time directive that creates the lexically scoped $i, 
giving is scope from its definition until the end of the enclosing block.


Assignment is a run time operation.  In your example the modified 
assignment doesn't get executed, so the value of $i is *not defined*, in 
current perl's it happens to take the 'undef' value.


In the original OPs question he had the modified assignment inside a 
loop. persyn says this at the end of the 'Statement modifiers' section:



NOTE: The behaviour of a my statement modified with a statement modifier 
conditional or loop construct (e.g. my $x if ...) is undefined. The 
value of the my variable may be undef, any previously assigned value, or 
possibly anything else. Don't rely on it. Future versions of perl might 
do something different from the version of perl you try it out on. Here 
be dragons.



So, ensure you separate the my $i and the modified assignment to ensure 
you know what's happening:

  my $i;
  $i = 3 if $b;

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Ok with perl 5.8.3 on win2000, nok with perl 5.8.7 on winXP

2006-02-14 Thread Robert May

I see that Glenn L just beat me to a reply, but here's my take.

DonKiShoot wrote:
This piece of code works fine on windows 2000 with perl 5.8.3.809 but 
not on windows xp with perl 5.8.7.815 and i don't find why.


So long as you are using the same version of Win32::GUI in both cases, 
you should expect the same behaviour.  As Glenn pointed out there was a 
bug introduced to the TrackPopupMenu() method that stopped the 
3-argument call working correctly - it existed in Win32:GUI v1.02 only, 
and so long as you have warnings turned on, it generates a warning, so 
it doesn't look like this is your problem. (You do have warnings turned on?)


This little code is for having a little menu appear when right click on 
tray icon.


In the future, short but *COMPLETE* examples are best, as then we can 
run your code and see if we get the same issues without having to guess 
what the rest of your script looks like.


In the first case : when i click on "About" in the little menu, i've got 
the popup About (Great !!!).
In the second case : i got the little menu but nothing appear when i 
click on "About" and no warning message who said " About clicked ..."

It seems that with perl 5.8.7.815 TrackPopupMenu doesn't want to work.


I think it more likely that something has changed with the perl garbage 
collection between 5.8.3 and 5.8.7 - let me try to explain.



sub icoTrayicon_RightClick {
  my ($x,$y) = Win32::GUI::GetCursorPos();
  warn ("\n Tray icon right clicked ...");
  my $icoMenu = Win32::GUI::MakeMenu(
 "tray"   => "tray",
 " > -" => 0,
 " > &Config" => "Config",
 " > &About"  => "About",
 " > E&xit"   => "Exit",
 );
  warn ("\n Start popup menu tracking ...");
  $winMaster->TrackPopupMenu($icoMenu->{tray},$x,$y);
  warn ("\n Tray icon right clicked out ...");
  return 1;
}


1. When you call TrackPopupMenu() like this and click on a menu item, 
TrakPopupMenu() posts a message to the windows message queue depending 
on which menu item is clicked.


2. When this subroutine exits, $icoMenu goes out of scope, and hence the 
menu object that it refers to gets destroyed - when it gets destroyed is 
not defined, but my experience with the current Perls (5.8.6, 5.8.7) is 
that that happens immediately.


3. After your subroutine has exited, control returns to 
Win32::GUI::Dialog(), which pulls the message posted in (1) from the 
message queue, but then can't find the menu object that the message 
refers to (as it already got destroyed).


The easiest solution is to pull the code
  my $icoMenu = Win32::GUI::MakeMenu( ... );
out of the subroutine, and put it somewhere near the start of your 
script in file(global) scope - this keeps it in scope at all times, and 
prevents the menu object being destroyed until your script exits.


[As an aside, this also works around another problem where calling 
Win32::GUI::MakeMenu repeatedly (as you do) leaks memory]


I may be wildly off the mark, as you've not really posted enough code 
for me to see what else might be going on, but I hope this helps.


Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Win32::GUI: How do I use a splitter (window "frames")

2006-02-07 Thread Robert May
I posted this example to the list not that long ago.  I've since 
corrected it so that it doesn't leave ugly lines all over the place.


Regards,
Rob.

#!perl -w
use strict;
use warnings;

use Win32::GUI;

my $mw = Win32::GUI::Window->new(
-title => "Splitter Test",
-pos   => [100,100],
-size  => [500,400],
-onResize => \&main_resize,
);

$mw->AddTextfield(
-name => "TF1",
-multiline => 1,
-width => 200,
);

$mw->AddSplitter(
-name => "SP",
-left => 200,
-width => 5,
-onRelease => \&do_splitter,
);

$mw->AddTextfield(
-name => "TF2",
-multiline => 1,
-left => 200 + $mw->SP->Width(),
);

$mw->Show();
Win32::GUI::Dialog();
exit(0);

# NEM splitter event gets 2 parameters.  The first (as always)
# is the window object the event came from - in this case the
# splitter window; The second depends on the splitter orientation:
# if horzontal it is the top coordinate; if vertical it is
# the left coordinate. (coordinates relative to the parent's
# client area)
# The splitter window is moved by the splitter object, so you only
# have to re-position your other windows
sub do_splitter
{
my ($splitter, $coord) = @_;

$mw->TF1->Width($coord);
$mw->TF2->Left($coord+$mw->SP->Width());
# Swap these next 2 lines to see the 'bug' come back
#$mw->TF2->Width($mw->ScaleWidth()-$mw->SP->Width());
$mw->TF2->Width($mw->ScaleWidth()-$mw->SP->Width()-$coord);
}

sub main_resize
{
my $self = shift;

$self->TF1->Height($self->ScaleHeight());
$self->SP->Height($self->ScaleHeight());

$self->TF2->Resize($self->ScaleWidth()-$self->TF1->Width()-$self->SP->Width(),
$self->ScaleHeight());
}
__END__

A. Pollock wrote:

I built a simple Win32::GUI application which connects to an
Access database containing hierarchical records and builds
a tree view out of them. Now I would like to extend the
application so that clicking on a record in the tree in the
right-hand pane will display the record details in a left
hand pane. Try as I might, I can nowhere find any example
program that uses a moveable splitter to separate a Window
into panes or "frames."

Can anybody give me a simple example showing how to set up
frames in Win32:GUI and put something in them? I'm an idiot
without examples to guide me.

Thanks!


___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] using MS Excel grid

2006-01-01 Thread Robert May

Octavian Rasnita wrote:

Is it possible to insert an MS Excel grid control in a Win32::GUI
application?

I know that there is Win32::GUI::Grid control that can be used, but it is
not so accessible for screen readers..


You might investigate whether it is possible using Win32::GUI::AxWindow 
- it should be able to host any ActiveX capable application.


Get it from:
http://rocherl.club.fr/Win32GUI.html#AxWindow

Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: How to disable a control without changing appearance

2005-12-18 Thread Robert May

Lynn. Rickards wrote:

Chris Rogers wrote:

I'm looking for a way to disable a control (widget) without changing 
it's appearance.  I would like to be able to do this for any type of 
control.  Any help would be greatly appreciated.
 
Thanks,

Chris


Tk? Win32? Either way, what comes to mind instead of disabling,
is configuring/binding to an empty sub.


For Win32::GUI use
  $control->Enable(0);

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] MDI Windows and Icons

2005-12-16 Thread Robert May

Chris Rogers wrote:
I have been trying to set an icon for an MDIFrame.  I also need to set 
different icons for the Child windows.  I am using Win32::GUI 1.03 with 
Activestate 5.8.7 along with Komodo and Perlapp.  In the past, I could 
never get the "-icon=>$icon" to work


There is, as far as I can see from the documentation and the source code 
no such '-icon' option for windows.


so I had to use Win32::GUI::Class 
to set the window icon and that seemed to work just fine.


That's one way to do it.  $window->SetIcon($icon) is another (and in 
this case probably simpler).


[snip]


*my $icon = new Win32::GUI::Icon("c:\\JS1G.ICO");
my $WC = new Win32::GUI::Class(-name => "mywindowclass", -icon =>
$icon,);*


You need to subclass the relevant widget class.  This would work:

my $WC = WIn32::GUI::Class->new(
  -name => "MyMDIFrameSubClass",
  -icon => $icon
  -widget => 'MDIFrame',
);

[ snip ]

In short: How do I set one icon for an MDIFrame and different icons for 
MDIChild windows??


Here's the 2 ways to do it:

#!perl -w
use strict;
use warnings;

use Win32::GUI;

my $icon = new Win32::GUI::Icon("c:\\JS1G.ICO");

my $mw = Win32::GUI::MDIFrame->new(
-text   => 'Main Window',
-width  => 1024,
-height => 768,
) or die "frame creation failed: [EMAIL PROTECTED]";
$mw->SetIcon($icon);

my $mc = $mw->AddMDIClient(
-firstchild => 100,
) or die "client creation failed: [EMAIL PROTECTED]";

my $cw = $mc->AddMDIChild(
-name => 'window1',
-text => 'Window1',
-pos  => [100, 100],
-size => [810, 610],
) or die "child creation failed: [EMAIL PROTECTED]";
$cw->SetIcon($icon);

$mw->Show();
Win32::GUI::Dialog();
exit(0);
__END__

#!perl -w
use strict;
use warnings;

use Win32::GUI;

my $icon = new Win32::GUI::Icon("c:\\JS1G.ICO");
my $frame_class = new Win32::GUI::Class(
-name   => "mywindowclass",
-icon   => $icon,
-widget => "MDIFrame",   # use the MDIFrame windowproc
);
my $child_class = new Win32::GUI::Class(
-name   => "mychildwindowclass",
-icon   => $icon,
-widget => "MDIChild",   # use the MDIChild windowproc
);

my $mw = Win32::GUI::MDIFrame->new(
-text  => 'Main Window',
-size  => [1024,768],
-class => $frame_class,
) or die "frame creation failed: [EMAIL PROTECTED]";

my $mc = $mw->AddMDIClient(
-firstchild => 100,
) or die "client creation failed: [EMAIL PROTECTED]";

my $cw = $mc->AddMDIChild(
-name  => 'window1',
-text  => 'Window1',
-pos   => [100, 100],
-size  => [810, 610],
-class => $child_class,
) or die "child creation failed: [EMAIL PROTECTED]";

$mw->Show();
Win32::GUI::Dialog();
exit(0);
__END__

As an aside a complete but minimal example showing your problem is 
preferable so that it's quick and easy to run it, and so that we don't 
have to work out what else we need to add in order to get your code to run.


Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] console echo

2005-12-04 Thread Robert May

Spencer_Lists wrote:

I have tried everything I can think of to echo keypresses. Here is my
attempt to do it with Win32Console. I can get the key values and
everything else returned by input but I just can't figure out how to
echo the input. Sorry about the text formatting, my e-mail program
messes it up and will not allow me to change it.

use strict;
use Win32::Console;

my $console = Win32::Console->new(STD_INPUT_HANDLE);
my $return = $console-> Mode(ENABLE_ECHO_INPUT);
my $chars = 0;
my $string;

until ($chars eq "\r") {
my @list = $console->Input();
$chars = chr($list[5]);
$string .= $chars if($list[1] == 1);#   only record down keys
# [0] event type 1 for kbd [1] key up or down? [2] repeat count 
[3] keycode [4] scancode [5] ascii value [6] control key states ???
print "\n string is $string\n" if($list[1] == 1);
}
print "\nDONE";
exit;


From the MSDN documentation:

ENABLE_ECHO_INPUT - Characters read by the ReadFile or ReadConsole 
function are written to the active screen buffer as they are read. This 
mode can be used only if the ENABLE_LINE_INPUT mode is also enabled.


ENABLE_LINE_INPUT - The ReadFile or ReadConsole function returns only 
when a carriage return character is read. If this mode is disabled, the 
functions return when one or more characters are available.


So it appears that you can't use ENABLE_ECHO_INPUT in the way you are 
trying to.  You can echo the characters yourself with a print, if you 
turn off buffering of STDOUT:


#!perl -w
use strict;
use warnings;

use Win32::Console;

my $console = Win32::Console->new(STD_INPUT_HANDLE);

my $char = '';
until ($char eq "\r") {
my @list = $console->Input();

$char = '';
if($list[0] == 1) { # only keys, not mouse events
if($list[1] == 1) { # only key down events
$char = chr($list[5]);
local $|=1; # auto-flush
print $char;
}
}
}
exit;
__END__


I think that Term::ReadKey is probably easier although in this example I 
need to press the  key twice to get it to exit - if anyone can 
fix or explain why then I'd be grateful.


#!perl -w
use strict;
use warnings;

use Term::ReadKey;

ReadMode(3); # cbreak mode - doesn't need cr/lf to flush input

my $char='';
until($char eq "\r" ) {  #  to exit
$char = ReadKey(0);
print $char;
}
ReadMode(0); # Reset tty mode before exiting
exit(0)
__END__

Regards,
Rob.
--
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] I am using **split** incorrectly?

2005-11-06 Thread Robert May

Alejandro Santillan Iturres wrote:

[snip]

$textcomplete="Mary has a little lamb\nMary has a little lamb which is 
black!";
 
$i=0;

@textinlines=split(/\n/,$textcomplete);
foreach(@textinlines){
print "$i:$textinlines[$i]\n";
@textinchars=split(//,$textinlines[$i]);
foreach(@textinchars){print "$textinchars[$j]:";$j++;}
$i++;
print "\n";
}
 
and produces the result:
 
0:Mary has a little lamb

M:a:r:y: :h:a:s: :a: :l:i:t:t:l:e: :l:a:m:b:
1:Mary has a little lamb which is black!
 :w:h:i:c:h: :i:s: :b:l:a:c:k:!:::
 
Instead of:
 
0:Mary has a little lamb

M:a:r:y: :h:a:s: :a: :l:i:t:t:l:e: :l:a:m:b:
1:Mary has a little lamb which is black!
M:a:r:y: :h:a:s: :a: :l:i:t:t:l:e: :l:a:m:b: :w:h:i:c:h: :i:s: :b:l:a:c:k:!:
 
Anyone sees the mistake?


Try resetting $j to zero before the start of the inner loop

Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Creating a grid control

2005-08-03 Thread Robert May

Octavian Rasnita wrote:

Does anyone know if it is possible to create a grid control which is
accessible using the keyboard only (no mouse)?
I have tried a few examples from the Win32::GUI::Grid package, but I could
select a cell only by using the mouse, but I would like to have a grid in
which I can navigate using the arrow keys in order to select the rows.


Interesting - once you have a cell selected, then keyboard navigation 
works fine, but I can't (quickly) find a way of being able to get the 
focus into the grid using the keyboard.  It should be possible, but 
would require more time to investigate the underlying Grid Control code 
than I have right now.


Good luck with finding a solution, and please let us know if you find one.

Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: Need help with Perl GUI

2005-08-03 Thread Robert May

Jaime Teng wrote:

Too bad win32::GUI does not have much documentations as well.
Does anyone have a good win32::gui website or book even?


What exists as formal documentation for Win32:GUI is available (as of 
yesterday) at http://perl-win32-gui.sourceforge.net/   We're actively 
working on completing the documentation and bringing it up to date, but 
it's a bit of a slow process.


Regards,
Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] RE: creating a combo box

2005-08-01 Thread Robert May

Peter Eisengrein wrote:

Hi,

Sorry for my previous message. I have discovered that I was 
using an older
version of Win32::GUI that was installed using ppm, but now 
after installing

it from cpan.org, it works fine.


Nevertheless, the problem is that the Dialog was missing the -name
parameter.


Indeed.  Only a problem with older versions of Win32::GUI, though.

Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] XS problem

2005-07-29 Thread Robert May

Brian Casey wrote:

 >nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

Skip blib\lib\MSC\LAPI.pm (unchanged)
Running Mkbootstrap for MSC::LAPI ()
C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 LAPI.bs
link -out:blib\arch\auto\MSC\LAPI\LAPI.dll -dll -nologo 
-nodefaultlib -d
ebug -opt:ref,icf  -libpath:"C:\Perl\lib\CORE"  -machine:x86 LAPI.obj   
C:\Perl\

lib\CORE\perl58.lib M:\v9.2\i86_n3\lapim.lib -def:LAPI.def
   Creating library blib\arch\auto\MSC\LAPI\LAPI.lib and object 
blib\arch\auto\M

SC\LAPI\LAPI.exp
LAPI.obj : error LNK2001: unresolved external symbol _strcmp
LINK : error LNK2001: unresolved external symbol [EMAIL PROTECTED]
blib\arch\auto\MSC\LAPI\LAPI.dll : fatal error LNK1120: 2 unresolved 
externals

NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.


It looks to me link you need to link with the common run-time library 
(msvcrt.dll).  The -nodefaultlib option prevents this. You need to add 
msvcrt.lib to your link command.  (IIRC you can just add -lmsvcrt to the 
'LIBS' option in your Makefile.PL, but make sure your compiler can find 
it: ensure the path to your compiler's lib directory is in the LIB 
environment variable)


Rob.
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: creating a combo box

2005-07-27 Thread Robert May

Hi,

There are 3 different types of combobox - see MSDN for details:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/comboboxes/comboboxes.asp

Two of the types include the selected item in an edit control, whose 
default behaviour is to use home/end to move to the beginning/end of the 
text.  The third has the behaviour you desire, but not the look that you 
demonstrated with you script.  It would be possible to adapt either of 
the first two types to do what you want as well, but this is certainly 
not trivial, and would deviate from the standard 'user experience'.


Here's a script demonstrating all three types:

#!perl -w
use strict;
use warnings;

use Win32::GUI();

my $Win = Win32::GUI::DialogBox->new(
-title => "ComboBox Types",
-size => [350,200],
);

# Standard: Edit control + listbox
$Win->AddCombobox(
-name => 'Markets1',
-pos  => [10,10],
-size => [100,100],
-vscroll => 1,
-tabstop => 1,
);

# Drop down: Edit control + drop-down
$Win->AddCombobox(
-name => 'Markets2',
-pos  => [120,10],
-size => [100,100],
-vscroll => 1,
-tabstop => 1,
-dropdown => 1,
);

# Drop down list: Static control + drop-down
$Win->AddCombobox(
-name => 'Markets3',
-pos  => [230,10],
-size => [100,100],
-vscroll => 1,
-tabstop => 1,
-dropdownlist => 1,
);

my @markets = ('Regular', 'Odd lot', 'Deal', 'BER regular', 'Oferte
publice', 'Drepturi de preferinta');

$Win->Markets1->Add(@markets);
$Win->Markets2->Add(@markets);
$Win->Markets3->Add(@markets);

$Win->Show();
Win32::GUI::Dialog();
exit(0);
__END__

Regards,
Rob.



Octavian Rasnita wrote:

Hi,

I have created a combo box using the code below, but I cannot move the
cursor to select the first or the last element from the combo box using the
home and end keys.
What can I do to be able to do this?

Thank you.

$Win->AddCombobox(
-name => 'Markets',
-left => 60,
-top => 10,
-width => 120,
-height => 22,
-tabstop => 1,
);

my @markets = ('Regular', 'Odd lot', 'Deal', 'BER regular', 'Oferte
publice', 'Drepturi de preferinta');

$Win->Markets->Add(@markets);

Teddy


___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: [aswin32] Re: RE: How to find the perl install directory?

2005-07-13 Thread Robert May

Anything wrong with:

#!perl -w
use strict;
use warnings;

use Config;

print $Config{prefix} . "\n";
print $Config{prefixexp} . "\n";  # fully expanded version of above (probably
 # the same in Win32)

exit(0);
__END__

Regards,
Rob.



[EMAIL PROTECTED] wrote:

Here's a more annoying way than Peter's in the event that you dont add 
perl to your path (heaven knows why one of my client opted for that!)


$version = $Registry->
{'LMachine/SOFTWARE/ActiveState/ActivePerl//CurrentVersion'};
$gbl_PerlPath = $Registry->
{'LMachine/SOFTWARE/ActiveState/ActivePerl/' . $version . '//'};

Wee!
 





Here's one way:
 
###
 
for $dir (split(/;/,$ENV{'PATH'}))

{
 
 opendir(DIR, "$dir") || die "Can't open $dir for reading : $!\n";
 
 while ($_ = readdir(DIR))

 {
print "$dir\n" if ($_ eq 'perl.exe');
 }
 
 close(DIR);
 
}
 


-Original Message-
*From:* Apurva Shukla [mailto:[EMAIL PROTECTED]
*Sent:* Friday, July 08, 2005 9:56 AM
*To:* perl-win32-users@listserv.ActiveState.com
*Subject:* How to find the perl install directory?

Hi All,

I have perl installed on my system at C:\Perl.

now I need to write a script which if I run on any computer gives
me  the directory where perl is installed.

For e.g. on my system it should be
$perl whereisperl.pl
c:\Perl

{Factually what I really want to do is:
$whereisperl.bat
c:\Perl
}

I have tried seeing enviroment variables but none of the
environment variables store any informatio except the PATH which
stores a link to it and that too is filled with a huge number of
paths. One option could be to parse that and get the path to Perl
install directory but I feel there has to be a neater way. Also
another problem I have is that I want to write a bat file so
parsing is a little problem i want to avoid.

TIA
-- 
Apurva Shukla


-
dream & dare
-

 



This message was scanned by ATX
10:49:26 AM ET - 7/8/2005



___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
 




___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
 


___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


ANNOUNCE: Win32::GUI v1.02

2005-07-11 Thread Robert May

I am please to announce that v1.02 of Win32::GUI is available for download from 
SourceForge.

Win32::GUI is a Perl extension allowing creation of native Win32 GUI 
applications.

Project summary and download:
http://sourceforge.net/projects/perl-win32-gui/
Release notes:
http://sourceforge.net/project/shownotes.php?release_id=341357

Regards,
Rob.

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs