Вопрос № 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;
...
Дело в том, что, например, Антивирус Касперского и др программы не позволяет выполнить функцию 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)+' миль'));
Она выводит длинное число, надо "урезать" его.
Ответ отправил: 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)?
Отвечает: Selya
Здравствуйте, Бикметов Иршат Ринатович!
Это не компонент.
Бросаете на форму TMainMenu (самая первая вкладка), добавляете в него элементы. Вот каждый элемент это и будет TMenuItem.
Ответ отправил: Selya (статус: 10-ый класс)
Ответ отправлен: 10.04.2008, 22:47
Вопрос № 131.513
Здравствуйте, мне нужно вывести событие, если edit1.text пустой и если туда введена не цифра
Отвечает: 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?
Отвечает: Mishell
Здравствуйте, Исаак Моисеевич!
>Я тут не понял как должна работать программа, по какому событию должна появляться inputBox?
скорее всего по нажатию на кнопку "Старт" :)
примерно так:
Приложение:
Ответ отправил: Mishell (статус: 10-ый класс)
Ответ отправлен: 10.04.2008, 15:07 Оценка за ответ: 5 Комментарий оценки: это я уже понял :(