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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    apnss
    Будьте так добры, перенесите вашу полемику о том, кто прав, кто неправ в личку и бейте там морду друг другу сколько влезет. Пока обсуждались программирование гитар, струн, бубнов и других музыкальных инструментов, - это нормально. Но когда пошла перепалка, и рвание тельняшек на груди, это уже перебор. Думаю, что выскажу общее мнение, если скажу, что читать ваши буйные эмоции как минимум не интересно, а по существу является оффтопом и напрягает. Реально, избавте от этого.
     
    ЗЫ: обсуждение вопроса про гитары тоже уже затянулось, и тоже было бы неплохо перенести это обсуждение в личку, ибо вряд ли кого-то, кроме автора вопроса эта тема еще заинтересует.

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 04:29 12-04-2010
    apnss

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    psa1974
     
    приношу извинения за причиненные неудобства  
     
    А Odysseos предлагаю продолжить истерить и брызгать слюной в этой теме http://forum.ru-board.com/topic.cgi?forum=33&topic=11124

    Всего записей: 708 | Зарегистр. 26-02-2002 | Отправлено: 10:39 12-04-2010
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обсуждение гитары изначально следовало вести в ОТДЕЛЬНОМ топике, так как здесь рассматриваются типовые вопросы, то есть вопросы на которые ответ дается в два три поста. Что то более глобальное лучше сразу спрашивать отдельно. И суть не потреяется и кому надо будут помогать.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 11:56 12-04-2010
    svs123456789

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    печать в дэлфи:  
    сначала помещал строки в ричэит и затем его же методом и печатал...
     
    постепенно кол-во строк выросло....
     
    как добавлять колонтитулы и номер страницы на каждую страницу?
     
     

    Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 12:24 12-04-2010
    Bonivur



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

    ----------
    Что будет стоить тысяча слов когда важна будет крепость руки? (В.Цой)

    Всего записей: 655 | Зарегистр. 22-06-2003 | Отправлено: 13:07 12-04-2010
    ShIvADeSt



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

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

    Данная тема изначально задумывалась как что то типа ФАКа (типа как сделать паузу, как сменить заголовок). То есть вопрос и в паре постов ответ. Обсуждение более менее серьезных вещей (а перебор с вариациями из этой оперы) предполагалось выделять в отдельные топики (как пример цветное мемо), автору проще найти ответы на свой вопрос, да и разговор получается более предметный. Но это на усмотрение автора вопроса, я могу только порекомендовать вынести тему отдельно

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 13:56 12-04-2010
    V1s1ter



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

    Цитата:
    как добавлять колонтитулы и номер страницы на каждую страницу?  

    С TRichEdit давно не работал, так что возможно ошибаюсь, но по моему TRichEdit не имеет готового механизма работы с номерами страниц и колонтитулами, поэтому думаю так: при печати создать "новый" документ (можно экземпляр TRichEdit) с вставленными строками с номером страницы и колонтитулами и переформатированный под заданный размер листа. Это типа по существу, но хотел порекомендовать отказатся от стандартного  TRichEdit, а воспользоваться, если это возможно, связкой RichView+ScaleRichView или WPTools. Рекомендую потому, что требования к функциям может расширится и лучше иметь компонент уже готовый к "расширению".

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 14:00 12-04-2010
    svs123456789

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

    Цитата:
     отказатся от стандартного  TRichEdit, а воспользоваться, если это возможно, связкой RichView+ScaleRichView или WPTools. Рекомендую потому, что требования к функциям может расширится и лучше иметь компонент уже готовый к "расширению".

    а разве там есть колонтитулы ?

    Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 16:00 12-04-2010
    V1s1ter



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

    Цитата:
    а разве там есть колонтитулы ?

    Вы посмотрите демку и все поймете, в кратце это уже готовый (естественно упрощенный) MS Word, включая и колонтитулы и таблицы и т.п.
     
    Добавлено:
    В догонку.
    Естественно с уже готовым интерфейсом пользователя, но можно и все програмно сделать. К стати с библиотекой для плана здания (или чего там) определились?

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 16:48 12-04-2010 | Исправлено: V1s1ter, 16:51 12-04-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток, может кто нибудь поможет устранить проблему: Стоит CodeGear 2009 (c 2007 тоже самое) + SyBase 8.0. Открываю любой проект, компонент TDataBase при connected в  true выдает ошибку: An error occurred while attempting to initialize the Borland Database Engine (error 2501$). Недавно все было нормально, вроде ничего не крутил, в настройках BDE и ODBC вроде все нормально. Если открыть проект из BDS 2006 то все нормально.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 17:48 14-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face, BDE error 2501 = "Insufficient memory for this operation."
    Попробуй поиграть с увеличением параметров SHAREDMEMSIZE, MAXBUFSIZE и MAXFILEHANDLES.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 18:30 14-04-2010
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen
    В BDE администраторе -> configuration -> system -> init поставил SHAREDMEMSIZE, MAXBUFSIZE и MAXFILEHANDLES в два раза больше... не помогло.
     
     
    Добавлено:
    Все проблему решил, просто нужно было удалить одну программку.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 09:34 15-04-2010
    Wahnsinn



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    на какой тип заменить один из параметров функции из сишной dll ..., byte **data,  ... при вызове ее из delphi, из описания: data - содержит id созданного документа.

    Всего записей: 129 | Зарегистр. 20-01-2007 | Отправлено: 20:21 15-04-2010
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Wahnsinn
    лучше бы ты оригинальный хидер здесь привёл...
    ну а навскидку:
     
    bla_bla_bla(var data: pointer);
     
    или:
     
    type
      PDOCID = ^Byte;
    bla_bla_bla(var data: PDOCID);

    Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 21:28 15-04-2010 | Исправлено: akaGM, 21:31 15-04-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Wahnsinn
     
    Две звездочки - "указатель-на-указатель", но для Delphi правильней будет var data: PByteArray (если через этот параметр функция только получает данные - то const data: PByteArray, если только возвращает - то out data: PByteArray), где PByteArray = ^TByteArray; TByteArray = array [0 .. 0] of Byte;
     
     
    akaGM
     
    Параметр byte ** (или int **, или что угодно еще) функции в C - это, как правило, указатель-на-указатель не на отдельное значение соответствующего типа, а на массив элементов соотв. типа, длина для которого задается соседним параметром (ну или определенным значением внутри массива - как в случае со строками).

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 21:52 15-04-2010
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Odysseos
    я не телепат, поэтому и прошу хидер...

    Цитата:
    data - содержит id созданного документа.

    и где здесь сказано, что это массив?
    как правило, id -- это число, не более того...
     
    и вообще, вот так будет правильнее:

    Код:
    {$R-}
    TByteArray = array[0..0] of Byte;

    Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 22:01 15-04-2010
    Wahnsinn



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

    Код:
     
    DWORD __stdcall ScanEx(HWND hwndParent,
                                          DWORD flags, char *scanType,
     char *taskType,
                                          DWORD docType, DWORD urgency,
                                          char *params,
                                          char *ip,
                                          DWORD * count, byte*** images,
                                          DWORD ** lengths, char ***filenames,
                                          byte **data, DWORD *datalen,
                                          char * msg);
     
     flags = 0,
     docType, urgency - 0
     params = null
     count, images, lengths = NULL, filanmes = NULL,
     data - содержит id созданного документа
     datalen - содержит длину поля data.
     

    Всего записей: 129 | Зарегистр. 20-01-2007 | Отправлено: 22:24 15-04-2010
    Odysseos



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    Wahnsinn
     
    Как я и предполагал:
     

    Цитата:
     
    byte **data, DWORD *datalen,
     

     
    Это будет
     

    Код:
     
    out data: PByteArray; out datalen: Cardinal;
     

     
     

    Цитата:
     

    Код:
     
    {$R-}
    TByteArray = array[0..0] of Byte;
     

     

     
    Контроль границ массива по умолчанию выключен. Мало того - я ни разу не встречал, чтоб кто-то где-то его включал. В любом случае - правильней заменить [0 .. 0] на [0 .. High(Integer) - 1].

    Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 23:18 15-04-2010 | Исправлено: Odysseos, 23:21 15-04-2010
    Wahnsinn



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Odysseos
    akaGM
    ok, спасибо всем, собственно тест будет завтра удаленно, но с другими их функциями до этого все было нормально, думаю в этот раз тоже гладко пройдет.  

    Всего записей: 129 | Зарегистр. 20-01-2007 | Отправлено: 00:49 16-04-2010
    akaGM

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

    Цитата:
    Мало того - я ни разу не встречал, чтоб кто-то где-то его включал.

    с законами Мэрфи знаком?
    если есть хоть малейшая дырка, она обязательно себя проявит
    на личном, так сказать, опыте...

    Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 13:23 16-04-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