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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 83
от 30.03.2005, 23:20

Администратор:Калашников О.А.
В номере:Вопросов: 5, Ответов: 19


Вопрос № 18727: Уважаемые эксперты, мне нужно написать прогу-оценщик программ написааных на разных языках программирования. Хотел бы услышать ваши предложения по критериям для оценки. Код программ объекто-ориентированный. Заранее благодарен...
Вопрос № 18751: гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ! ъ БННАЫЕ-РН МНБХВНЙ, ОНЩРНЛС ОПНЯРХРЕ ГЮ, ЛНФЕР АШРЭ, МЕЛМНЦН "ЙНПЪБНЕ" ХГКНФЕМХЕ ОПНАКЕЛШ. ъ ОШРЮЧЯЭ ЯНГДЮРЭ НРВЕР Б QReport. хЯОНКЭГСЧ ДКЪ БШБНДЮ ДЮММШУ ХГ ОНКЕИ АЮГШ ДЮММШУ QRDBtext. дКХМЮ ОНКЪ Я...
Вопрос № 18754: Как сделать примерно следующее: БД Interbase на форме два листбокса. Первый нужно заполнить именами таблиц БД, а во втором при перемещении по первому высвечивались бы поля соответствующих таблиц ? Заранее спасибо !...
Вопрос № 18764: Здраствуйте уважаемые эксперты! Подскажите пожалуйста как установить в своей программе в качестве разделителя целой и дробной части не запятую, а точку, для функции FloatToStr? ...
Вопрос № 18769: Здравствуйте. Хочу в Delphi самостоятельно обработать некоторые сообщения окна. Как это возможно сделать? Спасибо....

Вопрос № 18727
Уважаемые эксперты, мне нужно написать прогу-оценщик программ написааных на разных языках программирования. Хотел бы услышать ваши предложения по критериям для оценки. Код программ объекто-ориентированный. Заранее благодарен
Отправлен: 25.03.2005, 00:47
Вопрос задал: Master135 (статус: 2-ой класс)
Всего ответов отправлено: 6

Отвечает: Malish
Здравствуйте, Master135!
Вопрос просто бешанный ;) . Проги можно оценивать по скорости, по размеру, но как по мне так можно потерять немного в скорости если интерфейс проги будет интуитивно понятен и удобен, а это не измерить. Вот отдельные процедуры или функции - запросто. Сложная задача, но очень интересная. Тут ответ напрашивается сам - ИИ (исскуственный интелект). Надо и самому подумать над такой задачей, мне такие не попадались.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 25.03.2005, 01:11
Оценка за ответ: 4
Комментарий оценки:
Может я неправильно выразился, но вобщето надо тестить исходники программ.

Отвечает: sir henry
Здравствуйте, Master135!
Слишком расплывчато.
А что Вы хотите оценивать:
- исходники программ,
- % объектно-ориентации в исходнике,
- размер откомпилированой программы,
- быстродействие...
????? :)
Если Вам "нужно", то должна быть, как минимум, четко поставленая задача, без неоднозначного ее толкования. Критерии для исходников и откомпилированного кода будут разными.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 25.03.2005, 06:26

Отвечает: Delphin
Здравствуйте, Master135!
хз... Я не понял вопроса. Тебе нужно узнать как-бы критерии по которым можно узнать как написана программа (с исходников), уже готовую или тебе надо просто сказать какие могут быть оценки?
-----------------------------------------------------------------------------------------------------------------
Если:
1. Смотри на циклы перебора. На алгоритмы. На повторяемость кода и используемые модули.
Например если эту функцию можно использовать без этого модуля то -1 балл. За умный
цыкл плюс 2 и т.п.
Или разбей по разделам удобности. Например если программа в коде DLL'ky использовала
то добавь плюсик в другой массив. Если использовала Много стандартных модулей то
минус. За колличество пояснений и разбитость на Unit'ы ставь по (+) или (0,5 + ).
2. Размер программы. Возможность сжатия. Колличество рессурсов которые потребляет.
Есть ли плагины и DLL'ки.
3. Ну допустим по 100 бвльной системе. Или сколько твоя программа найдет. Например нашла
200 оценок из них 150 это + значит 150 / 200 = 0,75 бала. Типа 1 это самая крутая.
А потом можно допустим умножить 0,75*5=3,75 бала. чтоб была 5 бальная система.
Ну ты понял я думаю идею.
-----------------------------------------------------------------------------------------------------------------
Задавай вопрос точнее. А вобще зачем тебе такое делать?
Ответ отправил: Delphin (статус: 1-ый класс)
Отправлен: 25.03.2005, 09:56
Оценка за ответ: 5
Комментарий оценки:
Я конечно же имел в виду исходники.
Вобщето это задача на бакалаврский проэкт.

Отвечает: Voituk Alexander
Здравствуйте, Master135!
Интересно всем, по каким критериям оценивать программу?
Можно оценивать по стоимости программы в $ :)
Можно оценивать по размеру проги и по ее быстродействию. Но вряд ли ты найдешь две программы выполняющие совершенно одинаковые действия, но написанные на разных языках.
Все равно функции будут разные. По моему все эти оценки - это чисто субъективный подход.
Особенно если оценивать внешний вид.
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 25.03.2005, 11:32

Отвечает: Samum
Здравствуйте, Master135!
Обычно в таких случаях проверяют работу программы на нескольких тестах (от простых до сочень сложных). Оценивать следует:
- время работы программы;
- объем оперативной памяти, который требует программа;
- нагрузка на процессор.
В зависимости от решаемой задачи можно еще попытаться оценить, например, нагрузку на винчестер и пр. - это достаточно индивидуально.
Ответ отправил: Samum (статус: Специалист)
Отправлен: 25.03.2005, 15:23

Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, Master135!
Абсолютной оценки проги не существует в принципе, но могу предложить оценивать отдельные функции(если есть код) на быстродействие и точность,либо тоже ко всей проге, её ресурсоёмкость, сложность и объём в строках(с поправкой на язык реализации)
Ответ отправил: Гриценко Юрий Алексеевич (статус: 3-ий класс)
Отправлен: 26.03.2005, 14:13
Оценка за ответ: 4


Вопрос № 18751
гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ!
ъ БННАЫЕ-РН МНБХВНЙ, ОНЩРНЛС ОПНЯРХРЕ ГЮ, ЛНФЕР АШРЭ, МЕЛМНЦН "ЙНПЪБНЕ" ХГКНФЕМХЕ ОПНАКЕЛШ.
ъ ОШРЮЧЯЭ ЯНГДЮРЭ НРВЕР Б QReport. хЯОНКЭГСЧ ДКЪ БШБНДЮ ДЮММШУ ХГ ОНКЕИ АЮГШ ДЮММШУ QRDBtext. дКХМЮ ОНКЪ ЯКХЬЙНЛ БЕКХЙЮ Х МЕ ОНЛЕЫЮЕРЯЪ Б РЮАКХВМСЧ ЪВЕИЙС. еЯРЭ КХ БНГЛНФМНЯРЭ БШБНДЮ ЩРНЦН ОНКЪ, МЮОПХЛЕП, Б QRDBtext1 ОЕПБШЕ 30 ЯХЛБНКНБ, Ю Б QRDBtext2 - ЯКЕДСЧЫХЕ 30 ЯХЛБНКНБ Х РЮЙ ДЮКЕЕ?
Отправлен: 25.03.2005, 12:21
Вопрос задала: TAR (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Master135
Здравствуйте, TAR!
В ваше вопросе один иврит видно...
"гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ!
ъ БННАЫЕ-РН МНБХВНЙ, ОНЩРНЛС ОПНЯРХРЕ ГЮ, ЛНФЕР АШРЭ, МЕЛМНЦН "ЙНПЪБНЕ" ХГКНФЕМХЕ ОПНАКЕЛШ.
"
Ответ отправил: Master135 (статус: 2-ой класс)
Отправлен: 25.03.2005, 23:07


Вопрос № 18754
Как сделать примерно следующее: БД Interbase
на форме два листбокса. Первый нужно заполнить именами таблиц БД, а во втором при перемещении по первому высвечивались бы поля соответствующих таблиц ?
Заранее спасибо !
Отправлен: 25.03.2005, 14:12
Вопрос задал: Sniffer (статус: 10-ый класс)
Всего ответов отправлено: 1

Отвечает: michael91
Здравствуйте, Sniffer!
чтобы в листбокс засунуть названия таблиц БД, надо сначала подключиться к БД
через TIBDatabase и выполнить строку:
ibdatabase1.GetTableNames(listbox1.Items, true);
по нажатию на listbox1 определяем, выделен какой-нибудь эл-т или нет и получаем его содержимое:
procedure TForm1.ListBox1Click(Sender: TObject);
var
table: string;
begin
if listbox1.selcount = 1 then // выделено?
begin
table := listbox1.Items.Strings[listbox1.itemindex];{получаем название таблицы...}
ibdatabase1.GetFieldNames(table, listbox2.Items); {...и получаем список ее полей в listbox2}
end;
end;
Ответ отправил: michael91 (статус: 2-ой класс)
Отправлен: 25.03.2005, 15:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо !


Вопрос № 18764
Здраствуйте уважаемые эксперты! Подскажите пожалуйста как установить в своей программе в качестве разделителя целой и дробной части не запятую, а точку, для функции FloatToStr?
Отправлен: 25.03.2005, 19:04
Вопрос задал: Roman_npi (статус: Посетитель)
Всего ответов отправлено: 6

Отвечает: mvp
Здравствуйте, Roman_npi!
DecimalSeparator := '.', но не забывайте его перед этим сохранить, а потом восстановить - мало ли :)
Ответ отправил: mvp (статус: 1-ый класс)
Отправлен: 25.03.2005, 21:30

Отвечает: Malish
Здравствуйте, Roman_npi!
Вообще это зависит от настройки винды Язык и Стандарты --- Числа. В самом Delphi я не нашел как это сделать поэтому предлагаю так , если очень надо:
Переводишь в строку, а потом меняешь сивол "," на ".", или выделяешь целую часть + '.' + дробная часть.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 26.03.2005, 02:43

Отвечает: Полховский Александр Владимирович
Здравствуйте, Roman_npi!
Есть 2 вида этой функции. У второго есть параметр formatsettings. Всё это есть в справке. нажмите F1 и вперёд.
Ответ отправил: Полховский Александр Владимирович (статус: Студент)
Отправлен: 26.03.2005, 02:50

Отвечает: komatoz
Здравствуйте, Roman_npi!
var
s:real;
st:string;
begin
sysutils.DecimalSeparator:='#';
s:=192.12;
st:=FloatToStr(s);
showmessage(st);
Ответ отправил: komatoz (статус: 1-ый класс)
Отправлен: 26.03.2005, 04:04

Отвечает: sir henry
Здравствуйте, Roman_npi!
В модуле SysUtils находится переменная DecimalSeparator. Присвойте ей нужный Вам знак разделения.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.03.2005, 05:42

Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, Roman_npi!
Вроде никак(в книжке написано что энто глюк), в итоговой строке ручками поменяй запятую на любой символ(в цикле находишь и заменяешь)
Ответ отправил: Гриценко Юрий Алексеевич (статус: 3-ий класс)
Отправлен: 26.03.2005, 14:10


Вопрос № 18769
Здравствуйте.
Хочу в Delphi самостоятельно обработать некоторые сообщения окна. Как это возможно сделать?
Спасибо.
Отправлен: 25.03.2005, 21:01
Вопрос задал: andrey (статус: Посетитель)
Всего ответов отправлено: 5

Отвечает: mvp
Здравствуйте, andrey!
procedure Obrabotchik(var mes : TMessage); message WM_MESS;
Описываем подобную процедуру в классе формы, где вместо WM_MESS - подставляете ваше сообщение:
procedure TForm1.Obrabotchik;
begin
//-----
end;
Ответ отправил: mvp (статус: 1-ый класс)
Отправлен: 25.03.2005, 21:40

Отвечает: Malish
Здравствуйте, andrey!
Тебе надо просто производить обработку сообщений. Писать очень много и сообщений много. Давай мыло вышлю книгу и там все найдешь. Книга неплохая, и вроде все доступно описано о сообщениях: какие бывают, как отлавливать и обрабатывать.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 25.03.2005, 22:38

Отвечает: sir henry
Здравствуйте, andrey!
Все процедуры обработки сообщений должны отвечать следующим требованиям:
- Процедура должна быть методом объекта;
- Процедуре должен передаваться один передаваемый по ссылке параметр, т.е. с помощью описания var. Тип параметра должен быть TMessage или другой, зависящий от типа специализированного сообщения;
- Описание процедуры должно включать ключевое слово message, за которым должна следовать константа, задающая тип обрабатываемого сообщения.
Вот пример объявления процедуры, обрабатывающей сообщение WM_Paint :
procedure WMPaint(var Msg: TWMPaint); message wm_Paint;
Соглашение по присвоению имён требует присваивать обработчику сообщения то же имя, что и имя обрабатываемого сообщения, но без символа подчёркивания и указанием первым знаков имени прописными буквами.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.03.2005, 05:47

Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, andrey!
Отработай соответствующие события! Прототипы добавь дизайнером, либо руками перегрузив функции обработчики ведь форма наследуется от окна!
Ответ отправил: Гриценко Юрий Алексеевич (статус: 3-ий класс)
Отправлен: 26.03.2005, 14:17

Отвечает: Voituk Alexander
Здравствуйте, andrey!
Я почитал все ответы - вроде все правильно. Но попробуй еще так - переопредели в классе окна функцию WndProc. Это оконный (и не только) обработчик <b>ВСЕХ</b> сообщений, приходящих в окно. А в ней выбирай, какие тебе нужно и обрабатывай. Но не забывай вызвать родительский обработчик. Иначе труба :)))
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 28.03.2005, 15:23


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное