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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Да, точно. Двумерный динамический массив это по сути одномерный динамический массив с указателями на одномерные дин. массивы. Причем эти массивы не обязаны лежать в памяти вместе, а могут быть разбросаны по оперативке как угодно. Т. о. в данном случае мы можем использовать только один большой одномерный дин. массив.
    И кстати память под такие массивы выделяет менеджер памяти делфи, а вы, я вижу, пытаетесь использовать исключительно системный.
     
    И кстати рисовать черным по черному, это оригинально Остальные замечания в коде.

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 00:49 03-05-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins
    Спасибо за исправления.
     
    По поводу замечаний:
    1) В WM_PRINTCLIENT я зачищаю буфер кистью, которая идет у контрола по умолчанию, поэтому я могу сразу WM_COLORSTATIC в родителе использовать для закраски фона контрола. По умолчанию контрол должен вести себя как STATIC.
    2) Рисую сетку черным потому что если рисовать на дефолтовом фоне контрола другим цветом оно еле заметно будет или расплываться + вдальнейшем можно конечно же добавить надстройку для смены цветов.
    3) Наверное лучше не использовать при отрисовке координаты от ps.rcPaint, ведь ежели закрыть часть контрола другим окно будет смещение позиции блиттинга.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 11:53 03-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Ну, вам виднее, как оно у вас там будет взаимодействовать. По поводу ps.rcPaint согласен, просто вчера вечером было лень придумывать лучшее решение. По хорошему там вообще надо не StretchBlt делать, а размер самого битмапа менять и его отрисовку настраивать.

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 13:23 03-05-2010 | Исправлено: Frodo_Torbins, 13:24 03-05-2010
    0D0A

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как сделать свое окно полностью прозрачным для курсора мыши? Те чтобы все события мыши шли к нижележащему окну? Нижележащие окна могут принадлежать другим приложениям, так что обработака WM_NCHITTEST с HTTRANSPARENT не помогает...

    Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 16:02 03-05-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    0D0A
    Навскидку, SetWindowLong со стилем WS_EX_TRANSPARENT, если это то что вам нужно.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:47 03-05-2010
    0D0A

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо. Методом тыка получилось с WS_EX_TRANSPARENT or WS_EX_LAYERED и ненулевое SetLayeredWindowAttributes. Одно WS_EX_TRANSPARENT не помогает. В MSDN ни слова про мышь.

    Всего записей: 158 | Зарегистр. 21-09-2009 | Отправлено: 16:59 03-05-2010
    AviDen



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

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 11:09 04-05-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У кого соображалка хорошо работает, помогите мне с зеркалированием части изображения с контекста.
     
    Ссылка
     
    Вобщем-то в модуле F_StatBeat.pas в строчке 126 необходимо координаты правильно выставить для StretchBlt. Я что-то не пойму, вроде все правильно делаю, а оно мне половину картинки растягивает, а не блиттит. Правая часть собственно простецки через BitBlt выводится как и нужно.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 21:10 04-05-2010
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Может отдельную тему создать (например, Рисование на Дельфи при помощи API функций) - все таки рисование на Дельфи при помощи АПИ функций достаточно интересная тема и если все будет вместе - то другим будет проще потом использовать.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:24 05-05-2010
    V1s1ter



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

    Цитата:
    Вобщем-то в модуле F_StatBeat.pas в строчке 126 необходимо координаты правильно выставить для StretchBlt.

    Вот что у меня получилось

    Код:
     
    StretchBlt(pcp.hdcMem, pcp.biHalf-1, 0, -pcp.LeftPos, pcp.biHeight, hdcMem, pcp.biHalf, 0, pcp.LeftPos, pcp.biHeight, SRCCOPY);
     

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 02:35 05-05-2010
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    Не знаю, как по мне, то неплохо было бы если бы была такая тема, где выкладывались демо-примеры, чтобы каждый желающий смог посмотреть реализации.
    V1s1ter
    Спасибо.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 12:47 05-05-2010
    SIgor33

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто нибудь делал парсер для svg формата. Будь добры скиньте.

    Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 09:29 07-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SIgor33
    В библиотеке AggPas кое что есть: http://www.crossgl.com/aggpas/aggpas-svg.htm

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 19:48 07-05-2010
    ShIvADeSt



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

    Цитата:
    Не знаю, как по мне, то неплохо было бы если бы была такая тема, где выкладывались демо-примеры, чтобы каждый желающий смог посмотреть реализации.

    Организуй такую тему

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:43 08-05-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, уважаемые. Тут возник вопрос такого плана:
    Использую FastReport для вывода на печать таблицы (cxGrid) в Form1. На Form2 есть другая таблица (StringGrid), в нее производится загрузка данных из excel-файл.
    Все отрабатывает за исключением одного момента.  
    Если я загрузку данных в StringGrid не произвожу, то печатная форма (FastReport) выводится отлично. Если же производил загрузку - то при попытке вывести на печать данные с cxGrid на Form1 - получаю диалог печати с отсутствующим листом с данными - который должен выводиться на печать. Приходится перезапускать программу. Может кто сталкивался, в каком направлении искать ошибку? Спасибо.

    Всего записей: 951 | Зарегистр. 24-03-2004 | Отправлено: 21:57 10-05-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egerLESHIK
    Одно из направлений - проверить ошибки доступа к памяти. Может вы в коде работы со стринггридом затираете чего чужого.

    Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 22:24 10-05-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Походу этот баг наблюдается еще до импорта данных в таблицу StringGrid.
    Она возникает когда я уже выбрал файл для импорта:
    Код процедуры выбора файла ниже:
     
    Код
     

    Всего записей: 951 | Зарегистр. 24-03-2004 | Отправлено: 13:32 11-05-2010 | Исправлено: egerLESHIK, 15:26 11-05-2010
    mdid

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    egerLESHIK
     
    попробуте положить TOpenDialog на форму а не создавать динамически...так же попробуйте оставить Button2Click пустым(тело процедуры)...а потом открыть отчет...может вовсе и не в этом куске дело...так же гляньте что в OnShow OnCreate onClose в Form2

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 13:51 11-05-2010
    egerLESHIK



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mdid
     
    Событий OnShow OnCreate onClosе нет на Form2 Попробовал просто вбить путь к файлу через процедуру загрузки в StringGrid - данные загрузились, потом закрыл Form2 и попробовал вывести печатную форму на Form1 из cxGrid код отработал - форма создалась без проблем.
     
    Положил компоненту Opendialog на Form2 переписал код чтобы открывало через нее результаты такие:
    - открываю диалог, не выбираю файл, закрываю Form2, формирую печатную форму для cxGrid - все работает;
    - открываю диалог, выбираю файл, закрываю Form2, формирую печатную форму для cxGrid(загрузку в StringGrid не производил) - не работает;
     

    Всего записей: 951 | Зарегистр. 24-03-2004 | Отправлено: 15:18 11-05-2010
    YFred



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Пишу сервер на Delphi, использую компонент   TServerSocket
    приложение клиент мне отправляет данные как мне в обработчике события OnClientRead обработать данные побайтово? в первом байте у меня находится команда к серверу и мне надо этот байт прочитать. И в зависимости от того что в нем читать определенным образом оставшиеся данные.
    Помогите пожалуйста.

    Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 17:04 11-05-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