mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 12:29:27 +01:00 
			
		
		
		
	lcl: implement TEdit.Alignment (patch of Zeljan with small mine modifications)
git-svn-id: trunk@18139 -
This commit is contained in:
		
							parent
							
								
									e72f2b3cf9
								
							
						
					
					
						commit
						aa6305c562
					
				@ -34,6 +34,7 @@ begin
 | 
			
		||||
  TWSCustomEditClass(WidgetSetClass).SetMaxLength(Self, FMaxLength);
 | 
			
		||||
  TWSCustomEditClass(WidgetSetClass).SetPasswordChar(Self, FPasswordChar);
 | 
			
		||||
  TWSCustomEditClass(WidgetSetClass).SetReadOnly(Self, FReadOnly);
 | 
			
		||||
  TWSCustomEditClass(WidgetSetClass).SetAlignment(Self, FAlignment);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
{------------------------------------------------------------------------------
 | 
			
		||||
@ -503,5 +504,15 @@ begin
 | 
			
		||||
  Result := TWSCustomEditClass(WidgetSetClass).GetCaretPos(Self);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TCustomEdit.SetAlignment(const AValue: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if FAlignment = AValue then
 | 
			
		||||
    exit;
 | 
			
		||||
  FAlignment := AValue;
 | 
			
		||||
  if HandleAllocated then
 | 
			
		||||
    TWSCustomEditClass(WidgetSetClass).SetAlignment(Self, FAlignment);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// included by stdctrls.pp
 | 
			
		||||
 | 
			
		||||
@ -75,15 +75,6 @@ begin
 | 
			
		||||
  FHorzScrollBar:=AValue;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TCustomMemo.SetAlignment(const AValue: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if FAlignment = AValue then
 | 
			
		||||
    exit;
 | 
			
		||||
  FAlignment := AValue;
 | 
			
		||||
  if HandleAllocated then
 | 
			
		||||
    TWSCustomMemoClass(WidgetSetClass).SetAlignment(Self, AValue);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
{------------------------------------------------------------------------------
 | 
			
		||||
  Setter for CaretPos
 | 
			
		||||
 ------------------------------------------------------------------------------}
 | 
			
		||||
 | 
			
		||||
@ -145,7 +145,7 @@ type
 | 
			
		||||
    class function  GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
 | 
			
		||||
 | 
			
		||||
    class procedure AppendText(const ACustomMemo: TCustomMemo; const AText: string); override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle); override;
 | 
			
		||||
    class procedure SetWordWrap(const ACustomMemo: TCustomMemo; const NewWordWrap: boolean); override;
 | 
			
		||||
  end;
 | 
			
		||||
@ -909,12 +909,12 @@ end;
 | 
			
		||||
 | 
			
		||||
  Sets the alignment of memo in Carbon interface
 | 
			
		||||
 ------------------------------------------------------------------------------}
 | 
			
		||||
class procedure TCarbonWSCustomMemo.SetAlignment(const ACustomMemo: TCustomMemo;
 | 
			
		||||
class procedure TCarbonWSCustomMemo.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if not CheckHandle(ACustomMemo, Self, 'SetAlignment') then Exit;
 | 
			
		||||
  if not CheckHandle(ACustomEdit, Self, 'SetAlignment') then Exit;
 | 
			
		||||
 | 
			
		||||
  TCarbonMemo(ACustomMemo.Handle).SetAlignment(AAlignment);
 | 
			
		||||
  TCarbonMemo(ACustomEdit.Handle).SetAlignment(AAlignment);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
{------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@ -147,13 +147,13 @@ begin
 | 
			
		||||
  Result := TGtk2MemoStrings.Create(TextView, ACustomMemo);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TGtk2WSCustomMemo.SetAlignment(const ACustomMemo: TCustomMemo;
 | 
			
		||||
class procedure TGtk2WSCustomMemo.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
var
 | 
			
		||||
  TextView: PGtkTextView;
 | 
			
		||||
begin
 | 
			
		||||
  TextView := PGtkTextView(GetWidgetInfo(Pointer(ACustomMemo.Handle), False)^.CoreWidget);
 | 
			
		||||
  gtk_text_view_set_justification(TextView, aGtkJustification[ACustomMemo.Alignment]);
 | 
			
		||||
  TextView := PGtkTextView(GetWidgetInfo(Pointer(ACustomEdit.Handle), False)^.CoreWidget);
 | 
			
		||||
  gtk_text_view_set_justification(TextView, aGtkJustification[AAlignment]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -177,6 +177,7 @@ type
 | 
			
		||||
    class procedure SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char); override;
 | 
			
		||||
    class procedure SetSelStart(const ACustomEdit: TCustomEdit; NewStart: integer); override;
 | 
			
		||||
    class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
  { TGtk2WSCustomMemo }
 | 
			
		||||
@ -191,7 +192,7 @@ type
 | 
			
		||||
    class function  GetSelLength(const ACustomEdit: TCustomEdit): integer; override;
 | 
			
		||||
    class function  GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
 | 
			
		||||
 | 
			
		||||
    class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetColor(const AWinControl: TWinControl); override;
 | 
			
		||||
    class procedure SetFont(const AWinControl: TWinControl;const AFont : TFont); override;
 | 
			
		||||
    class procedure SetSelStart(const ACustomEdit: TCustomEdit; NewStart: integer); override;
 | 
			
		||||
@ -938,6 +939,21 @@ begin
 | 
			
		||||
    Entry^.current_pos + NewLength);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TGtk2WSCustomEdit.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
var
 | 
			
		||||
  Entry: PGtkEntry;
 | 
			
		||||
  Alignment: GFloat;
 | 
			
		||||
begin
 | 
			
		||||
  Entry := PGtkEntry(ACustomEdit.Handle);
 | 
			
		||||
  case AAlignment of
 | 
			
		||||
    taLeftJustify: Alignment := 0;
 | 
			
		||||
    taRightJustify: Alignment := 1;
 | 
			
		||||
    taCenter: Alignment := 0.5;
 | 
			
		||||
  end;
 | 
			
		||||
  gtk_entry_set_alignment(Entry, Alignment);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TGtk2WSCustomComboBox.ReCreateCombo(
 | 
			
		||||
  const ACustomComboBox: TCustomComboBox; const AWithEntry: Boolean;
 | 
			
		||||
  const AWidgetInfo: PWidgetInfo);
 | 
			
		||||
 | 
			
		||||
@ -546,6 +546,7 @@ type
 | 
			
		||||
  protected
 | 
			
		||||
    function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
 | 
			
		||||
  public
 | 
			
		||||
    function getAlignment: QtAlignment;
 | 
			
		||||
    function getCursorPosition: Integer;
 | 
			
		||||
    function getMaxLength: Integer;
 | 
			
		||||
    function getSelectedText: WideString;
 | 
			
		||||
@ -556,6 +557,7 @@ type
 | 
			
		||||
    function isUndoAvailable: Boolean;
 | 
			
		||||
    function hasSelectedText: Boolean;
 | 
			
		||||
    procedure selectAll;
 | 
			
		||||
    procedure setAlignment(const AAlignment: QtAlignment);
 | 
			
		||||
    procedure setColor(const Value: PQColor); override;
 | 
			
		||||
    procedure setTextColor(const Value: PQColor); override;
 | 
			
		||||
    procedure setCursorPosition(const AValue: Integer);
 | 
			
		||||
@ -587,6 +589,7 @@ type
 | 
			
		||||
  public
 | 
			
		||||
    FList: TStrings;
 | 
			
		||||
    procedure append(AStr: WideString);
 | 
			
		||||
    function getAlignment: QtAlignment;
 | 
			
		||||
    function getMaxLength: Integer;
 | 
			
		||||
    function getText: WideString; override;
 | 
			
		||||
    function getTextStatic: Boolean; override;
 | 
			
		||||
@ -5026,6 +5029,11 @@ begin
 | 
			
		||||
  Result := QLineEdit_create();
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TQtLineEdit.getAlignment: QtAlignment;
 | 
			
		||||
begin
 | 
			
		||||
  Result := QLineEdit_alignment(QLineEditH(Widget));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TQtLineEdit.getCursorPosition: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  Result := QLineEdit_cursorPosition(QLineEditH(Widget));
 | 
			
		||||
@ -5087,6 +5095,11 @@ begin
 | 
			
		||||
  QLineEdit_selectAll(QLineEditH(Widget));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TQtLineEdit.setAlignment(const AAlignment: QtAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  QLineEdit_setAlignment(QLineEditH(Widget), AAlignment);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TQtLineEdit.AttachEvents;
 | 
			
		||||
var
 | 
			
		||||
  Method: TMethod;
 | 
			
		||||
@ -5249,6 +5262,11 @@ begin
 | 
			
		||||
  QTextEdit_append(QTextEditH(Widget), @AStr);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TQtTextEdit.getAlignment: QtAlignment;
 | 
			
		||||
begin
 | 
			
		||||
  Result := QTextEdit_alignment(QTextEditH(Widget));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TQtTextEdit.getMaxLength: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  {$note implement}
 | 
			
		||||
 | 
			
		||||
@ -135,6 +135,7 @@ type
 | 
			
		||||
  published
 | 
			
		||||
    class function CreateHandle(const AWinControl: TWinControl;
 | 
			
		||||
          const AParams: TCreateParams): HWND; override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
    class function GetCanUndo(const ACustomEdit: TCustomEdit): Boolean; override;
 | 
			
		||||
    class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); override;
 | 
			
		||||
    class procedure SetMaxLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
 | 
			
		||||
@ -155,8 +156,8 @@ type
 | 
			
		||||
    class function CreateHandle(const AWinControl: TWinControl;
 | 
			
		||||
          const AParams: TCreateParams): HWND; override;
 | 
			
		||||
    class procedure AppendText(const ACustomMemo: TCustomMemo; const AText: string); override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); override;
 | 
			
		||||
    class function GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle); override;
 | 
			
		||||
    class procedure SetWantReturns(const ACustomMemo: TCustomMemo; const NewWantReturns: boolean); override;
 | 
			
		||||
    class procedure SetWantTabs(const ACustomMemo: TCustomMemo; const NewWantTabs: boolean); override;
 | 
			
		||||
@ -588,16 +589,15 @@ var
 | 
			
		||||
begin
 | 
			
		||||
  QtTextEdit := TQtTextEdit.Create(AWinControl, AParams);
 | 
			
		||||
  QtTextEdit.AttachEvents;
 | 
			
		||||
  
 | 
			
		||||
  QtTextEdit.setAlignment(AlignmentMap[TCustomMemo(AWinControl).Alignment]);
 | 
			
		||||
 | 
			
		||||
  QtTextEdit.setReadOnly(TCustomMemo(AWinControl).ReadOnly);
 | 
			
		||||
 | 
			
		||||
  QtTextEdit.setLineWrapMode(WordWrapMap[TCustomMemo(AWinControl).WordWrap]);
 | 
			
		||||
 | 
			
		||||
  // create our FList helper
 | 
			
		||||
  QtTextEdit.FList := TQtMemoStrings.Create(QTextEditH(QtTextEdit.Widget), TCustomMemo(AWinControl));
 | 
			
		||||
  QtTextEdit.setScrollStyle(TCustomMemo(AWinControl).ScrollBars);
 | 
			
		||||
  QtTextEdit.setTabChangesFocus(not TCustomMemo(AWinControl).WantTabs);
 | 
			
		||||
  QtTextEdit.setAlignment(AlignmentMap[TCustomMemo(AWinControl).Alignment]);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Result := TLCLIntfHandle(QtTextEdit);
 | 
			
		||||
end;
 | 
			
		||||
@ -617,15 +617,6 @@ begin
 | 
			
		||||
  TQtTextEdit(ACustomMemo.Handle).append(AStr);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TQtWSCustomMemo.SetAlignment(const ACustomMemo: TCustomMemo;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if not WSCheckHandleAllocated(ACustomMemo, 'SetAlignment') then
 | 
			
		||||
    Exit;
 | 
			
		||||
  TQtTextEdit(ACustomMemo.Handle).setAlignment(AlignmentMap[AAlignment]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{------------------------------------------------------------------------------
 | 
			
		||||
  Method: TQtWSCustomMemo.GetStrings
 | 
			
		||||
  Params:  None
 | 
			
		||||
@ -646,6 +637,14 @@ begin
 | 
			
		||||
  Result := TQtTextEdit(ACustomMemo.Handle).FList;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TQtWSCustomMemo.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if not WSCheckHandleAllocated(ACustomEdit, 'SetAlignment') then
 | 
			
		||||
    Exit;
 | 
			
		||||
  TQtTextEdit(ACustomEdit.Handle).setAlignment(AlignmentMap[AAlignment]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TQtWSCustomMemo.SetScrollbars(const ACustomMemo: TCustomMemo;
 | 
			
		||||
  const NewScrollbars: TScrollStyle);
 | 
			
		||||
begin
 | 
			
		||||
@ -709,11 +708,20 @@ var
 | 
			
		||||
  QtLineEdit: TQtLineEdit;
 | 
			
		||||
begin
 | 
			
		||||
  QtLineEdit := TQtLineEdit.Create(AWinControl, AParams);
 | 
			
		||||
  QtLineEdit.setAlignment(AlignmentMap[TCustomEdit(AWinControl).Alignment]);
 | 
			
		||||
  QtLineEdit.AttachEvents;
 | 
			
		||||
 | 
			
		||||
  Result := TLCLIntfHandle(QtLineEdit);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TQtWSCustomEdit.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  if not WSCheckHandleAllocated(ACustomEdit, 'SetAlignment') then
 | 
			
		||||
    Exit;
 | 
			
		||||
  TQtLineEdit(ACustomEdit.Handle).setAlignment(AlignmentMap[AAlignment]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class function TQtWSCustomEdit.GetCanUndo(const ACustomEdit: TCustomEdit): Boolean;
 | 
			
		||||
var
 | 
			
		||||
  Widget: TQtWidget;
 | 
			
		||||
 | 
			
		||||
@ -157,6 +157,7 @@ type
 | 
			
		||||
    class function GetMaxLength(const ACustomEdit: TCustomEdit): integer; {override;}
 | 
			
		||||
    class function GetText(const AWinControl: TWinControl; var AText: string): boolean; override;
 | 
			
		||||
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint); override;
 | 
			
		||||
    class procedure SetCharCase(const ACustomEdit: TCustomEdit; NewCase: TEditCharCase); override;
 | 
			
		||||
    class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); override;
 | 
			
		||||
@ -180,7 +181,6 @@ type
 | 
			
		||||
    class function  GetCaretPos(const ACustomEdit: TCustomEdit): TPoint; override;
 | 
			
		||||
    class function  GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
 | 
			
		||||
 | 
			
		||||
    class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); override;
 | 
			
		||||
    class procedure SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint); override;
 | 
			
		||||
    class procedure SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle); override;
 | 
			
		||||
    class procedure SetText(const AWinControl: TWinControl; const AText: string); override;
 | 
			
		||||
@ -288,20 +288,20 @@ procedure EditSetSelLength(WinHandle: HWND; NewLength: integer);
 | 
			
		||||
implementation
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  AlignmentMap: array[TAlignment] of DWORD =
 | 
			
		||||
  AlignmentMap: array[TAlignment] of DWord =
 | 
			
		||||
  (
 | 
			
		||||
{taLeftJustify } ES_LEFT,
 | 
			
		||||
{taRightJustify} ES_RIGHT,
 | 
			
		||||
{taCenter      } ES_CENTER
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  AlignmentToStaticTextFlags: array[TAlignment] of dword =
 | 
			
		||||
  AlignmentToStaticTextFlags: array[TAlignment] of DWord =
 | 
			
		||||
  (
 | 
			
		||||
    SS_LEFT,
 | 
			
		||||
    SS_RIGHT,
 | 
			
		||||
    SS_CENTER
 | 
			
		||||
  );
 | 
			
		||||
  BorderToStaticTextFlags: array[TStaticBorderStyle] of dword =
 | 
			
		||||
  BorderToStaticTextFlags: array[TStaticBorderStyle] of DWord =
 | 
			
		||||
  (
 | 
			
		||||
    0,
 | 
			
		||||
    WS_BORDER, // generic border
 | 
			
		||||
@ -817,7 +817,7 @@ end;
 | 
			
		||||
 | 
			
		||||
class procedure TWin32WSCustomComboBox.SetStyle(const ACustomComboBox: TCustomComboBox; NewStyle: TComboBoxStyle);
 | 
			
		||||
var
 | 
			
		||||
  CurrentStyle: dword;
 | 
			
		||||
  CurrentStyle: DWord;
 | 
			
		||||
begin
 | 
			
		||||
  CurrentStyle := GetWindowLong(ACustomComboBox.Handle, GWL_STYLE);
 | 
			
		||||
  if (CurrentStyle and ComboBoxStylesMask) =
 | 
			
		||||
@ -1022,8 +1022,11 @@ begin
 | 
			
		||||
  with Params do
 | 
			
		||||
  begin
 | 
			
		||||
    if (AWinControl is TCustomEdit) then
 | 
			
		||||
    begin
 | 
			
		||||
      if TCustomEdit(AWinControl).BorderStyle=bsSingle then
 | 
			
		||||
        FlagsEx := FlagsEx or WS_EX_CLIENTEDGE;
 | 
			
		||||
      Flags := Flags or AlignmentMap[TCustomEdit(AWinControl).Alignment];
 | 
			
		||||
    end;
 | 
			
		||||
    pClassName := @EditClsName[0];
 | 
			
		||||
    WindowTitle := StrCaption;
 | 
			
		||||
    Flags := Flags or ES_AUTOHSCROLL;
 | 
			
		||||
@ -1077,6 +1080,17 @@ begin
 | 
			
		||||
  AText := GetControlText(AWinControl.Handle);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWin32WSCustomEdit.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
var
 | 
			
		||||
  CurrentStyle: DWord;
 | 
			
		||||
begin
 | 
			
		||||
  CurrentStyle := GetWindowLong(ACustomEdit.Handle, GWL_STYLE);
 | 
			
		||||
  if (CurrentStyle and 3) = AlignmentMap[AAlignment] then
 | 
			
		||||
    Exit;
 | 
			
		||||
  RecreateWnd(ACustomEdit);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWin32WSCustomEdit.SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint);
 | 
			
		||||
begin
 | 
			
		||||
  Windows.SendMessageW(ACustomEdit.Handle, EM_SETSEL, NewPos.X, NewPos.X);
 | 
			
		||||
@ -1224,13 +1238,6 @@ begin
 | 
			
		||||
  Result.Y := Windows.SendMessageW(ACustomEdit.Handle, EM_LINEFROMCHAR, BufferX, 0);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWin32WSCustomMemo.SetAlignment(const ACustomMemo: TCustomMemo;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
  // SetWidowLong is not working here
 | 
			
		||||
  RecreateWnd(ACustomMemo);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWin32WSCustomMemo.SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint);
 | 
			
		||||
var
 | 
			
		||||
  CharIndex: Longword;
 | 
			
		||||
 | 
			
		||||
@ -671,6 +671,7 @@ type
 | 
			
		||||
 | 
			
		||||
  TCustomEdit = class(TWinControl)
 | 
			
		||||
  private
 | 
			
		||||
    FAlignment: TAlignment;
 | 
			
		||||
    FAutoSelect: Boolean;
 | 
			
		||||
    FAutoSelected: Boolean;
 | 
			
		||||
    FCharCase: TEditCharCase;
 | 
			
		||||
@ -701,6 +702,7 @@ type
 | 
			
		||||
    function GetSelLength: integer; virtual;
 | 
			
		||||
    function GetSelStart: integer; virtual;
 | 
			
		||||
    function GetSelText: string; virtual;
 | 
			
		||||
    procedure SetAlignment(const AValue: TAlignment);
 | 
			
		||||
    procedure SetCaretPos(const Value: TPoint); virtual;
 | 
			
		||||
    procedure SetEchoMode(Val: TEchoMode); virtual;
 | 
			
		||||
    procedure SetReadOnly(Value: Boolean); virtual;
 | 
			
		||||
@ -726,6 +728,7 @@ type
 | 
			
		||||
    procedure PasteFromClipboard; virtual;
 | 
			
		||||
    procedure Undo; virtual;
 | 
			
		||||
  public
 | 
			
		||||
    property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
 | 
			
		||||
    property BorderStyle default bsSingle;
 | 
			
		||||
    property CanUndo: Boolean read GetCanUndo;
 | 
			
		||||
    property CaretPos: TPoint read GetCaretPos write SetCaretPos;
 | 
			
		||||
@ -767,7 +770,6 @@ type
 | 
			
		||||
 | 
			
		||||
  TCustomMemo = class(TCustomEdit)
 | 
			
		||||
  private
 | 
			
		||||
    FAlignment: TAlignment;
 | 
			
		||||
    FHorzScrollBar: TMemoScrollBar;
 | 
			
		||||
    FLines: TStrings;
 | 
			
		||||
    FScrollBars: TScrollStyle;
 | 
			
		||||
@ -785,7 +787,6 @@ type
 | 
			
		||||
    procedure RealSetText(const Value: TCaption); override;
 | 
			
		||||
    function GetCachedText(var CachedText: TCaption): boolean; override;
 | 
			
		||||
    function GetCaretPos: TPoint; override;
 | 
			
		||||
    procedure SetAlignment(const AValue: TAlignment);
 | 
			
		||||
    procedure SetCaretPos(const Value: TPoint); override;
 | 
			
		||||
    procedure SetLines(const Value: TStrings);
 | 
			
		||||
    procedure SetSelText(const Val: string); override;
 | 
			
		||||
@ -803,7 +804,6 @@ type
 | 
			
		||||
    destructor Destroy; override;
 | 
			
		||||
    procedure Append(const Value: String);
 | 
			
		||||
  public
 | 
			
		||||
    property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify;
 | 
			
		||||
    property Lines: TStrings read FLines write SetLines;
 | 
			
		||||
    //property Font: TFont read FFont write FFont;
 | 
			
		||||
    property HorzScrollBar: TMemoScrollBar
 | 
			
		||||
@ -825,6 +825,7 @@ type
 | 
			
		||||
  published
 | 
			
		||||
    property Action;
 | 
			
		||||
    property Align;
 | 
			
		||||
    property Alignment;
 | 
			
		||||
    property Anchors;
 | 
			
		||||
    property AutoSize;
 | 
			
		||||
    property AutoSelect;
 | 
			
		||||
 | 
			
		||||
@ -144,6 +144,7 @@ type
 | 
			
		||||
    class function GetSelStart(const ACustomEdit: TCustomEdit): integer; virtual;
 | 
			
		||||
    class function GetSelLength(const ACustomEdit: TCustomEdit): integer; virtual;
 | 
			
		||||
 | 
			
		||||
    class procedure SetAlignment(const ACustomEdit: TCustomEdit; const AAlignment: TAlignment); virtual;
 | 
			
		||||
    class procedure SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint); virtual;
 | 
			
		||||
    class procedure SetCharCase(const ACustomEdit: TCustomEdit; NewCase: TEditCharCase); virtual;
 | 
			
		||||
    class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); virtual;
 | 
			
		||||
