MG: added clicked event to TButton, MessageDialog reacts to return key

git-svn-id: trunk@351 -
This commit is contained in:
lazarus 2001-10-16 10:51:10 +00:00
parent 2f68152c95
commit 9c0893ff5e
7 changed files with 157 additions and 25 deletions

View File

@ -58,7 +58,9 @@ type
Procedure SetDefault(Value : Boolean); Procedure SetDefault(Value : Boolean);
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WMDefaultClicked(var Message: TMessage); message LM_CLICKED;
protected protected
procedure AttachSignals; override;
procedure Click; override; procedure Click; override;
//TODO: make this compatible //TODO: make this compatible
procedure CreateWnd; override; procedure CreateWnd; override;
@ -235,6 +237,9 @@ end.
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.10 2001/10/16 10:51:09 lazarus
MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.9 2001/06/14 14:57:58 lazarus Revision 1.9 2001/06/14 14:57:58 lazarus
MG: small bugfixes and less notes MG: small bugfixes and less notes

View File

@ -2,6 +2,21 @@
TButton TButton
******************************************************************************) ******************************************************************************)
{------------------------------------------------------------------------------
Method: TButton.AttachSignals
Params: none
Returns: Nothing
Gets called after the window is created but before the controls are created
and the cached propeties are set.
This is the only place where a call to SetCallBack is made.
------------------------------------------------------------------------------}
procedure TButton.AttachSignals;
begin
inherited AttachSignals;
SetCallback(LM_CLICKED);
end;
{------------------------------------------------------------------------------} {------------------------------------------------------------------------------}
{ TButton Constructor } { TButton Constructor }
{------------------------------------------------------------------------------} {------------------------------------------------------------------------------}
@ -94,9 +109,24 @@ begin
FOnLeave(Self); FOnLeave(Self);
end; end;
{------------------------------------------------------------------------------
Method: TButton.CMDefaultClicked
Params: None
Returns: Nothing
Handles the event when the button Leaves
------------------------------------------------------------------------------}
procedure TButton.WMDefaultClicked(var Message: TMessage);
begin
Click;
end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.4 2001/10/16 10:51:10 lazarus
MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.3 2001/06/06 12:30:41 lazarus Revision 1.3 2001/06/06 12:30:41 lazarus
MG: bugfixes MG: bugfixes

View File

