Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как автоматически ставить пробел после запятой [D7, XP]


Страницы:   1 2 3

Dymok ©   (2009-08-14 15:12:00) 

TDBMemo
Пользователи все время тупят и забывают ставить пробел после запятой.
Как написать событие, чтобы при наборе запятой автоматически после неё вставлялся пробел?


Медвежонок Пятачок   (2009-08-14 17:25:00) [21]

Но, к сожалению, сначала пробел вставляет, зараза, а потом уже запятую...

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


Dymok   (2009-08-14 17:22:00) [22]

Накопал

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = char(',') then
SendMessage(Memo1.Handle, WM_CHAR, Word(' '), 0);
end;


Но, к сожалению, сначала пробел вставляет, зараза, а потом уже запятую...


Anatoly Podgoretsky   (2009-08-14 17:12:00) [23]

> {RASkov}  (14.08.2009 17:07:24)  [24]

Мысли и программы это разные вещи, плохой танцор - хороший папа


{RASkov}   (2009-08-14 17:07:00) [24]

Хех, посмотреть бы на идеальную программу от Коляна :)
(ну эт типа шутки)
:о)


MsGuns   (2009-08-14 17:02:00) [25]

Между тем Колян дело говорит


{RASkov}   (2009-08-14 16:55:00) [26]

function InsertSpaceAfterComma(ATxt: String): String;
var N: Integer;
begin
 Result:=ATxt;
 for N:=Length(ATxt)-1 downto 1 do
  if ATxt[N]=',' then if ATxt[N+1]<>#32 then Insert(#32, Result, N+1);
end;


Dymok   (2009-08-14 16:37:00) [27]

Kolan - у вас словесный понос


{RASkov}   (2009-08-14 16:37:00) [28]

Перед печатью или записью в базу сделать StringReplace(); заменить все ',' на ', '


Kolan   (2009-08-14 16:26:00) [29]

Не понятно что вызывает затруднения. Вы не можете написать конструкцию if ... then?
— Прочтите учебник.

Вы не знаете какое событие обрабатывать?
— Возможно OnKeyPress подойдет.

«Пользователи все время тупят...»
Вы сделали одну из тех гадких программ, из-за которых люди думают, что компьютеры — это что-то сложное. Тупите вы, заплатите хорошему дизайнеру, он разработает вам нормальный интерфейс.


Kolan   (2009-08-14 16:26:00) [30]

Не понятно что вызывает затруднения. Вы не можете написать конструкцию if ... then?
— Прочтите учебник.

Вы не знаете какое событие обрабатывать?
— Возможно OnKeyPress подойдет.

«Пользователи все время тупят...»
Вы сделали одну из тех гадких программ, из-за которых люди думают, что компьютеры — это что-то сложное. Тупите вы, заплатите хорошему дизайнеру, он разработает вам нормальный интерфейс.


Медвежонок Пятачок   (2009-08-14 16:23:00) [31]

Кроме того, все уже сказано. Есть событие датасета BeforePost.
в конце концов есть обработчик клика кнопки "Ок" или "сохранить".
Чего еще надо?


Медвежонок Пятачок   (2009-08-14 16:21:00) [32]

зачем он тебе, если у тебя без этих телодвижений нет гарантий, и после этих телодвижений гарантий не будет?


Dymok   (2009-08-14 16:16:00) [33]

Мне не нужно гарантий.
Мне нужен прямой ответ - как при нажатии ',' выводить ', '  ?


Медвежонок Пятачок   (2009-08-14 16:06:00) [34]

Если обрабатывать OnKeyPress
if Key=',' then key:=
Получиться? Как дальше?


А дальше тебя ждут приколы вашего городка.
Этот код не гарантирует от того, что ты сейчас имеешь.


Dymok   (2009-08-14 16:04:00) [35]

А как узнать коды клавиш #...  ?


Dymok   (2009-08-14 16:03:00) [36]


> Kolan ©   (14.08.09 16:00) [11]
> > Пробелы для корректного переноса по словам при печати.
> Пусть перенос по словам переносит не только по пробелу,
> но и по знакам препинания.

Для печати использую FastReport, там перенос автоматически, типа как в Excel


Kolan   (2009-08-14 16:00:00) [37]


> Пробелы для корректного переноса по словам при печати.

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


Inovet   (2009-08-14 15:57:00) [38]

> [8] Dymok ©   (14.08.09 15:52)
> Пробелы для корректного переноса по словам при печати.

Может кнопку формат предусмотреть, или перед печатью это делать.


Dymok   (2009-08-14 15:54:00) [39]

Если обрабатывать OnKeyPress
if Key=',' then key:=
Получиться? Как дальше?


Dymok   (2009-08-14 15:52:00) [40]


> Anatoly Podgoretsky ©   (14.08.09 15:36) [7]
> А зачем пробелы то? Есть ли мальчик.


Пробелы для корректного переноса по словам при печати.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо