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

Вниз

Выравнивание текста, моргающий курсор   Найти похожие ветки 

 
alikon1   (2007-11-12 21:49) [0]

Необходимо выравнять текст в поле Edit по правой стороне. Не получилось этого сделать, но нашел в интернете, что вместо Edit надо Memo использовать. А возможно убрать моргающий курсор (|), чтоб было как в калькуляторе Windows?


 
KilkennyCat ©   (2007-11-12 23:11) [1]

Найдено в сети:

оздаём наследника:

unit UnReL;

interface

uses  comctrls, Windows, Messages, SysUtils, Classes, Controls, Forms, ShellAPI, stdctrls;

type

 TLRichEdit = class(TMemo)
 private
   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;

 end;

implementation

procedure TLRichEdit.WMPaint;
begin
 inherited;
 HideCaret(Handle);
end;

procedure TLRichEdit.WMSetFocus;
begin
 inherited;
 HideCaret(Handle);
end;

procedure TLRichEdit.WMNCHitTest;
begin
 inherited;
 HideCaret(Handle);
end;

PROCEDURE TLRichEdit.WMKEYDOWN(VAR Message: TMessage);
VAR Key: Integer;
begin
 Key:= Message.WParamLo;

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

end.


 
KilkennyCat ©   (2007-11-13 01:15) [2]

Долой Memo

TEdit1  = class(TEdit)
public
procedure CreateParams(var Params: TCreateParams); Override;
end;

procedure TEdit1.CreateParams(var Params: TCreateParams);
begin

inherited CreateParams(Params);
Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;
end;


 
alikon1   (2007-11-14 10:09) [3]

Может кто поможет. Не мог бы кто-нибудь написать маленький исходник программки, где текст в Edit по правой стороне выравняется используя подсказки выше. Ну не получается у меня, уже третий день сижу. Помогите пожалуйста кто-нибудь. Очень надо.


 
@!!ex ©   (2007-11-14 10:22) [4]

> [3] alikon1   (14.11.07 10:09)

Хм. Я тупо вставил код приведенный в [2] и у меня все заработало.(правда каретка все равно остается)

[TELEPATOR=ON]
Не умеем создавать компоненты в рантайме?
[TELEPATOR=OFF]


 
@!!ex ©   (2007-11-14 10:26) [5]

Правда каретку я бы и не стал скрывать. ибо если пользователь кликнет на середину набранного текст, каретка туда переместится, но визуально это никак не отобразится.

P.S.
Вот создание компонента в рантайме:
 Edit:=TEdit1.Create(Form1);
 Edit.Parent:=Form1;
 edit.Left:=0;
 edit.width:=100;
 edit.top:=0;
 edit.height:=20;


 
alikon1   (2007-11-15 15:54) [6]

Спасибо. Всё заработало.



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
15-1194793273
Kick
2007-11-11 18:01
2007.12.09
В моем классе не видно...


15-1194525911
Sonia
2007-11-08 15:45
2007.12.09
Может еще кто-то помнит Фортран....


2-1195214711
timekiller
2007-11-16 15:05
2007.12.09
Проверка на повторы по нодам


1-1189948331
andreil
2007-09-16 17:12
2007.12.09
Ошибка времени выполнения


15-1194616987
Parus
2007-11-09 17:03
2007.12.09
Запрет хостов!