Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1176
от 08.09.2008, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 399, Экспертов: 50
В номере:Вопросов: 2, Ответов: 5

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 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


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.2 RC 1 от 03.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное