Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1194954884
Palladin
2007-11-13 14:54
2007.12.09
IDE Help Windows SDK


2-1194516434
Andy BitOff (ppc)
2007-11-08 13:07
2007.12.09
Разница между датами


2-1194777128
sdaf
2007-11-11 13:32
2007.12.09
иконки в систем трэй


11-1179751681
Don
2007-05-21 16:48
2007.12.09
LikeSpeedButton


9-1164063132
Горгер
2006-11-21 01:52
2007.12.09
Вывод битмапа на плоскость OpenGL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский