Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];
ВнизВыравнивание текста, моргающий курсор Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.069 c