Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 12:35   #1
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
Вопрос Как изменить курсор в мемо?

Стандартно курсор в мемо вертикальная черта. А как сделать её горизонтальной, как например в командной строке? Если с мемо это не получится сделать, то можно и с RichEdit.
troyan32 вне форума Ответить с цитированием
Старый 11.04.2011, 12:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему такое можно сделать только поменяв тему в Винде.
ИМХО вид курсора как раз определяется темами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.04.2011, 18:52   #3
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Можно через WinAPI:
Код:
//...
const
  UM_CREATECARET = WM_USER + 1;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    //...
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Memo1Enter(Sender: TObject);
    procedure Memo1Exit(Sender: TObject);
  private
    procedure UMCreateCaret(var msg: TMessage); message UM_CREATECARET;
    bmp: TBitmap;
  public
    { Public declarations }
  end;

//...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmp.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bmp := TBitmap.Create;
  bmp.Canvas.Brush.Color := clGreen;
  bmp.Height := 15;
  bmp.Width := 5;
end;

procedure TForm1.Memo1Enter(Sender: TObject);
begin
  PostMessage(Handle, UM_CREATECARET, 0, 0);
end;

procedure TForm1.Memo1Exit(Sender: TObject);
begin
  DestroyCaret;
end;

procedure TForm1.UMCreateCaret(var msg: TMessage);
begin
  CreateCaret(memo1.Handle, bmp.Handle, 15, 5);
  ShowCaret(Memo1.Handle);
end;
eduard93 вне форума Ответить с цитированием
Старый 11.04.2011, 19:16   #4
troyan32
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 31
По умолчанию

Код делает курсор толстым и розовым. А я хочу вот такой - "_".
troyan32 вне форума Ответить с цитированием
Старый 11.04.2011, 20:47   #5
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Нарисуйте какой вам нужен. Код перед вами - экспериментируйте.
eduard93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить курсор Don Karleone Общие вопросы Delphi 8 25.07.2010 19:26
Изменить курсор при перемещении формы Nester Общие вопросы Delphi 11 28.09.2009 18:29
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
курсор в мемо Чуча Помощь студентам 7 05.03.2008 15:44