Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2

Модерирует : ShIvADeSt

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
Celeron



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! У меня проблема с использованием старой математической библиотеки IMSL Fortran 90 MP Library v4.01
 
Прикрутил её к своей программе на Delphi2006, через dll-обёртку, написанную на MS VC. Протестировал - реально работает - нашёл функцию, которая возвращает осмысленные ожидаемые данные - типа тест.
 
Далее подобрал данные так, чтобы вызывалась ошибка времени выполнения. И
столкнулся с проблемой, описанной здесь:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=35001
Программа вылетает с ошибкой. Кто с таким сталкивался и Решил, отзовитесь?
 
Когда открываю консоль в программа (директивой {$APPTYPE CONSOLE} или
командой AllocConsole() - не важно), то консоль открывается, НО программа у меня всё равно вылетает, хотя уже - молча! Т.е. эффект есть, но недостаточный.
 
Полагаю надо перенаправить вывод STD_ERROR_HANDLE в консоль.
Пробовал так:
     handle := FileOpen('debug.out', fmOpenWrite);
     b := SetStdHandle(STD_ERROR_HANDLE, handle);
И так:
     handle := GetStdHandle(STD_ERROR_HANDLE);
     SetStdHandle(STD_OUTPUT_HANDLE, handle);
Ноль эффекта!
 
Можете что-то подсказать на этот счёт? Спасибо!

Всего записей: 92 | Зарегистр. 05-08-2004 | Отправлено: 06:09 19-01-2007
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Celeron
Может это поможет.  
Пункт : Запись в Log-файл
_http://www.nmarket.ru/program/delphi/lessons-1/les-27.php

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 11:00 19-01-2007
Celeron



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Может это поможет.  
Пункт : Запись в Log-файл  

Спасибо, но не то. Это пример того, как автоматически открывать файл лога, путём лёгкого присоединения модуля - это просто трюк для Делфи. А писать в файл - не проблема. Проблема - перехватить STD_ERROR и направить в поток (файл или консоль)...

Всего записей: 92 | Зарегистр. 05-08-2004 | Отправлено: 16:19 19-01-2007
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Celeron
тогда из хелпа

Цитата:
Delphi syntax:
var ErrOutput: Text;
Description
In Delphi, the ErrOutput variable is a write-only Text file associated with the process's standard error output.
 
On Windows, most processes don't have a standard error file, and writing to ErrOutput raises an error. Delphi programs have a standard error file if they are linked as console applications

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 14:13 21-01-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Celeron
используй еврейку
__http://www.eurekalog.com/
 
Catches _every_ exception (юнит, либ, длл) оч простая в использовании, надёжная, панацея в общем...
всем рекомендую, спрашивать в варезе...

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 15:12 21-01-2007 | Исправлено: akaGM, 15:14 21-01-2007
batton

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа (и Дамы, ежели такие обитают в этой ветке)
Мне нужна ваша подсказка. Вопрос имеет отношение к Delphi, но косвенное.
суть: Есть база Access и программа написанная на Дельфи. Необходимо базу портировать в MySQL а все кизображения хранящиеся в базе - выгрузить в файлы.
Так вот проблема в том что при попытке чтения OLE полей скриптом написанном на PERL в файл выдает абсолютно непонятный набор данных.
Если попытаться открыть эти поля силами Access то выдает ошибку подключения OLE сервера, короче воспринимает он все как "двоичные данные".
После гуглирования проблемы сделал вывод что для корректной записи и отображения изображений хранимых в базе данных в Дельфи применяются различные ухищрения по обработке исходного файла.
Подскажите пожалуйста алгоритм этой обработки.
P.s.: с дельфи я к сожалению незнаком абсолютно. Поэтому прошу именно алгоритм, потому что реализовывать его буду на perl. Спасибо

Всего записей: 83 | Зарегистр. 18-08-2004 | Отправлено: 21:50 22-01-2007
Celeron



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так вот проблема в том что при попытке чтения OLE полей скриптом написанном на PERL в файл выдает абсолютно непонятный набор данных.  

