mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 06:35:59 +02:00
Fixes to MaxLength. TCustomMemo now has MaxLength, too.
git-svn-id: trunk@2247 -
This commit is contained in:
parent
7a0f1ab4b9
commit
093eee01fa
@ -1864,23 +1864,29 @@ end;
|
|||||||
|
|
||||||
function gtkInsertText( widget: PGtkWidget; char : pChar; NewTextLength : Integer; Position : pgint; data: gPointer) : GBoolean; cdecl;
|
function gtkInsertText( widget: PGtkWidget; char : pChar; NewTextLength : Integer; Position : pgint; data: gPointer) : GBoolean; cdecl;
|
||||||
var
|
var
|
||||||
Msg : TLMInsertText;
|
Memo: TCustomMemo;
|
||||||
I : Integer;
|
CurrLength, CutLength: integer;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
EventTrace('Insert Text', data);
|
|
||||||
|
|
||||||
Msg.Msg := LM_INSERTTEXT;
|
{ GTK does not provide its own max. length for memos
|
||||||
|
we have to do our own. }
|
||||||
|
|
||||||
Msg.NewText := '';
|
if TControl(Data) is TCustomMemo then begin
|
||||||
For I := 0 to NewTextLength - 1 do
|
Memo:= TCustomMemo(Data);
|
||||||
Msg.NewText := Msg.Newtext+Char[i];
|
if Memo.MaxLength < 0 then Exit;
|
||||||
|
|
||||||
//Msg.NewText := String(Char);
|
CurrLength:= gtk_text_get_length(PGtkText(widget));
|
||||||
Msg.Length := NewTextLength;
|
if CurrLength + NewTextLength <= Memo.MaxLength then Exit;
|
||||||
Msg.Position := Position^;
|
|
||||||
Msg.Userdata := data;
|
CutLength:= CurrLength + NewTextLength - Memo.MaxLength;
|
||||||
Result:= DeliverMessage(Data, Msg) = 0;
|
|
||||||
|
if NewTextLength - CutLength > 0 then begin
|
||||||
|
gtk_editable_insert_text(PGtkEditable(widget), char, NewTextLength - CutLength, Position);
|
||||||
|
end;
|
||||||
|
|
||||||
|
gtk_signal_emit_stop_by_name(PGtkObject(widget), 'insert_text');
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function gtkDeleteText( widget: PGtkWidget; Startpos, EndPos : Integer; data: gPointer) : GBoolean; cdecl;
|
function gtkDeleteText( widget: PGtkWidget; Startpos, EndPos : Integer; data: gPointer) : GBoolean; cdecl;
|
||||||
@ -2539,6 +2545,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.158 2002/11/16 11:22:57 mbukovjan
|
||||||
|
Fixes to MaxLength. TCustomMemo now has MaxLength, too.
|
||||||
|
|
||||||
Revision 1.157 2002/11/05 20:03:42 lazarus
|
Revision 1.157 2002/11/05 20:03:42 lazarus
|
||||||
MG: implemented hints
|
MG: implemented hints
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user