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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



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

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


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


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alsterkh
    При создании новой формы обычно вызывается Screen.OnActiveFormChange (иногда глючит). Ну а дальше можно через FreeNotification попробовать.
    У меня у самого в программе список MDI-окошек в виде табов сделан. Могу выложить если нужно.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:39 09-10-2013 | Исправлено: Frodo_Torbins, 12:40 09-10-2013
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    переопределить метод Application.CreateForm и иже с ним
     
    Добавлено:
    или повеситься на Application.OnIdle
    и просматривать Screen.Forms

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 12:39 09-10-2013
    Dmitry

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alsterkh
    А если унаследовать все формы приложения от общего предка, в конструкторе которого уже делать все что нужно при создании?

    Всего записей: 81 | Зарегистр. 24-09-2003 | Отправлено: 13:27 09-10-2013
    alsterkh

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins, ага, спасибо, повесился на это событие и там проверяю список форм
    XPerformer, спасибо, но потом еще надо ловить их уничтожение, про OnIdle - лучше вариант от Frodo_Torbins
    Dmitry, идея, наверно, хорошая, но лопатить кучу форм не хочется
     
     

    Всего записей: 181 | Зарегистр. 07-10-2009 | Отправлено: 15:16 09-10-2013 | Исправлено: alsterkh, 15:17 09-10-2013
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alsterkh
    зачем ловить уничтожение, Screen.Forms - это уже готовый список рантайм форм

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 15:20 09-10-2013
    alsterkh

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XPerformer, согласен, но главное вовремя его проверить  и тут Screen.OnActiveFormChange как раз кстати

    Всего записей: 181 | Зарегистр. 07-10-2009 | Отправлено: 15:33 09-10-2013
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alsterkh
    дело хозяйское, но я тоже сталкивался с тем, что он не всегда срабатывает

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 15:58 09-10-2013
    Man_Without_Face



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

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 18:58 22-10-2013 | Исправлено: Man_Without_Face, 13:52 23-10-2013
    Grande



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые Мастера, посоветуйте.
    Имеется код:

    Код:
    procedure TfrmFrame.WaitStr(Zhopa: AnsiString; Count: Integer);
    var
      LenOfBuf: Cardinal;
      S, Local: AnsiString;
    begin
      Local := '';
      repeat
        ioctlsocket(sktFrame, FIONREAD, LenOfBuf);
        SetLength(S, LenOfBuf);
        Recv(sktFrame, PChar(S)^, LenOfBuf, 0);
        Local := Local + S;
        SetLength(S, 0);
      until Pos(Zhopa, Local) <> 0;
      WorkLocal := Local;
    end;

    Так вот, срабатывает, как Бог на душу положит: хочу - срабатываю, не хочу - не срабатываю.
    Что не так в этой процедуре?
    P.S. Наверное, пора заканчивать с программированием - уже простые вещи не получаются
    С уважением, Сергей aka Grande.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 18:35 27-10-2013 | Исправлено: Grande, 18:40 27-10-2013
    Frodo_Torbins

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

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:27 27-10-2013
    Grande



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

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 19:37 27-10-2013
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Плюс там бы еще PAnsiChar не помешал вместо PChar.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 00:52 28-10-2013
    Grande



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

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 16:35 29-10-2013
    KolduNec

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть написанная прога на Делфи, которая ведет подсчеты возможных путей с различным шагом. столкнулись с 2мя проблемами,  
       
     1. очччень долго считает некоторые вариации, (бывает работет без перерыва до 2.5 месяцев)  
     2. нет возможности сохранить результат(при долгих подсчетах), затем продолжить подсчеты с сохраненного места.  
     3. есть еще 3я, но не столь страшная,как первые 2е: грузит до 51% ЦП  
       
     Пожалуйста нужна помощь с первыми 2мя проблемами.  
       
       
     ЗЫ как сюда закинуть архив с прогой, не разобрался. потому мой маил koldune@mail.ru либо в контакте http://vk.com/koldunec  
       
     Кому интересно заняться и помочь, есть вопросы, можете задавать и тут. переодически буду проверять  
      http://forum.ru-board.com/topic.cgi?forum=33&topic=13862#1
     Спасибо.

    Всего записей: 3 | Зарегистр. 29-10-2013 | Отправлено: 21:35 29-10-2013
    Grande



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

    Цитата:
    как сюда закинуть архив с прогой, не разобрался

    Есть общепринятая практика заливать файлы на файлообменники (например, rghost.ru), а здесь выкладывать ссылку на этот файлообменник.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 10:58 31-10-2013
    YuraseK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Загадка, что вернут функции:
    d:= DaysBetween(StartOfTheDay(Now), EndOfTheDay(Now));
    m:= MonthsBetween(StartOfTheMonth(Now), EndOfTheMonth(Now));
    y:= YearsBetween(StartOfTheYear(Now), EndOfTheYear(Now));
    Чур, не компилировать, не смотреть реализацию функции, а сходу посчитать в уме.

    Всего записей: 529 | Зарегистр. 12-12-2003 | Отправлено: 12:13 31-10-2013 | Исправлено: YuraseK, 12:40 31-10-2013
    A_V

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuraseK
    зависит от того, в какой момент времени их вызывать (MonthBetween, YearsBetween)  

    Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 14:10 01-11-2013 | Исправлено: A_V, 14:12 01-11-2013
    Ichigo2



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем.
    Можно ли как-то сохранить строку из таблицы, StringGrid.Rows[1] скажем, в StringList, а затем обратно?
     
    Мне просто надо сохранять состояние таблицы со всеми значениями, а потом восстанавливать.

    Всего записей: 153 | Зарегистр. 01-05-2011 | Отправлено: 19:47 13-11-2013 | Исправлено: Ichigo2, 20:17 13-11-2013
    A_V

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    StringGrid.Rows[x] - это и так TStrings, так что rtfm StringGrid.Rows[x].SaveToFile/SaveToStream

    Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 22:54 13-11-2013
    Ichigo2



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А подскажите название той настройки, что бы по cntrl+space сразу вставлялся шаблон для прототипа, а не пустые скобки. Не могу нагуглить её

    Всего записей: 153 | Зарегистр. 01-05-2011 | Отправлено: 18:39 18-11-2013
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru