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