Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Как убрать курсор в TMemo   Найти похожие ветки 

 
saNat ©   (2004-10-14 02:12) [0]

Доброго времени суток...
Свойство ReadOnly выключает только редактирование. Подскажите, пожалуйста, как убрать курсор из TMemo.

С уважением...


 
GanibalLector ©   (2004-10-14 02:24) [1]

Самый простой способ это :

procedure TForm1.Memo1Enter(Sender: TObject);
begin
Имя компонента(визуального...например Panel) .Setfocus;
end;


 
1008 ©   (2004-10-14 10:41) [2]

Вот компонент, фактически TMemo, но при включении ReadOnly убирает курсор:

unit WCMemo;

interface

uses
Windows,
Messages,
SysUtils,
Classes,
Controls,
StdCtrls;

type
 TWCMemo = class(TMemo)
 private
   { Private declarations }
   FReadOnly:boolean;
   procedure SetRead(const value:boolean);

   procedure WMPaint(var Msg: TMessage); message WM_Paint;
   procedure WMSetFocus(var Msg: TMessage); message WM_SetFocus;
   procedure WMNCHitTest(var Msg: TMessage); message WM_NCHitTest;
   procedure WMKEYDOWN(VAR Message: TMessage); message WM_KEYDOWN;
   procedure CreateParams(var Params: TCreateParams); override;
   protected
   { Protected declarations }
 public
   { Public declarations }
 published
   { Published declarations }
   property ReadOnly:boolean read FReadOnly write SetRead;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Samples", [TWCMemo]);
end;

{ TWCMemo }

procedure TWCMemo.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WindowClass.hCursor := LoadCursor(0, IDC_ARROW);
end;

procedure TWCMemo.WMKEYDOWN(var Message: TMessage);
var
Key:Integer;
begin
Key:= Message.WParamLo;

case Key of
 vk_Up:
 begin
  Perform(EM_SCROLL, SB_LINEUP, 0);
  Key:= 0;
 end;
 vk_Down:
 begin
  Perform(EM_SCROLL, SB_LINEDOWN, 0);
  Key:= 0;
 end;
end;
inherited;
if ReadOnly then HideCaret(Handle) else ShowCaret(Handle);
end;

procedure TWCMemo.WMNCHitTest(var Msg: TMessage);
begin
inherited;
if ReadOnly then HideCaret(Handle) else ShowCaret(Handle);
end;

procedure TWCMemo.WMPaint(var Msg: TMessage);
begin
inherited;
if ReadOnly then HideCaret(Handle) else ShowCaret(Handle);
end;

procedure TWCMemo.WMSetFocus(var Msg: TMessage);
begin
inherited;
if ReadOnly then HideCaret(Handle) else ShowCaret(Handle);
end;

procedure TWCMemo.SetRead(const value:boolean);
begin
TMemo(self).ReadOnly:=value;
FReadOnly:=value;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
1-1097609980
Saintdmitry
2004-10-12 23:39
2004.10.31
Delphi bugs


8-1091299499
parovoZZ
2004-07-31 22:44
2004.10.31
IDirectDrawSurface7._Release и Alt+F4


14-1097420124
Knight
2004-10-10 18:55
2004.10.31
Кто в курсе... Почему на delphigfx.mastak.ru


4-1096123510
XProger
2004-09-25 18:45
2004.10.31
Panel на Win API


14-1097200407
Думкин
2004-10-08 05:53
2004.10.31
С днем рождения! 8 октября