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

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

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

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 4

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).

Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DmitryKz
    А стандартная демка dockex не подходит? Или вот еще: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342 Да и в JVCL на эту тему много интересного.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 10:38 25-03-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hi All  
    А как сделать формочку наподобие главной Делфийской ,  что бы обрезалась по высоте на ширину тоолбаров

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 12:06 25-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnSilver182, а в чём, собстенно, проблема? Свойство Height заюзать не судьба?

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 13:26 25-03-2010 | Исправлено: AviDen, 13:29 25-03-2010
    JohnSilver182



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen  ээээ , а сколько Height выставить ?? 100-300-500 ??

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 13:38 25-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnSilver182, так смотря сколько у тебя тулбаров... Ну, т.е., если смотреть на то же Delphi IDE (у меня семерка), то там высота вполне себе постоянна.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 13:49 25-03-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnSilver182
    а св-во autosize не подойдет?

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 15:26 25-03-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет, вопрос по Dll. К одному проекту нужно добавить dll с отчетами, кот будут из нее вызываться. Вот к примеру пусть проект Подробнее...
    и сама dll Подробнее... .Вопрос первый: почему при вызове отчета вызывает ошибку? (Access violation). Вопрос второй: как передавать параметры из маин формы в dll (в BDEquery). Стоит CodeGear2009 + fastreport 4.8. Заранее благодарен.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 15:51 25-03-2010
    AviDen



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

    Цитата:
    почему при вызове отчета вызывает ошибку?

    Ну, начнём с того, что вопрос приблизительно тождествен вопросу "почему у дяди Васи машина не едет". Когда именно возникает AV? Где stack trace?
     
    Позволю себе немного побыть телепатом и предположить, что ошибка возникает из-за того, что код в DLL отображает отчет внутри некоторой формы (класс TForm), который, как известно, весьма тесно связан на уровне кода с глобальным объектом Application (который у DLL создаётся свой, собственный, вместо того, чтобы использовать уже имеющийся. А точнее, даже не создаётся, а = NIL, из-за чего ты и получаешь AV).
     
    Решение: чтобы Delphi-код в динамически загружаемом модуле мог использовать не свои собственные экземпляры глобальных объектов (а также классы, модули и пр.), а имеющиеся в главном приложении, его нужно помещать не в DLL, а в BPL.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 16:08 25-03-2010 | Исправлено: AviDen, 16:09 25-03-2010
    JohnSilver182



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

    Цитата:
    а св-во autosize не подойдет?
     А ! точно !

    Всего записей: 829 | Зарегистр. 03-06-2009 | Отправлено: 16:16 25-03-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen
    Т.е. мой код который я прикрепил выше никак работать не будет в dll?
     
    Добавлено:
    ругается на     frmReports.frxReport1.showreport;

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:24 25-03-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
     
    Может, попробовать оттрэйсить в дебаггере сам showreport - да посмотреть, где именно он "падает"?

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 16:56 25-03-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    Я пробовал сделать его только с одной надписью "Тест", тоже самое.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 16:59 25-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos, Man_Without_Face
    трейсить ничего не нужно, разве что из спортивног интереса ))
    причину бага я ж назвал

    Цитата:
    Т.е. мой код который я прикрепил выше никак работать не будет в dll?

    В DLL именно в том виде, что ты показал - нет. Я ж говорю, проще всего это компилять в BPL, которую и подключать к проекту. BPL-ки, кстати, можно же и динамически грузить, если я не ошибаюсь, т.е. они полноценно заменяют DLL.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 17:18 25-03-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    Или ну их эти BPL, просто включите всюду рантайм пакеты. Эффект в принципе будет тот же.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 18:32 25-03-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    delover
    Ого, я не понимаю такое. Всегда казалось что временной пояс берется из параметров системы. Это каждый раз надо минусовать / плюсовать час или в DateUtils завязаны на каком-то времени все функции?

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 20:32 25-03-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
    было что то похожее. лень было разбираться
    в модуле длл добавил форму на которую положил фаст
    и все пошло. единственное форму из длл --create но не показывал  
    и в форме процедура показа репорта без его создания.
    Код:
    Procedure PluginExec; stdcall;
    begin
      FormR:= TFormR.Create(nil); // форма с фастом
      try
      FormR.ShowMyReport; // а тут только заполнение параметров и fast.showreport  
      finally
        FreeAndNil(FormR);
      end;
    end;    //
     
    кстати
    Код:
    Procedure PluginExec(AppHandle:THandle)
    begin
      Application.Handle:=AppHandle;  
    ...
    finally
      Application.Handle:=0;  

     не создает отдельного окна

    Цитата:
    Вопрос второй: как передавать параметры из маин формы в dll  

    как больше нравится pchar, type (record) и т.д.

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 07:44 26-03-2010 | Исправлено: greenpc, 08:08 26-03-2010
    AviDen



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

    Цитата:
    Или ну их эти BPL, просто включите всюду рантайм пакеты. Эффект в принципе будет тот же.

    Кхм, а рантайм-пакет, это Вам не BPL?
     
    greenpc, правду говорят, век живи - век учись... Сколько компонентов под Delphi переделал, а вот только сейчас узнал, что Application.Handle, оказывается, доступно на запись. Ну, тогда это полностью снимает все вопросы, я думаю, что и танцы с созданием, но не отображением формы будут не нужны.
     
    Но в любом случае, использовать bpl будет немного эфективнее, т.к. если компилить dll-ку и в ней присваивать Application.Handle - всё будет работать отлично, кроме того, что в длл будет включена своя собственная копия модуля Forms, Controls и иже с ними. В случае же с BPL - нет (при условии, если соответственно настроить Requires list у бпл-ки и runtime package list у приложения).

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 10:09 26-03-2010 | Исправлено: AviDen, 10:10 26-03-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen
    давайте не будем смешевать bpl и dll
    автор просил dll - пожалуйста
    а что эффективнее надо смотреть от задачи. мне часто приходится писать программу и модули на разных языках. поэтому вариантов обмена не так много

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 11:33 26-03-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc, да я и не пытаюсь. Я говорил исключительно о данном частном случае, а в нем и хост-приложение, и dll-ка писаны на дельфи/vcl, так что использование bpl, а не dll никак не ухудшит совместимость. Хотя, как говорится, каждому каждое, кто как хочет, так и пишет ))

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 15:21 26-03-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen
    Имелось ввиду, что расширение dll-ки останется. А так в принципе никакой разницы.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 20:38 26-03-2010
       

    Страницы: 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 101

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru