Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клавиатурный тренажер 
V
    Опции темы
Agentx86
Дата 14.5.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Пишу сейчас программу клавиатурный тренажер. Она представляет собой два многострочных Edita в одном находится текст который нужно ввести во втором пользователь вводит этот текст. Когда пользоавтель печатает текст он должен видеть какой символ ему нужно нажимать.
Для этого в первом эдите нужно этот символ нужным образом подсвечивать или выделять. Как это можно сделать?
EM_SETSEL не поможет т.к. оно работает только на активном окне. Во время набора текста второй Edit всегда активный. Собственно посылка EM_SETSEL не даст никакого результата. Подскажите любые трезвые мысли. 
PM MAIL   Вверх
Gradov
Дата 14.5.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.10.2006

Репутация: нет
Всего: 3



Вместо TEdit используй TRichEdit, введи в него какой нибудь текст и добавь кнопку на форму. Получай код:
Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit10.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm10 *Form10;
int sympos,def_textheight;
//---------------------------------------------------------------------------
__fastcall TForm10::TForm10(TComponent* Owner)
    : TForm(Owner)
{
 sympos=-1;
 Edit->SelStart=0;
 Edit->SelLength=1;
 def_textheight=Edit->SelAttributes->Height;
 Edit->SelLength=0;

}
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{
 Edit->SelStart=sympos;
 Edit->SelLength=1;
 Edit->SelAttributes->Color=clBlack;
// Edit->SelAttributes->Height=def_textheight;
 Edit->SelAttributes->Style=TFontStyles()>>fsUnderline>>fsBold;
 sympos++;

 Edit->SelStart=sympos;
 Edit->SelLength=1;
 Edit->SelAttributes->Color=clRed;
// Edit->SelAttributes->Height=def_textheight+5;
 Edit->SelAttributes->Style=TFontStyles()<<fsUnderline<<fsBold;

}
//---------------------------------------------------------------------------



Это сообщение отредактировал(а) Gradov - 14.5.2008, 22:07
PM MAIL   Вверх
Agentx86
Дата 14.5.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 27.4.2006

Репутация: нет
Всего: нет



Уже решил данную проблему другим образом. Я на заднем фоне эдита рисую прямоугольник. Может видели Соло на клавиатуре. 
И при помощи написанной функции перемещаю его.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0383 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.