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

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



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

    Цитата:
    я уже зделал по другому с помощю afterinsert  

    Смотрите, чтоб этот afterinsert, не мешал нормальной вставке записей, в том числе и программной, ведь он будет вызываться не только при нажатии down...

    Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 16:12 08-10-2009
    d0m1nat0r321

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

    Цитата:
    Смотрите, чтоб этот afterinsert, не мешал нормальной вставке записей, в том числе и программной, ведь он будет вызываться не только при нажатии down...
    я знаю я уже ево использовал для универсального ключа (етим ключом я создаю подбазы(как в 1с код и тип даних для оприделенного регистра, в даном методе к опредиленной записи)), если чтото мне надобудет без идентификатора прописать тогда использую ваш метод ))

    Всего записей: 8 | Зарегистр. 07-10-2009 | Отправлено: 16:31 08-10-2009
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
    Да, спасибо. Я как раз на днях сделал себе юнит для рабоыт со службами. Думаю может присутствующим в этой теме он тоже пригодиться.
    Дальше
    psa1974
    Загружаю диалог из ресурсов и запускаю отдельный поток при инициализации диалога. Отдельный поток нужен чтобы можно было отображать данные в листбоксе по мере продвижения результата от выполнения вспомогательных функций, а манипуляции с диалогом вплоть до интерфейса идут уже в основном потоке приложения.
    ProcessMessage неохота использовать, с ним все рывками получается (по крайней мере сколько не использовал раньше код nonvcl этой процедуры, фигня какая-то, особенно сильно это хаметно когда требуется при выполнении чего-либо такого объемистого изменять размер окна, отрисовка окна капец кусками идет, да и система вопит иногда что приложение не отвечает), да и все равно поток отдельный лучше на мой взгляд, пускай себе там крутится цикл, все равно его грохнуть можно в любой момент.
    Сделал так, вроде работает
    Всем спасибо за подсказки.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 19:13 08-10-2009
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Насчет отдельного потока - понятно. А модулек забрал - никогда не знаешь заранее где что пригодится

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 21:27 08-10-2009
    Grande



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот на такой глюк наткнулся в Advanced Import версии 3.1.0.8:
    При импорте в дбгрид из xls при количестве строк более 70 происходит Access Violation.
    Причем дело вовсе не в записях - установил эмпирическим путем.
    Откатился на версию от января 2008 - тот же xls в тот же DBGrid залетает быстрее звука.
    Никто не сталкивался с подобным?
    P.S. У меня привычка: при появлении новых версий библиотек выкидывать старые. Так я еле нашел на просторах инета старую версию, когда до меня доехало, что глюк в Advanced Import.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 06:59 09-10-2009
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    а вообще стОит почитать истоки
    _http://msdn.microsoft.com/en-us/library/ms686953(VS.85).aspx

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 08:14 09-10-2009
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто подскажет как сделать перехват вывода консоли если в консоль выводится больше 32к символов.
    Если ставлю хук обрабатываются события
        EVENT_CONSOLE_CARET:
         EVENT_CONSOLE_END_APPLICATION:
         EVENT_CONSOLE_UPDATE_REGION:
        EVENT_CONSOLE_UPDATE_SIMPLE:  
        EVENT_CONSOLE_UPDATE_SCROLL:
        EVENT_CONSOLE_LAYOUT:
        EVENT_CONSOLE_START_APPLICATION:
    когда начинается скролл в консоле CARET показывает одно и то-же значение
    т.о. асинхронно невозможно определиться сколько строк пришло в консоль
    Сейчас так
    ...
          if coninfo.dwCursorPosition.Y > (csize - 600) then
          begin
           // по мере заполнения прибавляем размер буфера консоли для того чтобы исключить скроллинг буфера экрана
            csize := min(csize + add_lines, 32767); // Ограничение по количеству строк в консоли
            xy.X := coninfo.dwSize.X;
            xy.Y := csize;
            SetConsoleScreenBufferSize(СonsHndl, xy);
         end;
    ...
            ReadConsoleOutputCharacter(GBackFrm.ConsHndl, szBuffer, ToWCount, xy, WCount);

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 01:09 13-10-2009
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuriyRR
    ИМХО AttachThreadInput в инете куча инфы по перехвату того, что вводят в консоли.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:15 13-10-2009
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
    Это про перехват вывода консоли
    Забыл добавить что это конечно работает через пипе только в случае с пипе неразрешимая проблема с буферизацией вывода, отчего приемник получает поток кусками, что не приемлемо

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 03:33 13-10-2009
    mdid

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

    Код:
     
      list  : TStringList;
     
     
      list:=TStringList.Create;                          <=
      ComboBox1.Items.Clear;
      list:=GetSect(Form2.path+'\Enu.ini','Тип цен');
      for I:= 0 to List.Count - 1 do
        ComboBox1.Items.Add(List.Strings[i]);
      ComboBox1.ItemIndex:=0;
      list.Destroy;
     

     
    =>[DCC Hint] Doc_RetailInvoice.pas(134): H2077 Value assigned to 'list' never used
     
    почему?

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 21:31 13-10-2009
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mdid
    Ваш list - всего лишь указатель на обьект (только благодаря магии компилятора нам не приходится каждый раз писать list^). Тут вы присваиваете этому указателю одно значение:
    Код:
    list:=TStringList.Create;
    А тут другое:
    Код:
    list:=GetSect(Form2.path+'\Enu.ini','Тип цен');
    В результате получаете как минимум утечку памяти. В тему: http://delphikingdom.com/quintana/quintana.asp?ItemID=11 А это вообще мега-статья: http://delphikingdom.com/asp/viewitem.asp?catalogid=1392

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:56 13-10-2009 | Исправлено: Frodo_Torbins, 21:58 13-10-2009
    mdid

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

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 22:35 13-10-2009
    Jonnywin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, знающие люди, запарился уже... Как сделать, чтоб код события вставлялся в конец исходного кода программы, а не в середину (в алфавитном порядке???). Поясню - я бросил на форму кнопку, тыкнул по ней два раза мышью - автоматически создался код обработки нажатия кнопки и меня переносят в исходный код программы. Так вот, обработчик нажатия НЕ ДОБАВЛЯЕТСЯ в конец исходного кода, а вставляется в середину, скорее всего в алфавитном порядке или вообще хрен знает как. А как сделать, чтоб добавлялся в конец?
     
    Надеюсь, понятно объяснил. Заранее спасибо.

    Всего записей: 124 | Зарегистр. 26-08-2006 | Отправлено: 06:46 14-10-2009
    ShIvADeSt



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

    Цитата:
    Так вот, обработчик нажатия НЕ ДОБАВЛЯЕТСЯ в конец исходного кода, а вставляется в середину, скорее всего в алфавитном порядке или вообще хрен знает как.

    У меня добавляется в конец. Версия Дельфи как минимум нужна.

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

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 06:49 14-10-2009
    Jonnywin

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

    Цитата:
    У меня добавляется в конец. Версия Дельфи как минимум нужна.

    Виноват. Delphi 2009. Раньше работал в "семерке" - проблем не было.

    Всего записей: 124 | Зарегистр. 26-08-2006 | Отправлено: 07:13 14-10-2009
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonnywin
    Такаое поведение началось с тех пор как интерфейс Дельфи стал "MS Visual Studio"-образным...
    Тоже поначалу бесило, потом привык. Но если кто подскажет как побороть, буду рад, хотя мне кажется, что нигде такой "галочки" не найдется. Разве что писать своего эксперта...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 09:21 14-10-2009
    Varenik



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    psa1974
    При пользовании ModelMaker CodeExplorer есть настройки сортировки как интерфейсной части, так и реализации


    ----------
    Если нравится, считайте, что получилось…

    Всего записей: 1766 | Зарегистр. 21-07-2001 | Отправлено: 12:20 14-10-2009
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonnywin
    Рекомендую GExpert Ctrl+G список функций и методов с поиском + букмарки
    и уже не важно в каком порядке они в коде

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 15:13 14-10-2009
    SIgor33

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как програмнно из delphi удалить макрос с книги excel

    Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 15:05 15-10-2009
    AlexMoor

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые гуру!
    Помогите пожалуйста со следующей проблемой.
    Имеем: TActionManager, TActionToolBar;
    Одна из кнопок тулбара в зависимости от ситуации должна иметь или не иметь выпадающее меню (назовем его так, хотя конечно это тоже всего-лишь TActionClientItem'ы), и для разных случаев разное.
    Чтобы не создавать эти меню руками, собрал их все в еще одном TActionManager ( TActionBarItem'ы -> TActionClients). Теперь в зависимости от ситуации пытаюсь присвоить:
    ActionManager.ActionBars[№].Items[№].Items.Assign(какой-то из дополнительных TActionClients). Всё проходит без ошибок, у ActionManager.ActionBars[X].Items[X] (т.е. конечной кнопки) изменяется и Items.Count, и Items.VisibleCount, но кнопка не перерисовывается, т.е. у нее не появляется DropDown-стрелка. Попытки рефрешить тулбар ни к чему не приводят. Я в чем-то не прав или это глюк? Похожий фокус только на основе простых TToolButton и PopupMenu работает у меня уже очень много лет в многих приложениях. Может зря трогал?

    Всего записей: 21 | Зарегистр. 09-01-2007 | Отправлено: 18:13 15-10-2009
       

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