Логично. Неинтерпретированный бинарный код OLE-объекта.
 

Цитата:
в Дельфи применяются различные ухищрения

Они применяются не в Делфи. Это алгоритмы OLE2.0 сервера. Причём специфического сервера, в данном случае - контейнер изображения.
 

Цитата:
Если попытаться открыть эти поля силами Access то выдает ошибку подключения OLE сервера, короче воспринимает он все как "двоичные данные".  

А вот это плохо - это свидетельствует, что OLE2.0 сервер контейнера либо не установлен на вашей машине, либо, что более вероятно, не поддерживает некоторых методов, которые запрашивает Access.
 

Цитата:
прошу именно алгоритм

Алгоритма ты не получишь. Он зашит в OLE-сервере контенера Микрософтом.
 
Работать с OLE можно только через Win32API см. PlatformSDK. А вообще смотри исходник Делфи, если есть, и посмотри какими вызовами он выдёргивает картинку из поля. (У меня в своё время не получилось реализовать подобное. Но я не сильно искал...)

Цитата:
с дельфи я к сожалению незнаком абсолютно

Чужие скрипты читать умеешь? Найди в чужом коде (ну и что что он написан на делфи) вызов картинки (если он есть).
А если исходников Дельфи программы нет, то остаётся только PlatformSDK (искать в MSDN).
 
P.S. Вообще-то тебе надо не перлом выдирать из Аксеса картинки, а другой Win32-программой. А на перле - уже будешь их использовать.

Всего записей: 92 | Зарегистр. 05-08-2004 | Отправлено: 00:10 23-01-2007
batton

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проблема в том что на форума access`овцы сказали мне - это заморочка дельфи и ничего не мешает просто зкинуть содержимое файла в ole поле как blob.
Исходника программы у меня нет. В принципе я потихоньку дергаю картиинки этой программой и сохраняю на диск, но их там 700 а скрипт сделает это все за секунды.
Если я правильно понимаю вас, то мне достаточно подключится к базе используя OLE (это тоже возможно но я ещё не пробовал) и забрать этот файл как OLE. или существуют другие методы достучаться до объекта?

Всего записей: 83 | Зарегистр. 18-08-2004 | Отправлено: 00:19 23-01-2007
Celeron



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
это заморочка дельфи и ничего не мешает просто скинуть содержимое файла в ole поле как blob.  

Здесь сказан бред. Правильно говорить: "ничего не мешает просто скинуть содержимое файла в поле типа blob." Да это было бы правильно - дельфи мог бы читать блобы и выводить на форму.
Но вы говорите OLE, может у вас никаких OLE-обёрток нет в БД Аксеса?
А если есть, то рекомендую спрограммировать на Access форму, на которую поместить объект Picture, который прекрасно читает картинку из связанного с ним поля, в котором картинка в OLE-обёртке. Полагаю, что у контрола Picture также должен быть метод, чтобы сохранить картинку в файл на диске. Надо юзать высокоуровневые объекты, а не "мифические алгоритмы делфи".
 

Цитата:
Если я правильно понимаю вас, то мне достаточно подключится к базе используя OLE (это тоже возможно но я ещё не пробовал)

Речь здесь совсем не о том, чтобы соединяться с базой, через OLEDB-провайдера или Access automation server! Думайте...

Всего записей: 92 | Зарегистр. 05-08-2004 | Отправлено: 04:09 23-01-2007
freedom83

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delphi indy 10
пишу программу для отправки писем.
1.как приаттачить файлы к письму по маске(*.txt) в указанной директории?
2. письмо с одним аттачем создается, но его время при получении стоит текущее время +3,00.
(кто виноват: программа или почтовый сервер)
3. как зашифровать и подписать файлы ключами типа *.asc

Всего записей: 100 | Зарегистр. 17-01-2006 | Отправлено: 10:49 23-01-2007
yuish

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишу различные проги на BDS2006 + SQLDIR+Девки, базы под MSAccess.
Все проги работают прекрасно начиная с 98 и до ХП.
Попробывал запустить из висты - если запрос идет к таблице - в прогах все отображается, а если к вьюхе - вылетает ошибка со ссылкой на kernel32.dll.
Может кто сталкивался с решением?
 
Кстати таже ошибка вылетает (в тех же местах) если экспортнуть акцесовскую базу из формата 2000-2003 акцесса под 2007 акцесс. В самом акцесе вьюхи открываются нормально.

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 15:50 29-01-2007
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Видимо какие то несовместимости в драйверах доступа к БД. Сырая виста еще.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 08:06 30-01-2007
YFred



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Написал сервис на Delphi, но переодически вылетает ошибка:
 
Не найдено описание для события с кодом ( 0 ) в источнике ( IntServ ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. Попробуйте использовать ключ /AUXSOURCE= для получения этого описания, - дополнительные сведения об этом содержатся в справке. В записи события содержится следующая информация: Service failed on execute: Not Connected.
 
ХЗ что это значит, может кто знает. И еще вопрос как в Делфях происходит отладка проекта службы????

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 13:36 30-01-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто работает/ал с EhLib - подскажите, что нужно сделать, чтобы наверху DBGridEh появилась строка для фильтрации с выпадающим списком? Просто строка фильтра появляется (но без вып.списка почему-то!) если св-во STFilter.Visible сделать true...

Всего записей: 3715 | Зарегистр. 19-04-2005 | Отправлено: 12:04 31-01-2007
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу сделать наследника TImage, который будет показывать вокруг себя рамку, если в данный момент в нем нет никагого изображения(что бы видно было где он находицо), ну и соответственно без рамки если в имадже есть изображение, или рамка может быть под изображением. Трабла в том что если в переопределенном Pain'те написать что-нибудь типа: Canvas.FrameRect(Rect(0,0,Width,Height)); то компонент начнет постоянно мерцать перерисовывая то рамку то картинку, как будто в цикле. Посоветуйте хотя бы в какую сторону смотреть. Заранее спасибо.

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 14:32 31-01-2007 | Исправлено: mainstream, 16:16 31-01-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
кажется, надо в пропертях колонки (TColumnEh) установить StFilter.DataField, KeyField ...

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 15:29 31-01-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
кажется, надо в пропертях колонки (TColumnEh) установить StFilter.DataField, KeyField ...

пробовал, не помогает
а хочу вот как на картинке http://i7.tinypic.com/2q9mi3p.jpg (что сейчас есть - красная стрелка на картинке), а нужно сделать так, как показано зеленой стрелкой (пример из DEMO).  
Братцы помогайте, именно такую фильтрацию хочет клиент!
 
Добавлено:
Так, заполнение списка сделал (спасибо RostY, направил в нужное русло!). Оказывается надо в пропертях колонки (TColumnEh) установить сначала StFilter.ListSource, а затем только StFilter.ListField и StFilter.KeyField. Всеё, список появился, но теперь фильтрация не работает! Т.е. выражение фильтра нормально выбирается из списка, но дальше ничего не происходит. Что делать-то еще ??

Всего записей: 3715 | Зарегистр. 19-04-2005 | Отправлено: 15:43 31-01-2007 | Исправлено: relictus, 16:07 31-01-2007
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freedom83

Цитата:
1.как приаттачить файлы к письму по маске(*.txt) в указанной директории?
FindFirst - FindNext
Цитата:
2. письмо с одним аттачем создается, но его время при получении стоит текущее время +3,00. (кто виноват: программа или почтовый сервер)
Его время при получении стоит то же, что и при отправке. +3 - это часовой пояс отправителя.
 

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 16:11 31-01-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
еще посмотри в папке DataService - там есть юниты, один из котрых надо прописать в юзесах (читай readme.txt в той же папке). И еще попробуй в пропертях грида поставь StFilter.Local:=True;

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 17:14 31-01-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
И если хочешь автоматической сортировки/фильтрации ни вкоем случае не создавай обработчиков соответствующего действия. Иначе автоматика не работает.
И поставить /*FILTER*/ и Order By в отдельную строку в самое начало.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 18:44 31-01-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru