mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-27 04:22:27 +02:00
Keith: Fixed compilation problem and some bugs
git-svn-id: trunk@588 -
This commit is contained in:
parent
a91d8446f3
commit
95234d77e0
@ -30,6 +30,7 @@ Destructor TWin32Object.Destroy;
|
|||||||
Var
|
Var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
Begin
|
Begin
|
||||||
|
Assert(False, 'Trace:TWin32Object is being destroyed');
|
||||||
FMessageQueue.Free;
|
FMessageQueue.Free;
|
||||||
FDeviceContexts.Free;
|
FDeviceContexts.Free;
|
||||||
FGDIObjects.Free;
|
FGDIObjects.Free;
|
||||||
@ -343,13 +344,13 @@ Begin
|
|||||||
GetPixel(Sender, Data);
|
GetPixel(Sender, Data);
|
||||||
LM_SHOWHIDE:
|
LM_SHOWHIDE:
|
||||||
Begin
|
Begin
|
||||||
Assert(False, Format('Trace: [TWin32Object.IntSendMessage3] %s --> Show/Hide', [Sender.ClassNAme]));
|
Assert(False, Format('Trace: [TWin32Object.IntSendMessage3] %s --> Show/Hide', [Sender.ClassName]));
|
||||||
ShowHide(Sender);
|
ShowHide(Sender);
|
||||||
End;
|
End;
|
||||||
LM_SETCURSOR:
|
LM_SETCURSOR:
|
||||||
SetCursor(Sender);
|
SetCursor(Sender);
|
||||||
LM_SETLABEL:
|
LM_SETLABEL:
|
||||||
SetLabel(Sender,Data);
|
SetLabel(Sender, Data);
|
||||||
LM_GETVALUE:
|
LM_GETVALUE:
|
||||||
Result := GetValue(Sender, Data);
|
Result := GetValue(Sender, Data);
|
||||||
LM_SETVALUE:
|
LM_SETVALUE:
|
||||||
@ -379,15 +380,18 @@ Begin
|
|||||||
LM_ADDCHILD:
|
LM_ADDCHILD:
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Trace:Adding a child to Parent');
|
Assert(False, 'Trace:Adding a child to Parent');
|
||||||
If (TWinControl(Sender).Parent is TToolbar) then
|
If (TWinControl(Sender).Parent is TToolbar) Then
|
||||||
Begin
|
Begin
|
||||||
Exit;
|
Exit;
|
||||||
End
|
End
|
||||||
Else
|
Else
|
||||||
Begin
|
Begin
|
||||||
AParent := (Sender as TWinControl).Parent;
|
AParent := (Sender as TWinControl).Parent;
|
||||||
Assert(False, Format('Trace:[TWin32Object.IntSendMessage3] %s --> Calling Add Child: %s', [AParent.ClassName, Sender.ClassName]));
|
With (Sender As TWinControl) Do
|
||||||
AddChild((Sender as TWinControl).Parent.Handle, Handle, (Sender as TWinControl).Parent.Left, (Sender as TWinControl).Parent.Top);
|
Begin
|
||||||
|
Assert(False, Format('Trace:[TWin32Object.IntSendMessage3] %S --> Calling Add Child: %S', [Parent.ClassName, ClassName]));
|
||||||
|
AddChild(Parent.Handle, Handle, Parent.Left, Parent.Top);
|
||||||
|
End;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
LM_LV_DELETEITEM:
|
LM_LV_DELETEITEM:
|
||||||
@ -469,19 +473,19 @@ Begin
|
|||||||
//SH: think of TBitmap.handle!!!!
|
//SH: think of TBitmap.handle!!!!
|
||||||
LM_LOADXPM:
|
LM_LOADXPM:
|
||||||
Begin
|
Begin
|
||||||
If (Sender is TBitmap) then
|
If (Sender is TBitmap) Then
|
||||||
Begin
|
Begin
|
||||||
Assert(False, Format('Trace:Bitmap name: %S', [StrPas(Data)]));
|
Assert(False, Format('Trace:Bitmap name: %S', [StrPas(Data)]));
|
||||||
SData := String(Data);
|
//SData := String(Data);
|
||||||
NormalizeIconName(SData);
|
NormalizeIconName(Data);
|
||||||
Data := PChar(SData);
|
//Data := PChar(SData);
|
||||||
Bitmap := LoadImage(0, LPCTSTR(Data), IMAGE_ICON, 0, 0, LR_DefaultSize Or LR_LoadFromFile);
|
Bitmap := LoadImage(0, LPCTSTR(Data), IMAGE_ICON, 0, 0, LR_DefaultSize Or LR_LoadFromFile);
|
||||||
Assert(False, 'Trace:1');
|
Assert(False, 'Trace:1');
|
||||||
If Bitmap = HBITMAP(Nil) Then
|
If Bitmap = HBITMAP(Nil) Then
|
||||||
Assert(False, 'Trace:BITMAP NOT LOADED!');
|
Assert(False, 'Trace:BITMAP NOT LOADED!');
|
||||||
// PdeviceContext(TBitmap(sender).handle)^.CurrentBitmap :=pgdiObject(pixmap);
|
// PdeviceContext(TBitmap(sender).handle)^.CurrentBitmap :=pgdiObject(pixmap);
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
|
End;
|
||||||
{Displays a menu and makes it available for selection. Applications can use this function to display context-sensitive menus,
|
{Displays a menu and makes it available for selection. Applications can use this function to display context-sensitive menus,
|
||||||
and will typically supply NULL for the parent_menu_shell, parent_menu_item, func and data parameters.
|
and will typically supply NULL for the parent_menu_shell, parent_menu_item, func and data parameters.
|
||||||
The default menu positioning function will position the menu at the current pointer position.
|
The default menu positioning function will position the menu at the current pointer position.
|
||||||
@ -525,7 +529,10 @@ activate_time : the time at which the activation event occurred.
|
|||||||
End;
|
End;
|
||||||
LM_SETSIZE:
|
LM_SETSIZE:
|
||||||
Begin
|
Begin
|
||||||
ResizeChild(Sender, PRect(Data)^.Left, PRect(Data)^.Top, PRect(Data)^.Right, PRect(Data)^.Bottom);
|
If Sender Is TWinControl Then
|
||||||
|
With (Sender As TWinControl), PRect(Data)^ Do
|
||||||
|
If HandleAllocated Then
|
||||||
|
ResizeChild(Handle, Left, Top, Right, Bottom);
|
||||||
End;
|
End;
|
||||||
LM_SHOWMODAL:
|
LM_SHOWMODAL:
|
||||||
Begin
|
Begin
|
||||||
@ -621,12 +628,12 @@ activate_time : the time at which the activation event occurred.
|
|||||||
End
|
End
|
||||||
Else
|
Else
|
||||||
Begin
|
Begin
|
||||||
raise Exception.Create('Can not assign this control to the toolbar');
|
Raise Exception.Create('Can not assign this control to the toolbar');
|
||||||
exit;
|
Exit;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Num := TToolbar(TWinControl(Sender).Parent).Buttonlist.IndexOf(TControl(Sender));
|
Num := TToolbar(TWinControl(Sender).Parent).Buttonlist.IndexOf(TControl(Sender));
|
||||||
if num < 0 Then
|
If Num < 0 Then
|
||||||
Num := TToolbar(TWinControl(Sender).Parent).Buttonlist.Count + 1;
|
Num := TToolbar(TWinControl(Sender).Parent).Buttonlist.Count + 1;
|
||||||
Assert(False, Format('Trace:Num = %d in LM_INSERTTOOLBUTTON', [Num]));
|
Assert(False, Format('Trace:Num = %d in LM_INSERTTOOLBUTTON', [Num]));
|
||||||
|
|
||||||
@ -699,7 +706,7 @@ activate_time : the time at which the activation event occurred.
|
|||||||
LM_GETTEXT :
|
LM_GETTEXT :
|
||||||
Begin
|
Begin
|
||||||
Assert (true, 'WARNING:[TWin32Object.IntSendMessage3] usage of LM_GETTEXT superfluous, use interface-function GetText instead');
|
Assert (true, 'WARNING:[TWin32Object.IntSendMessage3] usage of LM_GETTEXT superfluous, use interface-function GetText instead');
|
||||||
Result := integer (nil);
|
Result := Integer(Nil);
|
||||||
End;
|
End;
|
||||||
LM_GETITEMINDEX :
|
LM_GETITEMINDEX :
|
||||||
Begin
|
Begin
|
||||||
@ -798,12 +805,12 @@ activate_time : the time at which the activation event occurred.
|
|||||||
Result := Windows.SendMessage(Handle, LB_GETSEL, WParam(Data), 0);
|
Result := Windows.SendMessage(Handle, LB_GETSEL, WParam(Data), 0);
|
||||||
End
|
End
|
||||||
End;
|
End;
|
||||||
LM_SETLIMITTEXT :
|
LM_SETLIMITTEXT:
|
||||||
Begin
|
Begin
|
||||||
If (Sender Is TControl) Then
|
If (Sender Is TControl) Then
|
||||||
SetLimitText(Handle, Word(Data^));
|
SetLimitText(Handle, Word(Data^));
|
||||||
End;
|
End;
|
||||||
LM_SORT :
|
LM_SORT:
|
||||||
Begin
|
Begin
|
||||||
If (Sender Is TControl) And Assigned(Data) Then
|
If (Sender Is TControl) And Assigned(Data) Then
|
||||||
Begin
|
Begin
|
||||||
@ -938,7 +945,7 @@ Begin
|
|||||||
|
|
||||||
{$IFDEF VER1_1}
|
{$IFDEF VER1_1}
|
||||||
List := TMsgArray(GetProp(Window, 'MsgList'));
|
List := TMsgArray(GetProp(Window, 'MsgList'));
|
||||||
List := Nil;
|
Pointer(List) := Nil;
|
||||||
SetProp(Window, 'MsgList', Pointer(List));
|
SetProp(Window, 'MsgList', Pointer(List));
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
End;
|
End;
|
||||||
@ -956,10 +963,10 @@ Var
|
|||||||
Begin
|
Begin
|
||||||
While True Do
|
While True Do
|
||||||
Begin
|
Begin
|
||||||
RetVal := PeekMessage(FMessage, FParentWindow, 0, 0, PM_Remove);
|
RetVal := PeekMessage(FMessage, HWND(Nil), 0, 0, PM_Remove);
|
||||||
With FMessage Do
|
With FMessage Do
|
||||||
Begin
|
Begin
|
||||||
If (RetVal = True) And ((Message <> 0) Or ((WParam <> 0) And (LParam <> 0))) Then
|
If RetVal And ((Message <> 0) Or ((WParam <> 0) And (LParam <> 0))) Then
|
||||||
SendMessage(HWnd, Message, WParam, LParam)
|
SendMessage(HWnd, Message, WParam, LParam)
|
||||||
Else
|
Else
|
||||||
Break;
|
Break;
|
||||||
@ -997,14 +1004,19 @@ End;
|
|||||||
Passes execution control to Windows
|
Passes execution control to Windows
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
Procedure TWin32Object.WaitMessage;
|
Procedure TWin32Object.WaitMessage;
|
||||||
|
Var
|
||||||
|
RetVal: Boolean;
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'TRACE:TWin32Object.WaitMessage - Start');
|
Assert(False, 'TRACE:TWin32Object.WaitMessage - Start');
|
||||||
While True Do
|
Repeat
|
||||||
Begin
|
RetVal := PeekMessage(FMessage, HWND(Nil), 0, 0, PM_REMOVE);
|
||||||
PeekMessage(FMessage, HWND(Nil), 0, 0, PM_Remove);
|
Assert(False, Format('Trace:TWin32Object.WaitMessage --> %S', [WM_To_String(FMessage.Message)]));
|
||||||
If FMessage.Message <> 0 Then
|
If FMessage.Message = WM_QUIT Then
|
||||||
Break;
|
Begin
|
||||||
End;
|
Assert(False, 'Trace:TWin32Object.WaitMessage - got quit message; exiting the application');
|
||||||
|
Halt(FMessage.WParam);
|
||||||
|
End;
|
||||||
|
Until RetVal;
|
||||||
Assert(False, 'TRACE:TWin32Object.WaitMessage - Exit');
|
Assert(False, 'TRACE:TWin32Object.WaitMessage - Exit');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -1015,10 +1027,17 @@ End;
|
|||||||
|
|
||||||
Tells Windows to halt and destroy
|
Tells Windows to halt and destroy
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
procedure TWin32Object.AppTerminate;
|
Procedure TWin32Object.AppTerminate;
|
||||||
|
Var
|
||||||
|
Handle: HWND;
|
||||||
Begin
|
Begin
|
||||||
|
Assert(False, 'Trace:TWin32Object.AppTerminate - Start');
|
||||||
StrDispose(FormClassName);
|
StrDispose(FormClassName);
|
||||||
DestroyWindow(FMainForm.Handle);
|
If Application.MainForm <> Nil Then
|
||||||
|
Handle := Application.MainForm.Handle
|
||||||
|
Else
|
||||||
|
Handle := FMainForm.Handle;
|
||||||
|
DestroyWindow(Handle);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -1037,7 +1056,7 @@ begin
|
|||||||
If Sender Is TWinControl Then
|
If Sender Is TWinControl Then
|
||||||
With Sender As TWinControl Do
|
With Sender As TWinControl Do
|
||||||
Begin
|
Begin
|
||||||
If (Length(Hint) > 0)And (ShowHint or (csDesigning in ComponentState)) Then
|
If (Length(Hint) > 0) And (ShowHint or (csDesigning in ComponentState)) Then
|
||||||
Begin
|
Begin
|
||||||
StrTemp := StrAlloc(Length(Hint) + 1);
|
StrTemp := StrAlloc(Length(Hint) + 1);
|
||||||
Try
|
Try
|
||||||
@ -1051,7 +1070,7 @@ begin
|
|||||||
LPSzText := StrTemp;
|
LPSzText := StrTemp;
|
||||||
End;
|
End;
|
||||||
Assert(False, 'TRACE:Updating the hint to ' + StrPas(StrTemp));
|
Assert(False, 'TRACE:Updating the hint to ' + StrPas(StrTemp));
|
||||||
SendMessage(FToolTipWindow, TTM_UPDATETIPTEXT, 0, LPARAM(@ti));
|
SendMessage(FToolTipWindow, TTM_UPDATETIPTEXT, 0, LPARAM(@TI));
|
||||||
Finally
|
Finally
|
||||||
StrDispose(StrTemp);
|
StrDispose(StrTemp);
|
||||||
End;
|
End;
|
||||||
@ -1060,11 +1079,11 @@ begin
|
|||||||
Begin
|
Begin
|
||||||
With TI Do
|
With TI Do
|
||||||
Begin
|
Begin
|
||||||
CbSize := SizeOf(ti);
|
CbSize := SizeOf(TI);
|
||||||
HWnd := Handle;
|
HWnd := Handle;
|
||||||
LPSzText := Nil;
|
LPSzText := Nil;
|
||||||
End;
|
End;
|
||||||
SendMessage(FToolTipWindow, TTM_UPDATETIPTEXT, 0, LPARAM(@ti));
|
SendMessage(FToolTipWindow, TTM_UPDATETIPTEXT, 0, LPARAM(@TI));
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
@ -1090,10 +1109,10 @@ Begin
|
|||||||
AParent := TWinControl(Sender).Parent;
|
AParent := TWinControl(Sender).Parent;
|
||||||
AParent.RemoveControl(TControl(Sender));
|
AParent.RemoveControl(TControl(Sender));
|
||||||
|
|
||||||
TWincontrol(Sender).Parent := Nil;
|
TWinControl(Sender).Parent := Nil;
|
||||||
TWincontrol(Sender).Parent := AParent;
|
TWinControl(Sender).Parent := AParent;
|
||||||
|
|
||||||
ResizeChild(Sender, TWinControl(Sender).Left, TWinControl(Sender).Top, TWinControl(Sender).Width, TWinControl(Sender).Height);
|
ResizeChild(TWinControl(Sender).Handle, TWinControl(Sender).Left, TWinControl(Sender).Top, TWinControl(Sender).Width, TWinControl(Sender).Height);
|
||||||
ShowHide(Sender);
|
ShowHide(Sender);
|
||||||
|
|
||||||
Result := 0;
|
Result := 0;
|
||||||
@ -1110,7 +1129,7 @@ End;
|
|||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
Function TWin32Object.WinRegister: Boolean;
|
Function TWin32Object.WinRegister: Boolean;
|
||||||
Var
|
Var
|
||||||
WindowClass : WndClass;
|
WindowClass: WndClass;
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Trace:WinRegister - Start');
|
Assert(False, 'Trace:WinRegister - Start');
|
||||||
With WindowClass Do
|
With WindowClass Do
|
||||||
@ -1123,7 +1142,7 @@ Begin
|
|||||||
HIcon := LoadIcon(0, IDI_Application);
|
HIcon := LoadIcon(0, IDI_Application);
|
||||||
HCursor := LoadCursor(0, IDC_Arrow);
|
HCursor := LoadCursor(0, IDC_Arrow);
|
||||||
HBrBackground := GetSysColorBrush(Color_BtnFace);
|
HBrBackground := GetSysColorBrush(Color_BtnFace);
|
||||||
LPSzMenuName := nil;
|
LPSzMenuName := Nil;
|
||||||
LPSzClassName := ClsName;
|
LPSzClassName := ClsName;
|
||||||
End;
|
End;
|
||||||
Result := Windows.RegisterClass(@WindowClass) <> 0;
|
Result := Windows.RegisterClass(@WindowClass) <> 0;
|
||||||
@ -1169,6 +1188,15 @@ Begin
|
|||||||
End
|
End
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Procedure TWin32Object.NormalizeIconName(Var IconName: PChar);
|
||||||
|
Var
|
||||||
|
Str: String;
|
||||||
|
Begin
|
||||||
|
Str := String(IconName);
|
||||||
|
NormalizeIconName(Str);
|
||||||
|
IconName := StrToPChar(Str);
|
||||||
|
End;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TWin32Object.SetLimitText
|
Method: TWin32Object.SetLimitText
|
||||||
Params: Window - The window that has the text to be limited
|
Params: Window - The window that has the text to be limited
|
||||||
@ -1180,13 +1208,14 @@ End;
|
|||||||
Procedure TWin32Object.SetLimitText(Window: HWND; Limit: Word);
|
Procedure TWin32Object.SetLimitText(Window: HWND; Limit: Word);
|
||||||
Var
|
Var
|
||||||
Cls: PChar;
|
Cls: PChar;
|
||||||
Msg: Word;
|
Msg: Cardinal;
|
||||||
|
Str: String;
|
||||||
Begin
|
Begin
|
||||||
GetClassInfo(Window, Cls, 5);
|
GetClassInfo(Window, @Cls, 5);
|
||||||
String(Cls) := LowerCase(String(Cls));
|
Str := LowerCase(String(PChar(@Cls)));
|
||||||
If Cls = 'edit' Then
|
If Str = 'edit' Then
|
||||||
Msg := CB_LIMITTEXT
|
Msg := CB_LIMITTEXT
|
||||||
Else If Cls = 'combo' Then
|
Else If Str = 'combo' Then
|
||||||
Msg := EM_LIMITTEXT
|
Msg := EM_LIMITTEXT
|
||||||
Else
|
Else
|
||||||
Exit;
|
Exit;
|
||||||
@ -1194,10 +1223,10 @@ Begin
|
|||||||
SendMessage(Window, Msg, Limit, 0);
|
SendMessage(Window, Msg, Limit, 0);
|
||||||
SetProp(Window, 'LIMIT_TEXT', @Limit);
|
SetProp(Window, 'LIMIT_TEXT', @Limit);
|
||||||
|
|
||||||
If WndList.IndexOf(@Window) = -1 Then
|
If WndList.IndexOf(Pointer(Window)) = -1 Then
|
||||||
Begin
|
Begin
|
||||||
WndList.Capacity := WndList.Count;
|
WndList.Capacity := WndList.Count;
|
||||||
WndList.Add(@Window);
|
WndList.Add(Pointer(Window));
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -1325,19 +1354,19 @@ End;
|
|||||||
|
|
||||||
Resize a window
|
Resize a window
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
Procedure TWin32Object.ResizeChild(Sender: TObject; Left, Top, Width, Height: Integer);
|
Procedure TWin32Object.ResizeChild(Window: HWND; Left, Top, Width, Height: Integer);
|
||||||
Var
|
Var
|
||||||
Handle: HWND;
|
Handle: HWND;
|
||||||
R: TRect;
|
R: TRect;
|
||||||
Begin
|
Begin
|
||||||
Handle := (Sender As TWinControl).Handle;
|
//Handle := (Sender As TWinControl).Handle;
|
||||||
If GetParent(Handle) <> HWND(Nil) Then
|
//If Handle <> HWND(Nil) Then
|
||||||
MoveWindow(Handle, Left, Top, Width, Height, True)
|
MoveWindow(Window, Left, Top, Width, Height, True)
|
||||||
Else
|
{Else
|
||||||
Begin
|
Begin
|
||||||
GetClientRect(Handle, R);
|
GetClientRect(Handle, R);
|
||||||
MoveWindow(Handle, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, True);
|
MoveWindow(Handle, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, True);
|
||||||
End;
|
End;}
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -1356,8 +1385,8 @@ Begin
|
|||||||
Assert(False, 'Trace:AddChild - Parent Window Handle is $' + IntToHex(LongInt(Parent), 8));
|
Assert(False, 'Trace:AddChild - Parent Window Handle is $' + IntToHex(LongInt(Parent), 8));
|
||||||
Assert(False, 'Trace:AddChild - Child Window Handle is $' + IntToHex(LongInt(Child), 8));
|
Assert(False, 'Trace:AddChild - Child Window Handle is $' + IntToHex(LongInt(Child), 8));
|
||||||
SetParent(Child, Parent);
|
SetParent(Child, Parent);
|
||||||
GetClientRect(Parent, R);
|
//GetClientRect(Parent, R);
|
||||||
MoveWindow(Child, Left, Top, R.Right - Left, R.Bottom - Top, True);
|
//MoveWindow(Child, Left, Top, R.Right - Left, R.Bottom - Top, True);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -1395,7 +1424,7 @@ End;
|
|||||||
|
|
||||||
Changes the form's default background color
|
Changes the form's default background color
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
Procedure TWin32Object.SetColor(Sender : TObject);
|
Procedure TWin32Object.SetColor(Sender: TObject);
|
||||||
Var
|
Var
|
||||||
DC: HDC;
|
DC: HDC;
|
||||||
Begin
|
Begin
|
||||||
@ -1461,12 +1490,11 @@ Begin
|
|||||||
Window := HWND(Nil);
|
Window := HWND(Nil);
|
||||||
Assert(False, 'Trace:Setting window');
|
Assert(False, 'Trace:Setting window');
|
||||||
|
|
||||||
If Sender Is TWinControl Then
|
If (Sender Is TWinControl) And ((Sender As TWinControl).Parent <> Nil) Then
|
||||||
If (Sender As TWinControl).Parent <> Nil Then
|
Begin
|
||||||
Begin
|
Parent := (Sender As TWinControl).Parent.Handle;
|
||||||
Parent := (Sender As TWinControl).Parent.Handle;
|
Assert(False, 'Trace:Setting parent');
|
||||||
Assert(False, 'Trace:Setting parent');
|
End
|
||||||
End
|
|
||||||
Else
|
Else
|
||||||
Parent := 0;
|
Parent := 0;
|
||||||
|
|
||||||
@ -1619,8 +1647,9 @@ Begin
|
|||||||
csFixed:
|
csFixed:
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Trace:TODO: Figure out what component style csFixed is and code the component. No component created.');
|
Assert(False, 'Trace:TODO: Figure out what component style csFixed is and code the component. No component created.');
|
||||||
TControl(Sender).FCompStyle := csScrolledWindow;
|
Window := CreateWindow(ClsName, StrTemp, WS_OVERLAPPEDWINDOW Or WS_HSCROLL Or WS_VSCROLL, Left, Top, Width, Height, Parent, HMENU(Nil), HInstance, Nil);
|
||||||
IntSendMessage3(LM_CREATE, Sender, Nil);
|
SetProp(Window, 'Lazarus', @Sender);
|
||||||
|
SetName(Window, StrTemp);
|
||||||
End;
|
End;
|
||||||
csFont:
|
csFont:
|
||||||
Begin
|
Begin
|
||||||
@ -1633,11 +1662,20 @@ Begin
|
|||||||
csForm:
|
csForm:
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Trace:CreateComponent - Creating a Form Window');
|
Assert(False, 'Trace:CreateComponent - Creating a Form Window');
|
||||||
Window := CreateWindow(ClsName, StrTemp, WS_OverlappedWindow, CW_UseDefault, CW_UseDefault, CW_UseDefault, CW_UseDefault, HWnd(Nil), HMENU(Nil), HInstance, Nil);
|
If Left = 0 Then
|
||||||
|
Left := CW_USEDEFAULT;
|
||||||
|
If Top = 0 Then
|
||||||
|
Top := CW_USEDEFAULT;
|
||||||
|
If Width = 0 Then
|
||||||
|
Width := CW_USEDEFAULT;
|
||||||
|
If Height = 0 Then
|
||||||
|
Width := CW_USEDEFAULT;
|
||||||
|
Window := CreateWindow(ClsName, StrTemp, WS_OVERLAPPEDWINDOW, Left, Top, Width, Height, Parent, HMENU(Nil), HInstance, Nil);
|
||||||
If Sender Is TForm Then
|
If Sender Is TForm Then
|
||||||
OldClipboardViewer := SetClipboardViewer(Window);
|
OldClipboardViewer := SetClipboardViewer(Window);
|
||||||
|
If FMainForm = Nil Then
|
||||||
|
FMainForm := TForm(Sender);
|
||||||
FParentWindow := Window;
|
FParentWindow := Window;
|
||||||
FMainForm := TForm(Sender);
|
|
||||||
Assert(False, 'Trace:CreateComponent - Form Window Handle Value = $' + IntToHex(Window, 8));
|
Assert(False, 'Trace:CreateComponent - Form Window Handle Value = $' + IntToHex(Window, 8));
|
||||||
Assert(False, 'Trace:Creating a Form - SetProp');
|
Assert(False, 'Trace:Creating a Form - SetProp');
|
||||||
//SetProp(Window, 'Lazarus', @Sender);
|
//SetProp(Window, 'Lazarus', @Sender);
|
||||||
@ -1695,7 +1733,7 @@ Begin
|
|||||||
End;
|
End;
|
||||||
csMemo:
|
csMemo:
|
||||||
Begin
|
Begin
|
||||||
Assert(False, 'Creating a MEMO...');
|
Assert(False, 'Trace:TWin32Object.CreateComponent - Creating a MEMO...');
|
||||||
Flags := Flags Or ES_AUTOHSCROLL Or ES_AUTOVSCROLL Or ES_MULTILINE;
|
Flags := Flags Or ES_AUTOHSCROLL Or ES_AUTOVSCROLL Or ES_MULTILINE;
|
||||||
If (Sender As TMemo).ReadOnly Then
|
If (Sender As TMemo).ReadOnly Then
|
||||||
Flags := Flags Or ES_ReadOnly;
|
Flags := Flags Or ES_ReadOnly;
|
||||||
@ -1707,7 +1745,7 @@ Begin
|
|||||||
ssBoth:
|
ssBoth:
|
||||||
Flags := Flags Or WS_HSCROLL Or WS_VSCROLL;
|
Flags := Flags Or WS_HSCROLL Or WS_VSCROLL;
|
||||||
End;
|
End;
|
||||||
Window := CreateWindow('EDIT', StrTemp, Flags, Left, Top, Width, Height, Parent, HMENU(Nil), HInstance, Nil);
|
Window := CreateWindowEx(WS_EX_CLIENTEDGE, 'EDIT', StrTemp, Flags, Left, Top, Width, Height, Parent, HMENU(Nil), HInstance, Nil);
|
||||||
SetProp(Window, 'Lazarus', @Sender);
|
SetProp(Window, 'Lazarus', @Sender);
|
||||||
SetName(Window, StrTemp);
|
SetName(Window, StrTemp);
|
||||||
End;
|
End;
|
||||||
@ -1906,7 +1944,7 @@ Begin
|
|||||||
StrDispose(StrTemp);
|
StrDispose(StrTemp);
|
||||||
|
|
||||||
Assert(False, 'Trace:Leaving CreateComponent');
|
Assert(False, 'Trace:Leaving CreateComponent');
|
||||||
end;
|
End;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TWin32Object.GetLabel
|
Method: TWin32Object.GetLabel
|
||||||
@ -2232,7 +2270,7 @@ Begin
|
|||||||
SendMessage(Handle, BM_SETCHECK, BST_UNCHECKED, 0);
|
SendMessage(Handle, BM_SETCHECK, BST_UNCHECKED, 0);
|
||||||
End;
|
End;
|
||||||
Else
|
Else
|
||||||
Assert (True, Format('Trace:WARNING:[TWin32Object.SetValue] failed for %S', [Sender.ClassName]));
|
Assert (True, Format('Trace:WARNING: [TWin32Object.SetValue] failed for %S', [Sender.ClassName]));
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -2288,12 +2326,12 @@ begin
|
|||||||
ListView_SetColumn(Handle, I, LVC);
|
ListView_SetColumn(Handle, I, LVC);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
If Sorted Then
|
//If Sorted Then
|
||||||
//ListView_SortItems(Handle, @CompareFunc, 0);
|
//ListView_SortItems(Handle, @CompareFunc, 0);
|
||||||
If MultiSelect Then
|
If MultiSelect Then
|
||||||
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) And Not LVS_SINGLESEL);
|
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) And Not LVS_SINGLESEL);
|
||||||
If ImageList <> Nil Then
|
If Images <> Nil Then
|
||||||
ListView_SetImageList(Handle, ImageList.Handle, LVSIL_NORMAL);
|
ListView_SetImageList(Handle, Images.Handle, LVSIL_NORMAL);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
csProgressBar:
|
csProgressBar:
|
||||||
@ -2659,7 +2697,7 @@ Begin
|
|||||||
|
|
||||||
For I := 0 To WndList.Count - 1 Do
|
For I := 0 To WndList.Count - 1 Do
|
||||||
Begin
|
Begin
|
||||||
If HWND(WndList[I]^) = Window Then
|
If HWND(WndList[I]) = Window Then
|
||||||
Begin
|
Begin
|
||||||
WndListed := True;
|
WndListed := True;
|
||||||
End;
|
End;
|
||||||
@ -2668,7 +2706,7 @@ Begin
|
|||||||
If Not WndListed Then
|
If Not WndListed Then
|
||||||
Begin
|
Begin
|
||||||
WndList.Capacity := WndList.Count;
|
WndList.Capacity := WndList.Count;
|
||||||
WndList.Add(@Window);
|
WndList.Add(Pointer(Window));
|
||||||
End;
|
End;
|
||||||
|
|
||||||
SetProp(Window, 'Name', Value);
|
SetProp(Window, 'Name', Value);
|
||||||
@ -2857,8 +2895,11 @@ Begin
|
|||||||
Data := Pointer(PLMCanvasDrawText(@Sender)^.Font);
|
Data := Pointer(PLMCanvasDrawText(@Sender)^.Font);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
|
||||||
|
Revision 1.5 2002/01/12 22:49:02 lazarus
|
||||||
|
Keith: Fixed compilation problem and some bugs
|
||||||
|
|
||||||
Revision 1.4 2002/01/05 13:16:09 lazarus
|
Revision 1.4 2002/01/05 13:16:09 lazarus
|
||||||
MG: win32 interface update from Keith Bowes
|
MG: win32 interface update from Keith Bowes
|
||||||
|
|
||||||
@ -2872,3 +2913,4 @@ End;
|
|||||||
+ Initial import
|
+ Initial import
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user