<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I've been working with FPC 2.0.0 and Dev-Pas 
for some GUI efforts and another programmer pointed out an interesting thing, 
regarding the LPARAM and WPARAM types.  I hope I'm not kicking up old dust, 
but for the sake of clarification if we may...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The Microsoft architecture affiliates these two 
keywords as "Types", based upon case sensitivity, among the variouse usage 
they apply from a C perspectieve, where in Pascal, case is 
insensitive.   In Dev-Pas' gui template, they assign these 
same words as follows... </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>//--------- </FONT></DIV>
<DIV><FONT face=Arial size=2>function WindowProc(Window: HWnd; AMessage, 
WParam,<BR>          LParam: 
Longint): Longint; stdcall; export;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>LParam becomes Longint, but it is a TYPE 
actually.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Without case sensitivity in Pascal, these same 
words can become declared variables as above, which leads to ambiguous 
code.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>//----------</FONT></DIV>
<DIV><FONT face=Arial size=2>Consider the useage otherwise as ...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>function WindowProc(Window: HWnd; AMessage: UINT; 
WParam : 
WPARAM;<BR>                    
LParam: LPARAM): LRESULT; stdcall; export;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>In hopes of avoiding a discussion on the merits of 
case-sensitivity in compiler design...  </FONT><FONT face=Arial size=2>Is 
there any way to switch on case sensitivity or otherwise a switch to have 
references become reserved words, such that their case insensitive nature can be 
raised as an error in the above cases?  LPARAM AND WPARAM are 
consistently present in most windows usage.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>i.e.     LParam: Longint 
    >    would raise an error for reserved 
word.</FONT></DIV>
<DIV><FONT face=Arial 
size=2>         LParam:LPARAM    
>    would raise an error as a redundant 
cast</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>        xxx:Lparm 
would cast xxx to any case manner of Lparam/Wparam</FONT></DIV>
<DIV><FONT face=Arial size=2>        
</FONT></DIV>
<DIV><FONT face=Arial size=2>I suppose that there are a number of cased 
words in Windows that make the consideration impractical 
overall, </FONT><FONT face=Arial size=2> but is this strictly a manner 
of managment on the programmers behalf, to watch declarations and scope closely, 
or could it ever be managed as a switched option?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks in advance,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Mike</FONT></DIV></BODY></HTML>