@ -164,7 +165,6 @@ type
 | 
			
		||||
    class procedure AppendText(const ACustomMemo: TCustomMemo; const AText: string); virtual;
 | 
			
		||||
    class function  GetStrings(const ACustomMemo: TCustomMemo): TStrings; virtual;
 | 
			
		||||
    class procedure FreeStrings(var AStrings: TStrings); virtual;
 | 
			
		||||
    class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); virtual;
 | 
			
		||||
    class procedure SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle); virtual;
 | 
			
		||||
    class procedure SetWantTabs(const ACustomMemo: TCustomMemo; const NewWantTabs: boolean); virtual;
 | 
			
		||||
    class procedure SetWantReturns(const ACustomMemo: TCustomMemo; const NewWantReturns: boolean); virtual;
 | 
			
		||||
@ -450,6 +450,12 @@ begin
 | 
			
		||||
  result := 0;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWSCustomEdit.SetAlignment(const ACustomEdit: TCustomEdit;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWSCustomEdit.SetCaretPos(const ACustomEdit: TCustomEdit; const NewPos: TPoint);
 | 
			
		||||
begin
 | 
			
		||||
 | 
			
		||||
@ -505,11 +511,6 @@ begin
 | 
			
		||||
  AStrings := nil;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWSCustomMemo.SetAlignment(const ACustomMemo: TCustomMemo;
 | 
			
		||||
  const AAlignment: TAlignment);
 | 
			
		||||
begin
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
class procedure TWSCustomMemo.SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle);
 | 
			
		||||
begin
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user