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

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


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

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

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

Выпуск № 1122
от 15.04.2008, 17:36

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

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


Вопрос № 131377: Здравствуйте, кважаемые эксперты! Как можно узнать полный путь к программе, которому принадлежит текущее окно (хендл известен), не используя функцию OpenProcess? Раньше это делалось так: uses psaipi ... var wnd,prid...
Вопрос № 131400: Здравствуйте, можно ли в Delphi 7 задавать форматированный вывод как в Turbo Pascal? - Writeln(t:8:3); У меня есть строка: memo1.Lines.Add((floattostr(k/1.603)+' миль')); Она выводит длинное число, надо "урезать" его. ...
Вопрос № 131438: Здравствуйте! Я Иршат. Не подскажите в какой вкладке находится компонент MenuItem (Delphi 7)?...
Вопрос № 131513: Здравствуйте, мне нужно вывести событие, если edit1.text пустой и если туда введена не цифра Пример мой в приложении не работает...
Вопрос № 131519: Здравствуйте, задали тут мне задачу: на форме метка с пояснительным текстом "числа", метка для вывода результата "сумма равна", многострочное поле для отображения вводимых с помощью функции inputbox чисел и кнопка ввод для зап...

Вопрос № 131.377
Здравствуйте, кважаемые эксперты!
Как можно узнать полный путь к программе, которому принадлежит текущее окно (хендл известен), не используя функцию OpenProcess?

Раньше это делалось так:

uses psaipi

...
var wnd,prid , hprocess:longint;
filename:array[0..1000]of char;
...

wnd:=windows.GetForegroundWindow;
GetWindowThreadProcessId(wnd,prid);
hprocess:=openprocess(process_all_access,false,prid);
GetModuleFileNameex(hprocess,0,filename,500);

....

Дело в том, что, например, Антивирус Касперского и др программы не позволяет выполнить функцию OpenProcess!
Отправлен: 09.04.2008, 17:34
Вопрос задал: User_Х3 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Coupler
Здравствуйте, User_Х3!
Попробуйте использовать OpenProcess, но указывать в параметре не process_all_access (полный доступ), а PROCESS_QUERY_INFORMATION or PROCESS_VM_READ. Касперского нет, проверить не могу, но вроде бы это работало и с ним.

Приложение:

Ответ отправил: Coupler (статус: Специалист)
Ответ отправлен: 10.04.2008, 14:48
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо! Помогло!


Вопрос № 131.400
Здравствуйте, можно ли в Delphi 7 задавать форматированный вывод как в Turbo Pascal? - Writeln(t:8:3);
У меня есть строка: memo1.Lines.Add((floattostr(k/1.603)+' миль'));
Она выводит длинное число, надо "урезать" его.
Отправлен: 09.04.2008, 19:52
Вопрос задал: Исаак Моисеевич (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mishell
Здравствуйте, Исаак Моисеевич!
Memo1.Lines.Add(Format('%.3f',[k/1.603])+' миль');
Ответ отправил: Mishell (статус: 10-ый класс)
Ответ отправлен: 09.04.2008, 19:59
Оценка за ответ: 5

Отвечает: Gh0stik
Здравствуйте, Исаак Моисеевич!

Для форматированного вывода используйте функцию FloatToStrF(), которая конвертирует число с плавающей запятой в соответствующую строку.
Пример использования:
memo1.Lines.Add((FloatToStrF(k/1.603,ffFixed,8,3)+' миль'));

Также можно воспользоваться функцией Format() на мой взгляд использование данной функции более естественно.

Пример использования:
memo1.Lines.Add((Format('%.3f',[k/1.603])+' миль'));

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Академик)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
WWW: http://gh0stik.rusfaq.ru/
ICQ: 289363162
----
Ответ отправлен: 09.04.2008, 20:04
Оценка за ответ: 5
Комментарий оценки:
Спасибо, помогло

Отвечает: Genia007
Здравствуйте, Исаак Моисеевич!
Вот такая функция позваляет выводить форматированные числа:
Function FloatToStrF(Value:Extended; Format: TFloatformat; Precision, Digits: Integer) :String;
Преобразует вещественное значение Value в строку символов с учетом формата Format и параметров precision и Digits.
Правила использования параметров функции FloatToStrF

Значение Format Описание

ffExponent Научная форма представления с множителем ехх (“умножить на 10 в степени
XX”). precision задает общее количество десятичных цифр мантиссы, Digits
- количество цифр в десятичном порядке хх. Число округляется с учетом
первой отбрасываемой цифры:3,1416Е+00

ff Fixed Формат с фиксированным положением разделителя целой и дробной частей, precision
задает общее количество десятичных цифр в представлении числа. Digits -
количество цифр в дробной части. Число округляется с учетом первой отбрасываемой
цифры:3,14

ff General Универсальный формат, использующий наиболее удобную для чтения форму
представления вещественного числа. Соответствует формату ff Fixed, если
количество цифр в целой части меньше или равно precision, а само число - больше
или равно 0,00001, в противном случае соответствует формату ff Exponent: 3,1416

ffNumber Отличается от ffFixed использованием символа-разделителя тысяч при выводе
больших чисел (для русифицированной версии Windows таким разделителем является
пробел). Для value = П *1000 получим 3 141,60

ffCurrency Денежный формат. Соответствует ffNumber, но в конце строки ставится символ
денежной единицы (для русифицированной версии Windows - символы “р.”). Для value
= я*1000 получим 3 141,60р.

Например cen1.Caption:= FloatToStrF(tg1 * cena1_1 + cena1_2, ffFixed, 7, 2) + ' тг'; // Посчитали ссуму за игру
Ответ отправил: Genia007 (статус: Студент)
Ответ отправлен: 11.04.2008, 17:30
Оценка за ответ: 5
Комментарий оценки:
Спасибо, подробный ответ


Вопрос № 131.438
Здравствуйте! Я Иршат.
Не подскажите в какой вкладке находится компонент MenuItem (Delphi 7)?
Отправлен: 09.04.2008, 23:53
Вопрос задал: Бикметов Иршат Ринатович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Selya
Здравствуйте, Бикметов Иршат Ринатович!
Это не компонент.
Бросаете на форму TMainMenu (самая первая вкладка), добавляете в него элементы. Вот каждый элемент это и будет TMenuItem.
Ответ отправил: Selya (статус: 10-ый класс)
Ответ отправлен: 10.04.2008, 22:47


Вопрос № 131.513
Здравствуйте, мне нужно вывести событие, если edit1.text пустой и если туда введена не цифра

Пример мой в приложении не работает

Приложение:

Отправлен: 10.04.2008, 14:10
Вопрос задал: Исаак Моисеевич (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Mishell
Здравствуйте, Исаак Моисеевич!
try
StrToInt(Edit1.Text); // пытаемся преобразовать строку в целое число
except
ShowMessage('Упс!'); // не получилось - выводим сообщение
end;
Ответ отправил: Mishell (статус: 10-ый класс)
Ответ отправлен: 10.04.2008, 14:57
Оценка за ответ: 5

Отвечает: demid
Здравствуйте, Исаак Моисеевич!

На мой взгляд дело в том, что Вы сначала пытаетесь вывести текст в MEMO, а потом только проверяете есть ли в EDIT этот текст. Попробуйте сделать так:

if edit1.Text = '' then
begin
showMessage(' Упс! ');
end
else
begin
memo1.Lines.Add(inttostr(strtoint(edit1.Text)*b));
end;
end;

А чтобы запретить ввод символов которые не являются цифрами, нужно в процедуре OnKeyPress для Edit сделать такую запись:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9':;
#8:;
else
Key := Chr(0);
end;
end;

При этом можно будет вводить только цифры и стирать их Backspase'ом, на нажатие других клавиш edit не будет реагировать.

Удачи!
---------
Нет предела совершенству...
Ответ отправил: demid (статус: 3-ий класс)
Ответ отправлен: 11.04.2008, 16:39
Оценка за ответ: 5

Отвечает: Genia007
Здравствуйте, Исаак Моисеевич!
Напишите такой код:
Try {Попробовать перевести стоку в число, если не вышло сообщение}
m:= StrToFloat(Edit1.Text);
Except
showMessage('gfg');
end;
И при пустом или не содержащим цифр Edit1 будет выдаваться сообщение.
Ответ отправил: Genia007 (статус: Студент)
Ответ отправлен: 11.04.2008, 17:30
Оценка за ответ: 4


Вопрос № 131.519
Здравствуйте, задали тут мне задачу:
на форме метка с пояснительным текстом "числа", метка для вывода результата "сумма равна", многострочное поле для отображения вводимых с помощью функции inputbox чисел и кнопка ввод для запуска процесса ввода чисел и вычисления их суммы. Требуется вычислить сумму всех вводимых пользователем чисел до тех пор, пока эта сумма не станет кратной 5.

Я тут не понял как должна работать программа, по какому событию должна появляться inputBox?
Отправлен: 10.04.2008, 14:33
Вопрос задал: Исаак Моисеевич (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Mishell
Здравствуйте, Исаак Моисеевич!
>Я тут не понял как должна работать программа, по какому событию должна появляться inputBox?
скорее всего по нажатию на кнопку "Старт" :)

примерно так:

Приложение:

Ответ отправил: Mishell (статус: 10-ый класс)
Ответ отправлен: 10.04.2008, 15:07
Оценка за ответ: 5
Комментарий оценки:
это я уже понял :(


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

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

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

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

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

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


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


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

∙ Версия системы: 4.91 pre 5.0 RC1 от 13.04.2008

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

В избранное