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

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


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

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

Выпуск № 660
от 24.11.2006, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 411, Экспертов: 62
В номере:Вопросов: 4, Ответов: 6


Вопрос № 63174: Уважаемые, эксперты помогите разобраться в следующем(Надеюсь, что я вас ещё не замучил со своим калькулятором) 1.При выполнении кода(см. приложение) ошибок не возникает, но если калькулятору предложить следующее 6,6/2 вместо 3,3 получаю 3...
Вопрос № 63182: Здравствуйте эксперты.У меня возник вот какой вопрос:как поместить в панель задач(WinXP) TEdit для ввода данных и как передать эти данные основной программе(как и google desktop search) и как его потом удалить. Спасибо за уделённое время....
Вопрос № 63209: Здравствуйте. Возник ещё один вопрос. Никак не могу придумать способ его решить, а идея простая. У меня на Form'e есть PageControl и мне надо сделать чтобы при открывании закладок (1 из них) выполнялась одна процедура. Кaк это сделать? Я...
Вопрос № 63244: Здраствуйте. Обьясните мне, как можно подключить к моей программе кусок программы на СC++ или assembler`e (используя obj файлы). Что должны содержать эти куски и как их добавить в программу. ...

Вопрос № 63.174
Уважаемые, эксперты помогите разобраться в следующем(Надеюсь, что я вас ещё не замучил со своим калькулятором)
1.При выполнении кода(см. приложение) ошибок не возникает,
но если калькулятору предложить следующее
6,6/2 вместо 3,3 получаю 3,29999995231628
Как я понимаю необходимо это число округлить. Какими для этого встроенными функциями пользоваться не представляю.
p.s. numedit - это потомок edit с Params.Style := Params.Style or ES_RIGHT;
Frist и Second глобальные переменные(Single), в которых сохраняются первое и второе введёные числа.
2. Как сделать, чтобы MessageBox всегда появлялся над центром приложения?
MIXAIL

Приложение:

Отправлен: 18.11.2006, 19:40
Вопрос задал: MIXAIL (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, MIXAIL!
1. Для этого можно использовать функцию преобразования с форматированием - FloatToStrF(цифра, строка_формата, общее_кол-во_цифр, кол-во_цифр_после_запятой). Т.е. когда Вы уже получили ответ в виде 3,29999995231628, то задав в этой функции сколько у Вас будет цифр и каков формат вывода числа, Вы получите то, что нужно:
z:=3,29999995231628;
MainForm.numedit.Text:= FloatToStrF(z, ffFixed, 15, 1);
Однако у Вас входные цифры не всегда будут с одинаковым кол-вом знаков после запятой, поэтому, прежде чем преобразовывать в числовой формат, посчитайте, сколько у какого числа знаков после запятой, выявите наибольшее кол-во знаков и уже это значение подставляйте в качестве последнего параметра функции FloatToStrF().
2. Для этого используйте системную функцию MessageBox:
MessageBox(0, 'Текст сообщения', 'Текст заголовка', Флаги);
где Флаги - это набор кнопок, иконок и стиля поведения окошка MessageBox.
Для того чтобы вывести окно с сообщением и иконкой "ошибка", кнопкой ОК и в центре рабочего стола, при этом пока не нажмете кнопку ничего сделать не удасться, флаг должен быть такой:
MB_OK+MB_ICONSTOP+MB_APPLMODAL+MB_TOPMOST
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 20.11.2006, 11:51
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Попробую.


Вопрос № 63.182
Здравствуйте эксперты.У меня возник вот какой вопрос:как поместить в панель задач(WinXP) TEdit для ввода данных и как передать эти данные основной программе(как и google desktop search) и как его потом удалить.
Спасибо за уделённое время.
Отправлен: 18.11.2006, 21:36
Вопрос задал: Rem-si (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Monah
Здравствуйте, Rem-si!
Могу ПРЕДПОЛОЖИТЬ один вариант. Получаете Handle панели. Потом создаете Tedit и как parient указываете полученый указатель на панель. также в программе создаете обработчики событий и указываете на них в нужных свойствах TEdit;
---------
festina lente
Ответ отправил: Monah (статус: Студент)
Ответ отправлен: 19.11.2006, 11:33
Оценка за ответ: 1
Комментарий оценки:
TEdit уходит в панель задач,но потом форму невозможно закрыть.SetFocus не помогает


Вопрос № 63.209
Здравствуйте.

Возник ещё один вопрос. Никак не могу придумать способ его решить, а идея простая.
У меня на Form'e есть PageControl и мне надо сделать чтобы при открывании закладок (1 из них) выполнялась одна процедура. Кaк это сделать? Я не нашёл подходящих "Событий" этот счёт. Ha "OnShow" там есть "событие", но это не то.
Пример.
При смене тарифа оплаты, должен задавать вопрос, типа: "Вы уверены что хотите сменить тариф?" и кнопки <OK> и <Отмена>.
Вот и всё.

С уважением,
Алекс
Отправлен: 19.11.2006, 01:27
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Monah
Здравствуйте, AlexD!
Необходимо ловить onChange для PageControl. В обработчике проверяте ActiveIndex - Номер откпытой закладки
---------
festina lente
Ответ отправил: Monah (статус: Студент)
Ответ отправлен: 19.11.2006, 06:06

Отвечает: Coupler
Здравствуйте, AlexD!
Думаю, что правильнее ловить PageControl1Changing - тогда можно и не переходить на новую закладку. Пример в приложении.

Приложение:

Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 19.11.2006, 06:17

Отвечает: Sattar
Здравствуйте, AlexD!
1.
procedure TForm1.PageControl1Change(Sender: TObject);
begin
MessageDlg('Вы уверены что хотите сменить тариф?',mtConfirmation, [mbYes, mbNo], 0);
end;
2.
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePage.Caption='Тариф1' then
MessageDlg('Вы уверены что хотите сменить тариф?',mtConfirmation, [mbYes, mbNo], 0);
end;
Ответ отправил: Sattar (статус: 3-ий класс)
Ответ отправлен: 19.11.2006, 11:06


Вопрос № 63.244
Здраствуйте.
Обьясните мне, как можно подключить к моей программе кусок программы на СC++ или assembler`e (используя obj файлы). Что должны содержать эти куски и как их добавить в программу.
Отправлен: 19.11.2006, 12:52
Вопрос задал: chikanok (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Gladiator
Здравствуйте, chikanok!
Прописываете
{$L имя obj-файла}

procedure <имя функции из obj-файла>; external;
Ответ отправил: Gladiator (статус: 6-ой класс)
Ответ отправлен: 20.11.2006, 08:16


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное