Вопрос № 142965: Здравствуйте! Помещаю значок программы в трей. Но почему-то сообщения от значка в трее не приходят. Вообще никакие. if Msg.message = FCallBackMsg вообще эта часть игнорируется. FCallBackMsg сообщение, получаемое от иконки в трее. Если сам де...Вопрос № 142999: Здраствуйте знающие. Подскажите как в поле Edit1.Text после комы(крапки, <i> запятой, разделителя дробной и целой части числа </i>) можно было бы вволить
только две цифры(напр. 123,45) Спасибо....
Вопрос № 142.965
Здравствуйте! Помещаю значок программы в трей. Но почему-то сообщения от значка в трее не приходят. Вообще никакие. if Msg.message = FCallBackMsg вообще эта часть игнорируется. FCallBackMsg сообщение, получаемое от иконки в трее. Если сам делаю PostMessage(Handle, FCallBackMsg, 0, 0); то сообщение доходит. Почему может не работать? Смотрите приложение. Спасибо.
Приложение:
Отправлен: 03.09.2008, 09:51
Вопрос задал: Yadovit (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: PavelGM
Здравствуйте, Yadovit!
Вы регистрируете сообщение на хэндл окна (Form1.Handle), а анализируеете в обработчике приложения (AppMessages) - так не получится, надо писать обработчик формы (Form1) для данного сообщения. Но у вас сообщение динамическое (RegisterWindowMessage), поэтому придется перегружать оконнную процедуру формы (или используйте фиксированное сообщение и модификатор метода формы message)
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 03.09.2008, 11:13 Оценка за ответ: 5 Комментарий оценки: Работает с message
Вопрос № 142.999
Здраствуйте знающие. Подскажите как в поле Edit1.Text после комы(крапки, запятой, разделителя дробной и целой части числа ) можно было бы вволить только две цифры(напр. 123,45) Спасибо.
Отправлен: 03.09.2008, 17:46
Вопрос задал: Delf7 (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Genia007
Здравствуйте, Delf7! Накидал вот такую процедурку, у меня работает:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); var s: string; i, a: word; begin s:= Edit2.Text; for i:= 1 to length(s) do begin if s[i] = ',' then begin a:= i; edit1.Text:= inttostr(i); end; end; if a + 1 < length(s) then key:= #0; end;
Ответ отправил: Genia007 (статус: 7-ой класс)
Ответ отправлен: 03.09.2008, 18:39 Оценка за ответ: 5
Отвечает: monah
Здравствуйте, Delf7! Рекомендую использовать TMaskEdit. C маской #99990,99 количество символов до запятой укажите сами, символ "0" до запятой необходим для красивости, чтобы число "0,25" не отобразилось как ",25"
--------- festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 03.09.2008, 20:15 Оценка за ответ: 5
Отвечает: Denisss
Здравствуйте, Delf7!
В приложении находится пример обработчика события OnChange. Данный обработчик можно применить сразу к нескольким полям ввода, находящимся на форме, не переписывая его для каждого поля (для этого достаточно для одного TEdit прописать его вручную, а остальным полям присвоить его же в качестве обработчика событий). Кроме того, у данного метода намного меньше побочных эффектов, чем в примере, предложенном экспертом Genia007: - попробуйте откуда-нибудь
скопировать текст, содержащий более двух цифр после запятой и вставить его в поле ввода; - попробуйте ввести число с запятой и двумя цифрами в конце. Теперь попытайтесь удалить последнюю цифру с помощью клавиши BackSpace или попытайтесь заменить цифры (выделив и введя с клавиатуры новые); - попробуйте еще и такой "фокус": введите многозначное число без запятых, затем попробуйте ввести запятую где-нибудь в начале числа, нарушив тем самым правило "две ц
ифры после запятой".
Успехов!
Приложение:
--------- Все должно быть сделано настолько просто, насколько это возможно. Но не проще. (с) А.Эйнштейн
Ответ отправил: Denisss (статус: Профессор) Россия, Москва ICQ: 281599577 ---- Ответ отправлен: 04.09.2008, 12:32 Оценка за ответ: 5
Отвечает: Шичко Игорь
Здравствуйте, Delf7! Я бы предложил Вам использовать компонент MaskEdit со страницы Additional. И установить необходимый формат занесения данных Например так: MaskEdit1.EditMask:= '!99999,99;1;0'; // 5 цифр до запятой и 2 цифры после запятой.
Кроме этого в этом компненте есть и другие маски: по дате, по времени, телефонам и т.п.
Ответ отправил: Шичко Игорь (статус: 1-ый класс)
Ответ отправлен: 04.09.2008, 13:30 Оценка за ответ: 4