Вопрос № 30772: Здрасвуйте!
Подскажите, пожалуйста, имеются два модуля в одном из них просходит расчет данных и занесение их в динамический массив. Во втором построение графика с помощью Chart. Массив описан след. образом:
Unit1
Var
PP: array of...Вопрос № 30784: Подскажите, пожалуйста как сохранять данные в MS Word. И можно ли сделать так, чтобы уже была готовая форма например:
Максимальное давление: 350
Время пути: 0,001 с
Масса: 380 г
Где 350; 0,001; 380 это данные полученные в программе.<b...Вопрос № 30793: Доброго времени суток господа Эксперты!!!
Мой вопрос:
Как конвектировать avi формат в dat формат программным путем????
Может есть какие-то программки которые это делают????
Зарание спасибо за помощь!!!
С Уважением,<...Вопрос № 30797: Подскажите, пожалуйста как сохранять полученные данные в MS Word и можно ли сохранять их уже в готовый бланк. Т.е. чтобы при отрытии в Word'е мы видели:
Максимальное давление 300
Время 0,001
Масса 348
где 300; 0,001; 348 - это получен...Вопрос № 30808: Здраствуйте!
Можно-ли узнать HOST (его название) на котором запущена программа?! Сделать это в делфи! Для последующей генерации ХТМЛ!
И ещё PageProducer меняет тэги на какую-либо информацию(например время), а может ли он вместо тэга вставить ...Вопрос № 30812: Здравствуйте господа!
Натолкнулся на не понятное поведение ADOQuery :( помогите, если знаете...
Ситуация следующая - запускаю запрос (0) в MSAccess - выполняется как надо (1), запускаю через свзяку ADO получаю результат (2) сгруппир...Вопрос № 30824: Ув Эксперты!
Возможно это будет и не лепый вопрос но у вы?
у меня проблемы с генератором случайных чисел.
Он у меня всё время повторяет числа как можно сдлеать чтоб он не повторял числа. я использовал примерно такое for i:=1 to 10 do <br...Вопрос № 30829: Вопрос:
На форме имеется объект Timage, есть обработчик события onclick.
И так как сделать так чтобы обработчик срабатывал только при нажатии на видимую область изображентя (tranparent=true)?...
Вопрос № 30.772
Здрасвуйте!
Подскажите, пожалуйста, имеются два модуля в одном из них просходит расчет данных и занесение их в динамический массив. Во втором построение графика с помощью Chart. Массив описан след. образом:
Unit1
Var
PP: array of extended;
TT: array of extended;
...
..
...
Unit2
В этом модуле вызывается модуль Unit 1. И ....
repeat
rascet;
form3.Series1.AddXY(TT[i],PP[i]);
i:=i+1;
В результате работы получаем сообщение об ошибке: Project Project1.exe raised exception class EInvalidOp with message 'Invalid floating point operation'. Process stopped. Use Step or Run continue.
Отвечает: Jadd
Здравствуйте, Артемова Марина!
Из Вашего кода не ясно где ошибка выскакивает. Шлите весь код либо сюда, либо мне на xlcoder@mail.ru
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 04.12.2005, 18:45
Отвечает: Архангельский Андрей Германович
Здравствуйте, Артемова Марина!
1) Он написал "Неправильная операция в плавающей точкой, Используй по шагам для продолжения". Не грех послушаться и посмотреть а в какой строке ошибка.
2) Коде приведено куча неизвестных переменных, которые могут вызвать эту ошибку.
3) Неизвестно что такое
form3.Series1.AddXY(TT[i],PP[i]);
скорее всего AddXY - имеет параметры Integer, а не extended
4) И, наконец, при разработке сложных вычислений, не грех завести систему отладки в виде протокола, чтобы распечатывала состояние переменных.
Отвечает: Romodos
Здравствуйте, Артемова Марина!
Обычно такле сообщение выскакивает, если вы делите на ноль. Поищите, где у вас может такое появится
Возможно тут.
dp:=(f*domegagp+pi*d1*l)*p*h/R-k*p*dW)/W;
Вообще, код останавливается на строчке, где вылетел.
Просто поставьте брейкпоинт и трассируйте программу по F7. Тогда узнаете где ошибка
--------- FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 04.12.2005, 18:47
Отвечает: sir henry
Здравствуйте, Артемова Марина!
Это означает: "Недопустимая операция с числом с плавающей точкой". Строка где ошибка у Вас должна быть выделена в окне с исходником IDE. Смотрите сами. Из кода, приведенного Вами, невозможно что-либо понять.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 04.12.2005, 18:48
Отвечает: Schmak
Здравствуйте, Артемова Марина!
'Ошибка при вычислениях с плавающей запятой'.
А в каком месте собственно возникает ошибка. При появлении ошибки соответствующая строка должна быть выделена.
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 04.12.2005, 20:14
Отвечает: Master135
Здравствуйте, Артемова Марина!
Наверняка тут dp:=(f*domegagp+pi*d1*l)*p*h/R-k*p*dW)/W; деление на ноль
--------- И пусть кто-то скажет что я не прав....
Ответ отправил: Master135 (статус: Студент)
Отправлен: 04.12.2005, 20:16
Вопрос № 30.784
Подскажите, пожалуйста как сохранять данные в MS Word. И можно ли сделать так, чтобы уже была готовая форма например:
Максимальное давление: 350
Время пути: 0,001 с
Масса: 380 г
Где 350; 0,001; 380 это данные полученные в программе.
Т.е. можно ли не писать через writeln слова: Максмальное давление, Время пути, Масса...
Отвечает: sir henry
Здравствуйте, Артемова Марина!
Не совсем понятно:
- Вы хотите сохранить документ Word из своей программы?
- Вы хотите передать данные в документ Word?
-------------------
Сделайте шаблон-документ, где уже присутствуют все те слова, которые Вам необходимы и никогда не изменяются, а потом этот шаблон подгружайте:
WordApplication1.Documents.Open(FileName,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam);
где FileName - имя вашего файла-шаблона.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.12.2005, 07:55
Вопрос № 30.793
Доброго времени суток господа Эксперты!!!
Мой вопрос:
Как конвектировать avi формат в dat формат программным путем????
Может есть какие-то программки которые это делают????
Отвечает: sir henry
Здравствуйте, Ujin Antikvar!
Для Вашего сведения:
avi и dat - это не формат файла, а всего лишь его расширения.
avi может быть как сжатым, так и не сжатым. Сжатие может быть выполнено по разным алгоритмам. Ну а расширение dat - это вообще универсальное расширение для файлов с данными. Так что для начала точно определитесь из чего и во что Вы хотите конвентировать, а потом уже задайте конкретный вопрос.
На счет програмок - обратитесь в соответствующую рассылку, а еще лучше - воспользуйтесь яндексом или гуглом.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.12.2005, 07:59 Оценка за ответ: 2 Комментарий оценки: Ну вопервых если говорится о avi и dat вместе то подрузумиваются видео расширения. А вовторых мне нужно переконвектировать из avi в dat.
Отвечает: Vadim Vitomsky
Здравствуйте, Ujin Antikvar!
Вообще-то для этого лучше использовать специализированное ПО. Лично я в этом случае пользуюсь Nero - создаю новый видеоСД, который пишу на виртуальный диск, а потом просто копирую с этого диска полученный dat-файл.
А еще можно попробовать программу VirtualDub, хотя я пока ее не пробовал.
Ответ отправил: Vadim Vitomsky (статус: 5-ый класс)
Отправлен: 05.12.2005, 11:40
Отвечает: Ataman N. N.
Здравствуйте, Ujin Antikvar!
Обычно такое делают программы для записи видео в формате VCD на CD. (Nero, NTI CD Maker и т.д.), но это может занять много времени (от 30 мин до 1-2 часов, а может и дольше).
Ответ отправил: Ataman N. N. (статус: 3-ий класс)
Отправлен: 05.12.2005, 19:01
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Ujin Antikvar!
Вопрос задан неточно. Что вы понимаете под .dat форматом? Он может быть каким угодно.
Подскажите, пожалуйста как сохранять полученные данные в MS Word и можно ли сохранять их уже в готовый бланк. Т.е. чтобы при отрытии в Word'е мы видели:
Максимальное давление 300
Время 0,001
Масса 348
где 300; 0,001; 348 - это полученные в программе данные.
А слова максимальное давление, время, масса не писать через writeln.
Отвечает: Tsechoev Bagaudin
Здравствуйте, Артемова Марина!
Создаешь шаблон Word, в Delphi создаешь новый документ на основе этого шаблона. Естестсвенно в шаблоне все уже готово насчет оформления и нужно только заменить некоторые объявленные нами переменные, реальными данными. К примеру Replace MaxDav, 300. Лучше всего узнать про методы Word или др. офисных продуктов, через запись макросов, совершаешь необходимые действия, останавливаешь запись, переходишь в редактор VB и смотрешь, что вызывалось и как.
Удачи!
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 05.12.2005, 05:31
Отвечает: Архангельский Андрей Германович
Здравствуйте, Артемова Марина!
Есть хороший компонент EKRTF, который выводит данные в шаблон, описание в приложении.
С другой стороны файл rtf можно легко сгенерировать самому
Отвечает: Vadim Vitomsky
Здравствуйте, Артемова Марина!
Лучше всего использовать дополнительные компоненты от сторонних разработчиков. Я выкачал себе несколько таких на сайте www.torry.net
Ответ отправил: Vadim Vitomsky (статус: 5-ый класс)
Отправлен: 05.12.2005, 11:42
Отвечает: Vbhjndjhtw
Здравствуйте, Артемова Марина!
Мариночка, есть вот такой интересный исходничек:
P.S. Если что неясно пишите на rdo04@bk.ru
Приложение:
--------- Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 6-ой класс)
Отправлен: 06.12.2005, 12:41
Вопрос № 30.808
Здраствуйте!
Можно-ли узнать HOST (его название) на котором запущена программа?! Сделать это в делфи! Для последующей генерации ХТМЛ!
И ещё PageProducer меняет тэги на какую-либо информацию(например время), а может ли он вместо тэга вставить большой текст с разметкой конечно?! Или есть другой компонент для этого?!
Отправлен: 05.12.2005, 09:50
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, chikanok!
1. Название хоста можно узнать с помощью функции GetHostName().
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.12.2005, 10:19
Вопрос № 30.812
Здравствуйте господа!
Натолкнулся на не понятное поведение ADOQuery :( помогите, если знаете...
Ситуация следующая - запускаю запрос (0) в MSAccess - выполняется как надо (1), запускаю через свзяку ADO получаю результат (2) сгруппированный по строчно.
В приложении запрос и что получается и что хочется.
Может надо какие то настройки сделать, чтобы Дельфи не сортировала сама?
Приложение:
Отправлен: 05.12.2005, 11:17
Вопрос задал: LanK (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, LanK!
У Вас есть явное указание на сортировку - ORDER BY. Вы что, сами этого не видите? Дельфи сортирует исключительно ПО ВАШЕМУ УКАЗАЕИЮ.
Только не надо говорить что в Access все выполняется как Вам хочется с тем же запросом. M$ - глюковина еще та и было бы лучше, если Вы прочитаете стандарты на язык SQL и какой-нибудь учебник по этому языку и будете придерживаться стандарта.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.12.2005, 11:58
Отвечает: Татьяна
Здравствуйте, LanK!
Просто Order By выполняется сразу ко всему выражению, а не к части как вы хотите, возможно помогут скобки, хотя, насколько я помню Delphi их не очень хорошо воспринимает (если вообще воспринимает, но попробовать наверное стоит). На сколько я помню, именно по этой причине я в свое время ушла от union, возможно и вы найдете другой путь.
Не знаю, помогла ли вам, но желаю удачи!!!
--------- Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 9-ый класс)
Отправлен: 05.12.2005, 21:17
Вопрос № 30.824
Ув Эксперты!
Возможно это будет и не лепый вопрос но у вы?
у меня проблемы с генератором случайных чисел.
Он у меня всё время повторяет числа как можно сдлеать чтоб он не повторял числа. я использовал примерно такое for i:=1 to 10 do
begin a[i]:=random(10); end; я вписывал в массив числа от 1 до 10 беспорядочно как это сделать? с/у Ера
Отправлен: 05.12.2005, 13:31
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 10 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Маренич Владимир
Здравствуйте, ERA!
Перед использованием random(n) используйте процедуру Randomize
Приложение:
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 05.12.2005, 13:47
Отвечает: Golden Spider
Здравствуйте, ERA!
Перед использованием функции RANDOM, используйте randomize. И числа не будут повторяться.
randomize;
for i:=1 to 10 do
begin a[i]:=random(10);
end;
--------- Знания ничто! Хорошие знания Всё!
Ответ отправил: Golden Spider (статус: 3-ий класс)
Отправлен: 05.12.2005, 14:10
Отвечает: sir henry
Здравствуйте, ERA!
На самом деле это генератор не случайных, а псевдослучайных чисел. Вам нужно было просто посмотреть в хелпе, как его правильно использовать.
Сначала нужно его просто-напросто запустить такой процедурой:
Randomize;
запускается он один раз, а потом можно генерировать как бы случайные числа и они будут разные:
Random; {Генерирует от 0 до 1}
Random(x); {Генерирует от 0 до Х}
Тем не менее повторения все равно до конца не избежать, поэтому, если Вы хотите соблюсти уникальность генерируемых чисел, Вам нужно проверять в списке уже имеющихся и если такое число есть, то генерировать заново.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.12.2005, 14:27
Отвечает: Ерёмин Андрей
Здравствуйте, ERA!
Система генерации случайных чисел такова, что всё время выдаёт одну и ту же последовательность случаных чисел. Чтобы повторов не было, нужно единожды, перед первым вызовом Random() вызвать Randomize() - без параметров.
--------- Где найти кpяк под ковpик для однокнопочного мыша?
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 05.12.2005, 14:37
Отвечает: Vadim Vitomsky
Здравствуйте, ERA!
Необходимо для инициализации генератора случайных чисел использовать процедуру Randomize. Вызов этой процедуры желательно сделать где-нибудь перед первым вызовом Random.
Ответ отправил: Vadim Vitomsky (статус: 5-ый класс)
Отправлен: 05.12.2005, 15:19
Отвечает: REFERI
Здравствуйте, ERA!
Генерируемые данной функцией числа являются псевдослучайными , и при каждом новом запуске вашего приложения будет вырабатываться одна и таже последовательность чисел . Если это недопустимо , надо рандомизировать генератор чисел, т.е. задавать ему каждый раз новое случайное исходное число. Рандомизацию осуществляет функция randomize Достаточно вставить где-нибудь в тексте программы (например, перед for i:=1 to 10 do ) оператор randomize; чтобы при каждом запуске приложения генерировалась новая последовательность
чисел.
Удачи в кодинге!
--------- Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: Студент)
Отправлен: 05.12.2005, 15:38
Отвечает: Schmak
Здравствуйте, ERA!
Для того чтобы при каждом новом запуске программы числа выдаваемые Randomом были различные необходимо перед его первым использованием следует вызвать Randomize.
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 05.12.2005, 16:27
Отвечает: Brutaller
Здравствуйте, ERA!
Совсем недавно наткнулся на интересную статью "Исследование генератора случайных чисел Delphi"
Почитать можно здесь http://cracklab.ru/art/rand.php
Очень рекомендую.
Ответ отправил: Brutaller (статус: 1-ый класс)
Отправлен: 05.12.2005, 19:59
Отвечает: Vbhjndjhtw
Здравствуйте, ERA!
На этом сайте есть ознакомительная версия уроков, но она Вам подойдёт в плане изучения работы с таймером http://umnik.rikt.ru/everest/distant/delphi.htm
--------- Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 6-ой класс)
Отправлен: 06.12.2005, 13:00
Отвечает: Лучников Юрий Владимирович
Здравствуйте, ERA!
Думаю Вам нужно инициализировать генератор.
Для этого достаточно перед вызовом функции random() вызвать процедуру randomize.
Вопрос:
На форме имеется объект Timage, есть обработчик события onclick.
И так как сделать так чтобы обработчик срабатывал только при нажатии на видимую область изображентя (tranparent=true)?
Отвечает: Ерёмин Андрей
Здравствуйте, Golden Spider!
Обрабатывайте коориднаты нажатия (X и Y) и соответствующие точки Image.Picture.Canvas.
--------- Где найти кpяк под ковpик для однокнопочного мыша?
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 05.12.2005, 14:39 Оценка за ответ: 4 Комментарий оценки: procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (image1.Picture.bitmap.Canvas.Pixels[x,y]<>image1.Picture.Bitmap.TransparentColor) then label1.Caption:='true'; else label1.Caption:='false'; end; А попроще нельзя? Кстати у image.picture нет CANVAS.
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Golden Spider!
Как вариант можно обрабатывать текущие координаты курсора и сравнивать, на каком пикселе он находится... if else ...
Ответ отправил: Лучников Юрий Владимирович (статус: 3-ий класс)
Отправлен: 06.12.2005, 14:36 Оценка за ответ: 5