mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 20:00:25 +02:00
qt intf: fixed TMemo clear from Felipe
git-svn-id: trunk@9273 -
This commit is contained in:
parent
e58dd594be
commit
444e56f095
@ -19,6 +19,7 @@ type
|
|||||||
FUpdating: Boolean; // We're changing Qt Widget
|
FUpdating: Boolean; // We're changing Qt Widget
|
||||||
procedure InternalUpdate;
|
procedure InternalUpdate;
|
||||||
procedure ExternalUpdate(var Astr: WideString; Clear: Boolean = True);
|
procedure ExternalUpdate(var Astr: WideString; Clear: Boolean = True);
|
||||||
|
procedure IsChanged; // OnChange triggered by program action
|
||||||
protected
|
protected
|
||||||
function GetTextStr: string; override;
|
function GetTextStr: string; override;
|
||||||
function GetCount: integer; override;
|
function GetCount: integer; override;
|
||||||
@ -44,15 +45,7 @@ Implementation
|
|||||||
uses qtprivate, LMessages;
|
uses qtprivate, LMessages;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
DelphiOnChange sets Delphi compatibility for OnChange event:
|
Private Method: TQtMemoStrings.InternalUpdate
|
||||||
If defined, OnChange is generated whenever there's a change
|
|
||||||
If undefined, OnChange is generated if change is caused by user action
|
|
||||||
------------------------------------------------------------------------------}
|
|
||||||
|
|
||||||
{$define DelphiOnChange}
|
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
|
||||||
Method: TQtMemoStrings.InternalUpdate
|
|
||||||
Params: None
|
Params: None
|
||||||
Returns: Nothing
|
Returns: Nothing
|
||||||
|
|
||||||
@ -68,28 +61,41 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TQtMemoStrings.ExternalUpdate
|
Private Method: TQtMemoStrings.ExternalUpdate
|
||||||
Params: Astr: Text for Qt Widget; Clear: if we must clear first
|
Params: Astr: Text for Qt Widget; Clear: if we must clear first
|
||||||
Returns: Nothing
|
Returns: Nothing
|
||||||
|
|
||||||
Updates Qt Widget from text - If DelphiOnChange, generates OnChange Event
|
Updates Qt Widget from text - If DelphiOnChange, generates OnChange Event
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
procedure TQtMemoStrings.ExternalUpdate(var Astr: WideString; Clear: Boolean = True);
|
procedure TQtMemoStrings.ExternalUpdate(var Astr: WideString; Clear: Boolean = True);
|
||||||
{$ifdef DelphiOnChange}
|
{var
|
||||||
var
|
Mess: TLMessage;}
|
||||||
Mess: TLMessage;
|
|
||||||
{$endif}
|
|
||||||
begin
|
begin
|
||||||
FUpdating := True;
|
FUpdating := True;
|
||||||
if Clear then
|
if Clear then
|
||||||
QTextEdit_clear(FQtTextEdit);
|
QTextEdit_clear(FQtTextEdit);
|
||||||
QTextEdit_append(FQtTextEdit,@Astr);
|
QTextEdit_append(FQtTextEdit,@Astr);
|
||||||
FUpdating := False;
|
FUpdating := False;
|
||||||
{$ifdef DelphiOnChange}
|
{FillChar(Mess, SizeOf(Mess), #0);
|
||||||
FillChar(Mess, SizeOf(Mess), #0);
|
(FOwner as TCustomMemo).Modified := False;
|
||||||
Mess.Msg := CM_TEXTCHANGED;
|
FOwner.Dispatch(TLMessage(Mess));}
|
||||||
FOwner.Dispatch(TLMessage(Mess));
|
IsChanged;
|
||||||
{$endif}
|
FUpdating := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Private Method: TQtMemoStrings.IsChanged
|
||||||
|
Params: None
|
||||||
|
Returns: Nothing
|
||||||
|
|
||||||
|
Triggers the OnChange Event, with modified set to false
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TQtMemoStrings.IsChanged;
|
||||||
|
begin
|
||||||
|
if Assigned((FOwner as TCustomMemo).OnChange) then begin
|
||||||
|
(FOwner as TCustomMemo).Modified := False;
|
||||||
|
(FOwner as TCustomMemo).OnChange(self);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -201,9 +207,10 @@ begin
|
|||||||
FTextChanged := True;
|
FTextChanged := True;
|
||||||
FillChar(Mess, SizeOf(Mess), #0);
|
FillChar(Mess, SizeOf(Mess), #0);
|
||||||
Mess.Msg := CM_TEXTCHANGED;
|
Mess.Msg := CM_TEXTCHANGED;
|
||||||
|
//(FOwner as TCustomMemo).Modified := True;
|
||||||
FOwner.Dispatch(TLMessage(Mess));
|
FOwner.Dispatch(TLMessage(Mess));
|
||||||
end;
|
end;
|
||||||
Result := False;
|
Result := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -216,9 +223,6 @@ end;
|
|||||||
procedure TQtMemoStrings.Assign(Source: TPersistent);
|
procedure TQtMemoStrings.Assign(Source: TPersistent);
|
||||||
var
|
var
|
||||||
Astr: WideString;
|
Astr: WideString;
|
||||||
{$ifdef DelphiOnChange}
|
|
||||||
Mess: TLMessage;
|
|
||||||
{$endif}
|
|
||||||
begin
|
begin
|
||||||
if (Source=Self) or (Source=nil) then exit;
|
if (Source=Self) or (Source=nil) then exit;
|
||||||
if Source is TStrings then begin
|
if Source is TStrings then begin
|
||||||
@ -227,11 +231,6 @@ begin
|
|||||||
Astr := FStringList.Text;
|
Astr := FStringList.Text;
|
||||||
ExternalUpdate(Astr,True);
|
ExternalUpdate(Astr,True);
|
||||||
FTextChanged := False;
|
FTextChanged := False;
|
||||||
{$ifdef DelphiOnChange}
|
|
||||||
FillChar(Mess, SizeOf(Mess), #0);
|
|
||||||
Mess.Msg := CM_TEXTCHANGED;
|
|
||||||
FOwner.Dispatch(TLMessage(Mess));
|
|
||||||
{$endif}
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
Inherited Assign(Source);
|
Inherited Assign(Source);
|
||||||
@ -245,21 +244,20 @@ end;
|
|||||||
Clears all.
|
Clears all.
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
procedure TQtMemoStrings.Clear;
|
procedure TQtMemoStrings.Clear;
|
||||||
{$ifdef DelphiOnChange}
|
|
||||||
var
|
var
|
||||||
Mess: TLMessage;
|
Mess: TLMessage;
|
||||||
{$endif}
|
|
||||||
begin
|
begin
|
||||||
FUpdating := True;
|
FUpdating := True;
|
||||||
FStringList.Clear;
|
FStringList.Clear;
|
||||||
QTextEdit_clear(FQtTextEdit);
|
QTextEdit_clear(FQtTextEdit);
|
||||||
FTextChanged := False;
|
FTextChanged := False;
|
||||||
FUpdating := False;
|
FUpdating := False;
|
||||||
{$ifdef DelphiOnChange}
|
{FillChar(Mess, SizeOf(Mess), #0);
|
||||||
FillChar(Mess, SizeOf(Mess), #0);
|
FillChar(Mess, SizeOf(Mess), #0);
|
||||||
Mess.Msg := CM_TEXTCHANGED;
|
Mess.Msg := CM_TEXTCHANGED;
|
||||||
FOwner.Dispatch(TLMessage(Mess));
|
(FOwner as TCustomMemo).Modified := False;
|
||||||
{$endif}
|
FOwner.Dispatch(TLMessage(Mess));}
|
||||||
|
IsChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user