Hi Frank,

I have just got it sorted. I had added the deskalert.vcx into the
project , removing it got rid of those errors, it didn't get pulled back
in on a rebuild so obviously not needed.
The Ole Error proved more illusive but googling the error came upon an
article by Eric den Doop
http://www.archivum.info/microsoft.public.fox.programmer.exchange/2005-0
6/00053/Re:_OLEPUBLIC_Class_cannot_be_compile
which gave me a clue.

Changed the first line.
Define Class myclass As Session OlePublic
        Implements Ialertevents In "vfpalert.AlertEvents"
        Procedure Ialertevents_AlertResult(tnResult As Number) As Number
                Messagebox("You selected: " + Transform(tnResult) + " in
the Ialertevents.",64,"iAlertEvents_AlertResult")
        Endproc
Enddefine
To:
Define Class myclass As Custom

Compiled no problem and alerts worked as expected.

Used Code references to search for Define Class
I have a program called Initialise.prg which is marked excluded.  I use
this to set-up everything as the main.prg does but without running the
On Error Do routine, the main form and the splash screen.
I had the above code in both.  Changing the class name in initialise to
MyClass2 solved the problem, I was able to compile with:
Define Class myclass As Session OlePublic
All is well with the world.
I am happy.
Now just got to give my wife something to moan about and she will be
happy.

Cheers

Peter

On Behalf Of Frank Cazabon
Sent: 03 September 2009 19:31

I Googled GetDesktopWindow and found that it is a function in 
user32.dll, so maybe you need an external declaration like this:

EXTERNAL FILE user32.dll

Or maybe just adding that file to the project (you can mark it excluded)

will do the job, but I'm not really sure.

Peter Hart wrote:
> Sorry Frank,
>
> Unless I'm doing it wrong (My wife says I am) Get more errors
>
> Put External File
>
_SetWindowLong,_SetLayeredWindowAttributes,_SystemParametersInfo,GetDesk
> topWindow
> Near the start of main.prg
>
> Compile error 
> Program c:\awillspurchaseorders(arg)\progs\main.prg has the following
> errors:
>     File _SETWINDOWLONG - Undefined
>     File _SETLAYEREDWINDOWATTRIBUTES - Undefined
>     File _SYSTEMPARAMETERSINFO - Undefined
>     File GETDESKTOPWINDOW - Undefined
>
> Visual Class Library c:\awillspurchaseorders(arg)\libs\deskalert.vcx
has
> the following errors:
>     Unknown _SETWINDOWLONG - Undefined
>     Unknown _SETLAYEREDWINDOWATTRIBUTES - Undefined
>     Unknown _SYSTEMPARAMETERSINFO - Undefined
>
> Program c:\awillspurchaseorders(arg)\progs\vfpfindwindow.prg has the
> following errors:
>     Unknown GETDESKTOPWINDOW - Undefined
>
> And now get OLE error 0x8002802d: name already exists in the library
>
> Cheers
>
> Peter 
>
> On Behalf Of Frank Cazabon
> Sent: 03 September 2009 17:16
>
> Hi Peter,
>
> maybe these are just external programs that merely cause a compilation

> error, however they do exist at run time.  Maybe using an EXTERNAL... 
> statement in your main program will solve the compile errors.
>
>
> Peter Hart wrote:
>   
>> Oh Dear
>>
>> Worked fine in development mode but when compiling I get
>>
>> Visual Class Library ..\libs\deskalert.vcx has the following errors:
>>     Unknown _SETWINDOWLONG - Undefined
>>     Unknown _SETLAYEREDWINDOWATTRIBUTES - Undefined
>>     Unknown _SYSTEMPARAMETERSINFO - Undefined
>>
>> Program ..\progs\vfpfindwindow.prg has the following errors:
>>     Unknown GETDESKTOPWINDOW - Undefined
>>
>> Any Ideas
>>
>> TIA
>>
>> Peter
>>
>> On Behalf Of Peter Hart
>> Sent: 03 September 2009 14:31
>>
>> Thanks for the offer Dave.  I've sorted it.
>>
>> You can still send the example though as your way is probably better
>> than mine.
>>
>> In my Main.prg I placed:
>>
>> Public oMgr As vfpalert.AlertManager
>> X = Createobject("myclass")
>> oMgr = NEWOBJECT("vfpalert.AlertManager")
>>
>> Define Class myclass As Session OlePublic
>>      Implements Ialertevents In "vfpalert.AlertEvents"
>>      Procedure Ialertevents_AlertResult(tnResult As Number) As Number
>>              Messagebox("You selected: " + Transform(tnResult) + " in
>> the Ialertevents.",64,"iAlertEvents_AlertResult")
>>      Endproc
>> Enddefine
>>
>>
>> In the Timer Method on a Timer on My main Form, I placed:
>>
>> If !Empty(Notes.Note)
>>      If Alltrim(Notes.Note) == Alltrim(ThisForm.cNotes) && Holds
>> contents of notes field from last time
>>              && Do Nothing
>>      Else
>>              o = oMgr.NewAlert()
>>              o.Alert("You have new message",65,"View Notes")
>>              INKEY(.5,"hc")
>>      EndIf
>> EndIf
>> ThisForm.cNotes = Alltrim(Notes.Note)
>>
>> Timer Interval I set at 10000
>>
>> I intend to get the first couple of lines from the message and place
>> them in the Alert.  When I have time.
>>
>> Cheers
>>
>> Peter
>>
>>
>> On Behalf Of Dave Crozier
>> Sent: 03 September 2009 11:46
>>
>> Peter,
>> I will email an example to you this afternoon.
>>
>> Dave
>>
>> Of Peter Hart
>> Sent: 03 September 2009 11:27
>> Subject: RE: Balloon Tips in System Tray
>>
>> Hi Dave and Allen
>>
>> Thanks for the prompt replies.
>>
>> I have to go out to see a Client now but had a quick look.
>>
>> What is not immediately obvious to a "Numpty" is how to get it
>>     
> working.
>   
>> Do I add the class to my main form, Do I put code into my main
program
>> to set it up or what?.  I think I can see how to then get the alert
to
>> show when I want it to.
>> Any help would be appreciated
>>
>> Peter
>>
>> On Behalf Of Allen
>> Sent: 03 September 2009 10:46
>>
>> Peter
>> Have you looked at the alerts on codeplex
>> Al
>>
>> On Behalf Of Peter Hart
>> Sent: 03 September 2009 10:49
>> To: [email protected]
>> Subject: RE: Balloon Tips in System Tray
>>
>> Hi Everyone
>>
>> I am trying to get a balloon tip to display over the System Tray.
>> What I want to do is show a Balloon tip when a Purchase Order is
ready
>> for Authorising.
>> So far I have added the System tray class from the Solutions/Toledo
>> Folder to the project
>> Added the Systray Class to the main form.
>> Set its properties
>> IconFile = Full path and filename for the A Wills Log Icon.
>> TipText = "Arnold Wills Purchase Orders.
>> MenuText = SysTrayShortcut.mpr
>> MenuTextIsMPR = .T. if MenuText contains the name of an MPR file.
>>
>>
>>
>>     
[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/a57fa4cf19531343a2ee11b57db8e3af04c...@server.peterhartcomputers.local
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to