@ -1,6 +1,9 @@
{****************************************************************************** {******************************************************************************
TNBPages TNBPages
******************************************************************************} ******************************************************************************}
{ $DEFINE NOTEBOOK_DEBUG}
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
TNBPages Constructor TNBPages Constructor
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
@ -53,7 +56,13 @@ begin
Msg.Child := TPage(fPageList[Index]); Msg.Child := TPage(fPageList[Index]);
Msg.fCompStyle := fNotebook.fCompStyle; Msg.fCompStyle := fNotebook.fCompStyle;
Msg.Str := S; Msg.Str := S;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TNBPages.Put] A ',Index,' ',S);
{$ENDIF}
CNSendMessage(LM_SETTEXT, fNotebook, @Msg); CNSendMessage(LM_SETTEXT, fNotebook, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TNBPages.Put] B ');
{$ENDIF}
end; end;
end; end;
@ -78,8 +87,10 @@ var
NewPageIndex: integer; NewPageIndex: integer;
begin begin
// Make sure Index is in the range of valid pages to delete // Make sure Index is in the range of valid pages to delete
{$IFDEF NOTEBOOK_DEBUG}
//writeln('TNBPages.Delete A Index=',Index); //writeln('TNBPages.Delete A Index=',Index);
//writeln('TNBPages.Delete B Index=',Index,' fPageList.Count=',fPageList.Count,' fNoteBook.PageIndex=',fNoteBook.PageIndex); writeln('TNBPages.Delete B Index=',Index,' fPageList.Count=',fPageList.Count,' fNoteBook.PageIndex=',fNoteBook.PageIndex);
{$ENDIF}
if (Index >= 0) and if (Index >= 0) and
(Index < fPageList.Count) then (Index < fPageList.Count) then
begin begin
@ -109,7 +120,9 @@ begin
if NewPageIndex>=Index then if NewPageIndex>=Index then
fNoteBook.PageIndex:=NewPageIndex-1; fNoteBook.PageIndex:=NewPageIndex-1;
end; end;
//writeln('TNBPages.Delete END Index=',Index,' fPageList.Count=',fPageList.Count,' fNoteBook.PageIndex=',fNoteBook.PageIndex); {$IFDEF NOTEBOOK_DEBUG}
writeln('TNBPages.Delete END Index=',Index,' fPageList.Count=',fPageList.Count,' fNoteBook.PageIndex=',fNoteBook.PageIndex);
{$ENDIF}
end; end;
@ -148,7 +161,13 @@ begin
Msg.fCompStyle := fNotebook.fCompStyle; Msg.fCompStyle := fNotebook.fCompStyle;
Msg.Page := Index; Msg.Page := Index;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TNBPages.InsertPage] A ',Index);
{$ENDIF}
CNSendMessage(LM_ADDPAGE, fNotebook, @Msg); CNSendMessage(LM_ADDPAGE, fNotebook, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TNBPages.InsertPage] B ');
{$ENDIF}
fNoteBook.PageIndex := Index; fNoteBook.PageIndex := Index;
end; end;
@ -209,7 +228,13 @@ var
n: Integer; n: Integer;
Msg: TLMNotebookEvent; Msg: TLMNotebookEvent;
begin begin
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.CreateWnd] A');
{$ENDIF}
inherited CreateWnd; inherited CreateWnd;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.CreateWnd] B');
{$ENDIF}
Assert(False, 'Trace:[TCustomNotebook.CreateWnd] add pages'); Assert(False, 'Trace:[TCustomNotebook.CreateWnd] add pages');
for n := 0 to FPageList.Count -1 do for n := 0 to FPageList.Count -1 do
@ -220,7 +245,13 @@ begin
Msg.Child := TControl(FPageList[n]); Msg.Child := TControl(FPageList[n]);
Msg.fCompStyle := FCompStyle; Msg.fCompStyle := FCompStyle;
Msg.Page := n; Msg.Page := n;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.CreateWnd] C ',n);
{$ENDIF}
CNSendMessage(LM_ADDPAGE, Self, @Msg); CNSendMessage(LM_ADDPAGE, Self, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.CreateWnd] D');
{$ENDIF}
end; end;
SetShowTabs(FShowTabs); SetShowTabs(FShowTabs);
@ -228,6 +259,9 @@ begin
SetPageIndex(FPageIndex); SetPageIndex(FPageIndex);
SetCallback(LM_CHANGED); SetCallback(LM_CHANGED);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.CreateWnd] END');
{$ENDIF}
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
@ -283,7 +317,13 @@ begin
Msg.Parent := Self; Msg.Parent := Self;
Msg.fCompStyle := fCompStyle; Msg.fCompStyle := fCompStyle;
Msg.Page := Value; Msg.Page := Value;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetPageIndex] A');
{$ENDIF}
CNSendMessage(LM_SETITEMINDEX, Self, @Msg); CNSendMessage(LM_SETITEMINDEX, Self, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetPageIndex] B');
{$ENDIF}
end; end;
end; end;
@ -335,7 +375,13 @@ begin
Msg.Parent := Self; Msg.Parent := Self;
Msg.fCompStyle := fCompStyle; Msg.fCompStyle := fCompStyle;
Msg.ShowTabs := fShowTabs; Msg.ShowTabs := fShowTabs;
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetShowTabs] A');
{$ENDIF}
CNSendMessage(LM_SHOWTABS, Self, @Msg); CNSendMessage(LM_SHOWTABS, Self, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetShowTabs] B');
{$ENDIF}
end; end;
end; end;
@ -353,7 +399,13 @@ begin
Msg.fCompStyle := fCompStyle; Msg.fCompStyle := fCompStyle;
Msg.TabPosition := @fTabPosition; Msg.TabPosition := @fTabPosition;
//InterfaceObject.IntCNSendMessage2(LM_SETTABPOSITION, Self, nil, @fTabPosition); //InterfaceObject.IntCNSendMessage2(LM_SETTABPOSITION, Self, nil, @fTabPosition);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetTabPosition] A');
{$ENDIF}
CNSendMessage(LM_SETTABPOSITION, Self, @Msg); CNSendMessage(LM_SETTABPOSITION, Self, @Msg);
{$IFDEF NOTEBOOK_DEBUG}
writeln('[TCustomNotebook.SetTabPosition] B');
{$ENDIF}
end; end;
end; end;
@ -436,7 +488,11 @@ Begin
Change; Change;
end; end;
else else
writeln('[TCustomNotebook.CNNotify]'); begin
writeln('');
writeln('[TCustomNotebook.CNNotify]');
writeln('');
end;
end; end;
end; end;
@ -444,6 +500,9 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.10 2001/10/16 10:51:10 lazarus
MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.9 2001/09/30 08:34:49 lazarus Revision 1.9 2001/09/30 08:34:49 lazarus
MG: fixed mem leaks and fixed range check errors MG: fixed mem leaks and fixed range check errors

View File

@ -45,6 +45,7 @@ type
constructor Create (AOwner : TComponent); override; constructor Create (AOwner : TComponent); override;
destructor Destroy; override; destructor Destroy; override;
procedure Paint; override; procedure Paint; override;
procedure FormActivate(Sender: TObject);
property TheMessage : string read GetMessage write SetMessage; property TheMessage : string read GetMessage write SetMessage;
property DialogType : TMsgDlgType write SetDialogType; property DialogType : TMsgDlgType write SetDialogType;
property Buttons : TMsgDlgButtons write SetButtons; property Buttons : TMsgDlgButtons write SetButtons;
@ -86,6 +87,7 @@ begin
FButtons := [mbOk]; FButtons := [mbOk];
FRelayoutNeeded := false; FRelayoutNeeded := false;
FUpdateCounter := 0; FUpdateCounter := 0;
OnActivate:=@FormActivate;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
@ -102,6 +104,24 @@ begin
inherited Destroy; inherited Destroy;
end; end;
{------------------------------------------------------------------------------
Method: TMessageBox.FormActivate
Params: ---
Returns: Nothing
------------------------------------------------------------------------------}
procedure TMessageBox.FormActivate(Sender: TObject);
var i: integer;
begin
for i:=0 to ComponentCount-1 do begin
if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Default) then begin
// TBitBtn(Components[i]).SetFocus;
break;
end;
end;
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
Method: TMessageBox.Paint Method: TMessageBox.Paint
Params: --- Params: ---
@ -231,7 +251,8 @@ var
LabelHeight : integer; LabelHeight : integer;
TempLabel : TLabel; // temporary label components TempLabel : TLabel; // temporary label components
LabelIndex : integer; LabelIndex : integer;
i, j : integer; i, j : integer;
ButtonIndex : integer;
begin begin
if FUpdateCounter>0 then exit; if FUpdateCounter>0 then exit;
@ -257,7 +278,7 @@ begin
reqWidth:=reqBtnWidth; reqWidth:=reqBtnWidth;
if reqWidth < LabelWidth then reqWidth:=LabelWidth; if reqWidth < LabelWidth then reqWidth:=LabelWidth;
LabelLeft := ((reqWidth - LabelWidth) div 2) + cMinLeft; LabelLeft := ((reqWidth - LabelWidth) div 2) + cMinLeft;
ButtonLeft := ((reqWidth - reqBtnWidth) div 2) + cMinLeft + (25 div 2); ButtonLeft := cMinLeft + ((reqWidth - reqBtnWidth) div 2) + (25 div 2);
// set size of form // set size of form
SetBounds(Left,Top,reqWidth+cMinLeft+cLabelSpacing, SetBounds(Left,Top,reqWidth+cMinLeft+cLabelSpacing,
@ -297,8 +318,10 @@ begin
end; end;
// create the buttons // create the buttons
ButtonIndex := -1;
for curBtn := low(TMsgDlgBtn) to high(TMsgDlgBtn) do begin for curBtn := low(TMsgDlgBtn) to high(TMsgDlgBtn) do begin
if curBtn in FButtons then begin if curBtn in FButtons then begin
inc(ButtonIndex);
aButton := TBitBtn.Create(self); aButton := TBitBtn.Create(self);
With aButton do begin With aButton do begin
Parent := Self; Parent := Self;
@ -314,11 +337,20 @@ begin
Glyph := aBitmap; Glyph := aBitmap;
ModalResult := cMbResult[curBtn]; ModalResult := cMbResult[curBtn];
Caption := cMbCaption[curBtn]; Caption := cMbCaption[curBtn];
if ButtonIndex=0 then Default := true;
if curbtn in [mbOK, mbYes] then Default := true; if curbtn in [mbOK, mbYes] then Default := true;
Visible:=true; Visible:=true;
end; end;
end; end;
end; end;
for i:=0 to ComponentCount-1 do begin
if (Components[i] is TBitBtn) and (TBitBtn(Components[i]).Default) then begin
TBitBtn(Components[i]).SetFocus;
break;
end;
end;
FRelayoutNeeded:=false; FRelayoutNeeded:=false;
end; end;
@ -431,6 +463,9 @@ end;
{ {
$Log$ $Log$
Revision 1.7 2001/10/16 10:51:10 lazarus
MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.6 2001/10/07 07:35:28 lazarus Revision 1.6 2001/10/07 07:35:28 lazarus
MG: minor fix MG: minor fix

View File

@ -462,16 +462,15 @@ begin
end; end;
function gtkclickedCB( widget: PGtkWidget; data: gPointer) : GBoolean; cdecl; function gtkclickedCB( widget: PGtkWidget; data: gPointer) : GBoolean; cdecl;
//var var
// Mess : TLMessage; Mess : TLMessage;
begin begin
(* writeln('[gtkclickedCB] ',TObject(Data).ClassName);
Result := True; EventTrace('clicked', data);
EventTrace('clicked', data); Assert(False, Format('Trace:OBSOLETE: [gtkclickedCB] ', []));
Assert(False, Format('Trace:OBSOLETE: [gtkclickedCB] ', [])); Mess.Msg := LM_CLICKED;
Mess.msg := LM_CLICKED; Result:= DeliverMessage(Data, Mess) = 0;
Result:= DeliverMessage(Data, Mess) = 0;
*)
Result := True; Result := True;
end; end;
@ -1157,8 +1156,8 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.36 2001/10/10 17:55:04 lazarus Revision 1.37 2001/10/16 10:51:10 lazarus
MG: fixed caret lost, gtk cleanup, bracket lvls, bookmark saving MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.35 2001/10/09 09:46:58 lazarus Revision 1.35 2001/10/09 09:46:58 lazarus
MG: added codetools, fixed synedit unindent, fixed MCatureHandle MG: added codetools, fixed synedit unindent, fixed MCatureHandle

View File

@ -670,7 +670,7 @@ activate_time : the time at which the activation event occurred.
LM_SETFOCUS: LM_SETFOCUS:
begin begin
writeln('[TgtkObject.IntSendMessage3] ',TObject(Sender).ClassName); writeln('[TgtkObject.IntSendMessage3] LM_SETFOCUS ',TObject(Sender).ClassName);
if GTK_WIDGET_CAN_FOCUS(PgtkWidget(Handle)) then if GTK_WIDGET_CAN_FOCUS(PgtkWidget(Handle)) then
gtk_widget_grab_focus(PgtkWidget(handle)) gtk_widget_grab_focus(PgtkWidget(handle))
else else
@ -1451,7 +1451,6 @@ begin
gFixed := PGTKObject(GetFixedWidget(gObject)); gFixed := PGTKObject(GetFixedWidget(gObject));
if gFixed = nil then gFixed := gObject; if gFixed = nil then gFixed := gObject;
case Msg of case Msg of
LM_SHOWWINDOW : LM_SHOWWINDOW :
begin begin
@ -1499,7 +1498,6 @@ begin
LM_CLICKED : LM_CLICKED :
begin begin
Assert(False, 'Trace:OBSOLETE: [TGTKObject.SetCallback] LM_CLICKED');
ConnectSignal(gObject, 'clicked', @gtkclickedCB); ConnectSignal(gObject, 'clicked', @gtkclickedCB);
end; end;
@ -3094,8 +3092,8 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.61 2001/10/10 17:55:05 lazarus Revision 1.62 2001/10/16 10:51:10 lazarus
MG: fixed caret lost, gtk cleanup, bracket lvls, bookmark saving MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.60 2001/10/09 09:46:59 lazarus Revision 1.60 2001/10/09 09:46:59 lazarus
MG: added codetools, fixed synedit unindent, fixed MCatureHandle MG: added codetools, fixed synedit unindent, fixed MCatureHandle

View File

@ -2314,6 +2314,7 @@ end;
function MessageButtonClicked(Widget : PGtkWidget; data: gPointer) : GBoolean; cdecl; function MessageButtonClicked(Widget : PGtkWidget; data: gPointer) : GBoolean; cdecl;
begin begin
writeln('[MessageButtonClicked] ',Integer(data^),' ',Integer(gtk_object_get_data(PGtkObject(Widget), 'modal_result')));
if Integer(data^) = 0 then if Integer(data^) = 0 then
Integer(data^):= Integer(gtk_object_get_data(PGtkObject(Widget), 'modal_result')); Integer(data^):= Integer(gtk_object_get_data(PGtkObject(Widget), 'modal_result'));
Result:=false; Result:=false;
@ -2411,7 +2412,7 @@ begin
gtk_window_set_modal(PGtkWindow(Dialog), true); gtk_window_set_modal(PGtkWindow(Dialog), true);
gtk_widget_show_all(Dialog); gtk_widget_show_all(Dialog);
while ADialogResult = 0 do begin while ADialogResult = 0 do begin
Application.ProcessMessages; Application.HandleMessage;
end; end;
gtk_widget_destroy(Dialog); gtk_widget_destroy(Dialog);
Result:= ADialogResult; Result:= ADialogResult;
@ -3106,7 +3107,9 @@ begin
then begin then begin
//writeln('> TgtkObject.SetFocus E'); //writeln('> TgtkObject.SetFocus E');
gtk_window_set_focus(PGTKWindow(TopLevel), PGTKWidget(hWND)); gtk_window_set_focus(PGTKWindow(TopLevel), PGTKWidget(hWND));
end; //writeln('> TgtkObject.SetFocus F ',HexStr(Cardinal(GetFocus),8)
//,' ',HexStr(Cardinal(TopLevel),8),' ',HexStr(Cardinal(hWnd),8));
end;
end; end;
//writeln('> TgtkObject.SetFocus End'); //writeln('> TgtkObject.SetFocus End');
end; end;
@ -3493,6 +3496,7 @@ function TgtkObject.StretchBlt(DestDC: HDC; X, Y, Width, Height: Integer;
begin begin
Assert(True, Format('trace:> [TgtkObject.StretchBlt] DestDC:0x%x; X:%d, Y:%d, Width:%d, Height:%d; SrcDC:0x%x; XSrc:%d, YSrc:%d, SrcWidth:%d, SrcHeight:%d; Rop:0x%x', [DestDC, X, Y, Width, Height, SrcDC, XSrc, YSrc, SrcWidth, SrcHeight, Rop])); Assert(True, Format('trace:> [TgtkObject.StretchBlt] DestDC:0x%x; X:%d, Y:%d, Width:%d, Height:%d; SrcDC:0x%x; XSrc:%d, YSrc:%d, SrcWidth:%d, SrcHeight:%d; Rop:0x%x', [DestDC, X, Y, Width, Height, SrcDC, XSrc, YSrc, SrcWidth, SrcHeight, Rop]));
Result := IsValidDC(DestDC) and IsValidDC(SrcDC); Result := IsValidDC(DestDC) and IsValidDC(SrcDC);
//writeln('[TgtkObject.StretchBlt] ',Result);
if Result then begin if Result then begin
gdk_gc_set_function(PDeviceContext(DestDC)^.GC, GDK_COPY); gdk_gc_set_function(PDeviceContext(DestDC)^.GC, GDK_COPY);
// TODO: Add scaling and ROP // TODO: Add scaling and ROP
@ -3505,6 +3509,7 @@ begin
gdk_draw_pixmap(PDeviceContext(DestDC)^.Drawable,PDeviceContext(DestDC)^.GC, gdk_draw_pixmap(PDeviceContext(DestDC)^.Drawable,PDeviceContext(DestDC)^.GC,
PgdkDrawable(pixmapwid^.window), PgdkDrawable(pixmapwid^.window),
XSrc, YSrc, X, Y, SrcWidth, SrcHeight);} XSrc, YSrc, X, Y, SrcWidth, SrcHeight);}
//writeln('[TgtkObject.StretchBlt] B ');
gdk_draw_pixmap(PDeviceContext(DestDC)^.Drawable, gdk_draw_pixmap(PDeviceContext(DestDC)^.Drawable,
PDeviceContext(DestDC)^.GC, PDeviceContext(SrcDC)^.Drawable, PDeviceContext(DestDC)^.GC, PDeviceContext(SrcDC)^.Drawable,
XSrc, YSrc, X, Y, SrcWidth, SrcHeight); XSrc, YSrc, X, Y, SrcWidth, SrcHeight);
@ -3513,6 +3518,7 @@ begin
PDeviceContext(DestDC)^.GC, PDeviceContext(SrcDC)^.Drawable, PDeviceContext(DestDC)^.GC, PDeviceContext(SrcDC)^.Drawable,
XSrc, YSrc, X, Y, SrcWidth, SrcHeight); XSrc, YSrc, X, Y, SrcWidth, SrcHeight);
end; end;
//writeln('[TgtkObject.StretchBlt] C ');
end; end;
Assert(True, Format('trace:< [TgtkObject.StretchBlt] DestDC:0x%x --> %s', [DestDC, BOOL_TEXT[Result]])); Assert(True, Format('trace:< [TgtkObject.StretchBlt] DestDC:0x%x --> %s', [DestDC, BOOL_TEXT[Result]]));
end; end;
@ -3598,8 +3604,8 @@ end;
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.42 2001/10/10 17:55:06 lazarus Revision 1.43 2001/10/16 10:51:10 lazarus
MG: fixed caret lost, gtk cleanup, bracket lvls, bookmark saving MG: added clicked event to TButton, MessageDialog reacts to return key
Revision 1.41 2001/09/30 08:34:52 lazarus Revision 1.41 2001/09/30 08:34:52 lazarus
MG: fixed mem leaks and fixed range check errors MG: fixed mem leaks and fixed range check errors