qt intf: memo and edit Get/SetText from Giuliano Colla

git-svn-id: trunk@9248 -
This commit is contained in:
mattias 2006-05-08 08:19:08 +00:00
parent a0a59b26c9
commit f53bc8cfc6
3 changed files with 122 additions and 9 deletions

View File

@ -1690,6 +1690,7 @@ constructor TQtTextEdit.Create(const AWinControl: TWinControl;
var
Parent: QWidgetH;
Str: WideString;
begin
// Initializes the properties
LCLObject := AWinControl;
@ -1699,12 +1700,17 @@ begin
WriteLn('Calling QTextEdit_create');
{$endif}
Parent := TQtWidget(AWinControl.Parent.Handle).Widget;
Str := WideString((AWinControl as TCustomMemo).Lines.Text);
Str := (AWinControl as TCustomMemo).Text;
Widget := QTextEdit_create(@Str, Parent);
// Sets it´ s initial properties
QWidget_setGeometry(Widget, AWinControl.Left, AWinControl.Top,
AWinControl.Width, AWinControl.Height);
QTextEdit_setReadOnly(QTextEditH(Widget),(AWinControl as TCustomMemo).ReadOnly);
if (AWinControl as TCustomMemo).WordWrap then
QTextEdit_setLineWrapMode(QTextEditH(Widget),QTextEditWidgetWidth)
else
QTextEdit_setLineWrapMode(QTextEditH(Widget),QTextEditNoWrap);
end;
{------------------------------------------------------------------------------

View File

@ -70,6 +70,9 @@ type
class procedure SetSize(const AWinControl: TWinControl; const AWidth, AHeight: Integer); override;
class procedure ShowHide(const AWinControl: TWinControl); override; //TODO: rename to SetVisible(control, visible)
class function GetText(const AWinControl: TWinControl; var AText: String): Boolean; override;
class procedure SetText(const AWinControl: TWinControl; const AText: string); override;
{ class procedure AddControl(const AControl: TControl); override;
class procedure SetBorderStyle(const AWinControl: TWinControl; const ABorderStyle: TBorderStyle); override;
@ -239,6 +242,42 @@ begin
{$endif}
end;
class function TQtWSWinControl.GetText(const AWinControl: TWinControl; var AText: String): Boolean;
var
AString: WideString;
begin
Result := True;
if AWinControl = nil then exit;
if not AWinControl.HandleAllocated then exit;
case AWinControl.fCompStyle of
//csComboBox:
csEdit,csSpinedit:
QLineEdit_text(QLineEditH(TQtWidget(AWinControl.Handle).Widget),@AString);
csMemo:
QTextEdit_toPlainText(QTextEditH(TQtWidget(AWinControl.Handle).Widget),@AString);
else
Result := false;
end;
if Result then AText := AString;
end;
class procedure TQtWSWinControl.SetText(const AWinControl: TWinControl; const AText: string);
var
AString: WideString;
begin
if AWinControl = nil then exit;
if not AWinControl.HandleAllocated then exit;
AString := AText;
case AWinControl.fCompStyle of
csEdit,csSpinedit:
QLineEdit_setText(QLineEditH(TQtWidget(AWinControl.Handle).Widget),@AString);
//csStaticText:
csMemo:
QTextEdit_append(QTextEditH(TQtWidget(AWinControl.Handle).Widget),@AString);
end;
end;
initialization
////////////////////////////////////////////////////

View File

@ -154,10 +154,10 @@ type
const AParams: TCreateParams): HWND; override;
class procedure DestroyHandle(const AWinControl: TWinControl); override;
public
// class procedure AppendText(const ACustomMemo: TCustomMemo; const AText: string); virtual;
// class function GetStrings(const ACustomMemo: TCustomMemo): TStrings; virtual;
class procedure AppendText(const ACustomMemo: TCustomMemo; const AText: string); override;
class function GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
// class procedure SetScrollbars(const ACustomMemo: TCustomMemo; const NewScrollbars: TScrollStyle); virtual;
// class procedure SetWordWrap(const ACustomMemo: TCustomMemo; const NewWordWrap: boolean); virtual;
class procedure SetWordWrap(const ACustomMemo: TCustomMemo; const NewWordWrap: boolean); override;
public
{ class function GetSelStart(const ACustomEdit: TCustomEdit): integer; override;
class function GetSelLength(const ACustomEdit: TCustomEdit): integer; override;
@ -166,8 +166,8 @@ type
class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); override;
class procedure SetMaxLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
class procedure SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char); override;
class procedure SetReadOnly(const ACustomEdit: TCustomEdit; NewReadOnly: boolean); override;
class procedure SetSelStart(const ACustomEdit: TCustomEdit; NewStart: integer); override;
} class procedure SetReadOnly(const ACustomEdit: TCustomEdit; NewReadOnly: boolean); override;
{ class procedure SetSelStart(const ACustomEdit: TCustomEdit; NewStart: integer); override;
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
class procedure GetPreferredSize(const AWinControl: TWinControl;
@ -278,9 +278,16 @@ type
public
end;
{$DEFINE MEMOHEADER}
{$I qtmemostrings.inc}
{$UNDEF MEMOHEADER}
implementation
uses LMessages;
{$I qtmemostrings.inc}
{ TQtWSCustomMemo }
{------------------------------------------------------------------------------
@ -294,7 +301,6 @@ var
QtTextEdit: TQtTextEdit;
begin
QtTextEdit := TQtTextEdit.Create(AWinControl, AParams);
Result := THandle(QtTextEdit);
end;
@ -308,7 +314,69 @@ begin
TQtTextEdit(AWinControl.Handle).Free;
end;
{ TQtWSCustomEdit }
{------------------------------------------------------------------------------
Method: TQtWSCustomMemo.AppendText
Params: None
Returns: Nothing
------------------------------------------------------------------------------}
class procedure TQtWSCustomMemo.AppendText(const ACustomMemo: TCustomMemo; const AText: string);
var
Astr: WideString;
begin
if Length(AText) = 0 then
exit;
Astr := WideString(AText);
//QTextEdit_append(QTextEditH(ACustomMemo.Handle),@Astr);
QTextEdit_append(QTextEditH(TQtWidget(ACustomMemo.Handle).Widget),@Astr);
end;
{------------------------------------------------------------------------------
Method: TQtWSCustomMemo.GetStrings
Params: None
Returns: Memo Contents as TStrings
------------------------------------------------------------------------------}
class function TQtWSCustomMemo.GetStrings(const ACustomMemo: TCustomMemo): TStrings;
var
TextEditH: QTextEditH;
begin
TextEditH := QTextEditH((TQtWidget(ACustomMemo.Handle).Widget)); // set to proper type
Result := TQtMemoStrings.Create(TextEditH,ACustomMemo);
end;
{------------------------------------------------------------------------------
Method: TQtWSCustomMemo.SetWordWrap
Params: NewWordWrap boolean
Returns: Nothing
------------------------------------------------------------------------------}
class procedure TQtWSCustomMemo.SetWordWrap(const ACustomMemo: TCustomMemo; const NewWordWrap: boolean);
var
TextEditH: QTextEditH;
begin
TextEditH := QTextEditH((TQtWidget(ACustomMemo.Handle).Widget)); // set to proper type
if NewWordWrap then
QTextEdit_setLineWrapMode(TextEditH,QTextEditWidgetWidth)
else
QTextEdit_setLineWrapMode(TextEditH,QTextEditNoWrap);
end;
{------------------------------------------------------------------------------
Method: TQtWSCustomMemo.SetReadOnly
Params: NewReadOnly boolean
Returns: Nothing
------------------------------------------------------------------------------}
class procedure TQtWSCustomMemo.SetReadOnly(const ACustomEdit: TCustomEdit; NewReadOnly: boolean);
var
TextEditH: QTextEditH;
begin
TextEditH := QTextEditH((TQtWidget(ACustomEdit.Handle).Widget)); // set to proper type
QTextEdit_setReadOnly(TextEditH,NewReadOnly);
end;
{{ TQtWSCustomEdit }
{------------------------------------------------------------------------------
Method: TQtWSCustomEdit.CreateHandle
@ -721,4 +789,4 @@ initialization
RegisterWSComponent(TCustomStaticText, TQtWSCustomStaticText);
// RegisterWSComponent(TStaticText, TQtWSStaticText);
////////////////////////////////////////////////////
end.
end.