![]() |
|
![]() ![]() ![]() |
|
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Привет! =)
У меня есть вот такой код:
Видно, что идет проверка: если сегодняшняя дата - дата из ДатаТаймПикера равна тексту из КомбоБокса и месяцы(сегодняшний и из ДТП) равны, то вызывается форма 3. Однако, нужно как-то сделать так, чтобы для одного j форма вызывалась один раз, т.е. один j - одно открытие формы. В моем коде вызов формы 3 будет идти бесконечно... Спасибо за внимание! Это сообщение отредактировал(а) docwar - 13.12.2006, 21:39 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А что вообще этот цикл делает?
В приведенном коде я не увидел собственно использования цикла... |
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Используй логический флаг. Если флаг false, то покажи форму и установи флаг в true. Следующий раз форма не отобразится.
|
|||
|
||||
codelord |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
docwar, как ты думаешь что получится у тебя если даты будут текущая 3,01,2007 и 31,12,2006 прошлая???
или хотя бы 1,12,2006 и 31,11,2006 ? в первом случае день -28 (д.б 3) месяц - 11 (д.б 1) и т.д. Или тебе так надо? по поводу вопроса, пробуем такое (опять таки если правильно понял). В Си есть такая штука static которая инициализируется один раз. вместо
такое
|
||||
|
|||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
А как же for(j=1;...) Код обновлен - забыл в конце } поставить. =) anwe, можно примерчик? =) Работал с переменными, но получается, что для каждого j необходимо заводить новую переменную, что не понятно мне как осуществить, поскольку знаем только количество переменных. =) |
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
static int Key = 1;
лучше объявить до начала цикла, т.е. после того как Key стал равен 0 условие выполняться не будет и соответственно форма вызываться тоже. |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Вроде, все нормально должно быть. Ведь результат вычитания сравниваем с текстом КомбоБокса... По поводу вопроса этой темы: форма вызывается один раз, т.е. если одна из строк удовлетворяет условию Тек. дата-Данные из СГ=текст КомбоБокса, то форма вызывается один раз. НО! Она должна вызываться для всех строк, удовлетворяющих выше описанному условию... Как это проверил: ввел такие данные в таблицу: сегодняшняя дата, с.д.-1 день, с.д.-2 дня. В КомбоБокс ввел 1 день - вывелась форма. В КосбоБокс ввел 2 - ничего не произошло... |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я просто не понял его (цикла) назначение: Ну бежим мы в цикле столько раз, сколько строчек в гриде, вызываем событие OnClick этого грида столько раз, сколько в нем строчек - это его основное назначение? Я просто не часто видел циклы, в которых ничего не зависит от переменной цикла. Обычно это какие-то математические итерационные вычисления - а тут явно логика, а переменная цикла нигде не участвует... Вот я и спросил, а что собственно этот цикл делает? Если нужно вызвать событие OnClick для каждой строчки грида - то тогда где смена строчки? А если только вызвать событие OnClick столько раз, сколько в гриде строчек, то тогда зачем дальше в цикле сравнение величин (которые по идее не меняются внутри цикла)... Или их меняет событие Onclick? |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
В цилке мы пробегаем по всем строкам и четвертому столбцу(третьему, если принимать во внимание нумерацию с 0) и вызываем метод StringGrid1Click, который копирует данные выделенной строки четвертого столбца в ДатаТаймПикер. А дальше просто вводим переменные DateDTPicker и DateDTPicker2, а потом проверка условия, которое уже расписывал...
=) |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Либо я просто не выспался, либо туплю, но в упор не вижу где меняется строка и берется 4-й столбец...
|
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
нет. =) это я криво обьясняю. Мы выделяем все строки по очереди, а в ф. StringGrid1Click прописано, что текст из четвертого столбца выделенной строки копируется в ДатаТаймПикер. А строки меняются благодаря прибавлению значения j, максимальное число которого - количество строк СтрингГрида, начиная с первой(или второй, если считать по-человечески - с 1 =) ). |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Где меняется строка, я все равно не понял, но не суть.
Т.е. при наличии в гриде строки с необходимым условием (что-то там с датами) нам необходимо вывести форму на экран. Если форму необходимо вывести ДЛЯ КАЖДОГО СЛУЧАЯ СОВПАДЕНИЯ внутри цикла, то может проще вызвать ее методом ShowModal - форму вывели, сделали какое-то действие, закрыли, перешли к другой строчке Если форму необходимо вывести ПРИ ПЕРВОМ СОВПАДЕНИИ - то опять таки проще ее вывести модально, а потом выскочить из цикла - так как больше ее выводить не надо, использовав конструкция типа if (условие истино) { Form3->ShowModal(); break; } Если использовать такой код как есть - то первое же совпадение выведет форму на экран, и она там останется - так как метод Show сразу вернет управление в цикл, произойдет переход к другой строчке (а форма уже на экране) и при следующем совпадении условия - будет опять вызван метод Show (который ничего не сделает - форма уже на экране) и т.п. Я просто недопонимаю что нужно сделать, если в очередной строчке грида есть необходимые для выполнения условия данные - попросить у пользователя что-то сделать или вывести на экран информацию... |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
break не решает вопроса! =)
Попробую обьяснить еще подробнее - на примере. Сегодня 14.12.2006. В КомбоБоксе стоит 2. Если сегодняшняя дата - текст КомбоБокса == дате из ДатаТаймПикера, то выводим сообщение "Работает!". Этот этап я преодолел. А вот, если не закрывать приложение и в КомбоБокс ввести новое число, то сообщение уже не выводится, хотя подходящяя дата есть в ДатаТаймПикере(процесс занесения даты в ДТП основывается на "пробежке" по СтрингГриду). Как быть??? |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Можно посмотреть как реализован этот процесс? |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Конечно можно, только я не понимаю, чем вызван такой интерес, ведь это почти не имеет никакого отношения к моему вопросу... =)
Внимание! Немного изменил код: теперь даты не вычитаются, а складываются - исправляю последствия невнимательности. Выкладываю проектик, визуализирующий мой вопрос... Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я посмотрел проектик, у меня возникли некоторые вопросы (или предложения)
1. Не вижу смысла делать логику отработки события через визуальные контролы - разделяем мух от котлет - т.е. мы должны иметь некий список людей с днями варений оных. Чем его редактировать и отображать - дело десятое. Преимущество такого подхода - процедура напоминания не будет зависеть от дальнейших усовершенствований интерфейсной части программы. 2. Назначать единую дату напоминания для всех дней рождений можно, но мне кажется, что логичнее было бы ввести дополнительное поле для каждого индивидума - получаем преимущество: про ДР Васи можно напомнить за день - так как больше бутылки пива я ему ничего не подарю, а вот к ДР тещи надо подготовится за неделю 3. Обработчик события превращается в некого резидента по таймеру - берем текущую дату, сравниваем со списком (который хранится во внутренней структуре, на диске и т.п. - но не в визуальном контроле (избавляемся от необходимости держать созданной форму все время работы программы), если он видит событие, о котором надо оповестить - выводим МОДАЛЬНУЮ ФОРМУ на экран (пользователь должен ее увидеть и отреагировать), далее, в зависимости от реакции пользователя помечает данное событие как отработанное (в этом году - например ввести поле последнего уведомления) и больше его не отрабатывает. 4. В реакции пользователя можно предусмотреть варианты: "Да, видел, учту", "Напомни мне через .... дней или часов" Касательно текущего проекта - все равно надо вводить в описание события некоторые поля: - Дата последнего уведомления пользователя (чтобы не напоминать каждый день повторно - проверять, уведомлялось ли об этом событии) Либо просто флаг "Уведомлено", но тогда что делать со следующим годом? Оптимизация работы по таймеру тоже нужна - какой смысл проверять каждые 5 минут список, если он не изменялся? Достаточно проверять раз в сутки. Тогда проверка сработает, если программа будет висеть запущенной и не выключаться... Добавлено @ 11:57 Теперь касаемо кода: Ты определяешь выводилось или нет предупреждение по значению переменной Key. 1-е замечание. Если ты хочешь, чтобы при смене значения в комбобоксе все сбрасывалось, почему ты там не сбрасываешь переменную Key? Если ты уберешь дурацкий статик и внесешь переменную Key в раздел protected класса, то в конструкторе формы добавь: Key = 1; А в обработчике OnChange комбобокса тоже вставь эту строчку - ты получишь вожделенное напоминание повторно при смене значения в комбобоксе |
|||
|
||||
codelord |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
в таймер :
в комбо боксе на OnChange добавь
|
||||
|
|||||
Vyacheslav |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
docwar, А теперь медленно и подробно объясни, где здесь " цилке мы пробегаем по всем строкам " Это ?
На мой вгляд здесь просто идет увеличение j от 1 до RowCount в цикле с вызовом метода
на каждом цикле. Или ты считаешь, что он(метод) обеспечит тебе выбор строки в соответствии со значением j? Интересно, как? Cвятым духом? Я бы еще понял, если была бы строка
![]() Все очень просто. Когда ты утверждаешь, что данный код делает это и это, а в самом коде нет ничего похожего, то приходится предполагать все что угодно. Например, что сам процесс по "пробежке по СтрингГриду " реализован еще где -то. А указанный цикл с j это просто для декорации -------------------- С уважением, Вячеслав Ермолаев |
||||||||
|
|||||||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Этот вопрос меня интересовал с начала темы ![]() Потом посмотрел проект и решил решение этого вопроса оставить на потом - так как вся логика проекта у меня вызывает сомнение. Если это нужно для сдачи лабораторки - сойдет и так (только цикл по строкам нормальный сделать) Если хочется свою небольшую напоминалку иметь - то надо все переделывать и делать по-взрослому - с хранением данных на диске, неким дополнительным сервисом (например, просто напомнить о чем-то) Хотя есть уйма готовых программ для таких вещей - не вижу особого смысла писать собственную... |
|||
|
||||
docwar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Anikmar, спасибо за внимание к моему вопросу!
А теперь ответы на "вопросы (или предложения)": 1. Все правильно. Есть у нас список людей(одна форма), напоминания настраиваются на другой. Я просто не до конца понял предложение Ваше... 2. А вот это отличное замечание, тем более, что мне кажется, что именно этот метод вызовет у меня наименьшее количество гемороя при реализации кода... Спасибо!!! )))) 3. Как я понял - список должен быть не визуальным и не быть частью программы, т.е. это какой-то буфер получается? Ну, не знаю... программа в обьеме сейчас почти метр и не думаю, что найдутся компьютеры, у которых оп будет загружена моим "творением"... или не в этой смысл? 4. Интересно (спасибо), но пока мне рано. "Да, видел, учту" я планировал сделать щелчком правой клавиши мыши по форме, содержащей предупреждение...
Так ведь и так есть проверка... повторное уведомление может быть, только если интервал до ДР изменен так, что сумма сегодняшней даты и интервал составит дату ДР. Теперь касаемо кода: сделал, но возникли новые проблемы: программа без конца выдает напоминания! ))) (но это можно решить). Думаю, что, действительно, придется указывать сроки напоминания для каждого человека отдельно... codelord, спасибо большое, но код не работает: напоминание при смене текста КБ не работает... =) Vyacheslav, действительно... забыл в СГКлик выделять строки с номером j... =) Anikmar, программу начинал для себя, но решил прикрутить ее и к курсовой(если дай бог доучусь до конца второго курса)) ). Программа моя - телефонный справочник, к которой я решил добавить напоминание о днях Рождений.
С удовольствием выслушаю ваши предложения!!! Благодарю всех за отзывчивость и желание помочь!! Спасибо!!! |
||||
|
|||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
ты уверен что сделал как говорил.? Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Хм... у меня не работал! =)
Недостаток метода в том, что колонка обязательно должна содержать дату.... а если пользователь не хочет ее вводить?! |
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
ты хочешь чтобы я вместо тебя это писал? причем метод скажем так не совсем мой. я лишь сделал то что ты попросил. Добавлено @ 00:12 к тому же выше назавнный не достаток устраняется одной строкой проверки. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
По поводу моего первого замечания.
Для того, чтобы узнать, попадает ли указанное событие в разряд "Надо напомнить" производится куча совершенно лишних действий - задействуются контролы, которые предназначены для вывода информации на экран. зачем? В первую очередь нас интересует список событий (их данные). Отсюда - получаем некую структуру описания события, которая включает в себя следующую информацию: 1. Идентификатор объекта (например, ссылка на запись телефонного справочника) - по сути кто это такой или что это такое 2. Дата (и, может быть, время) возникновения события 3. За какое количество дней (часов, минут) предупредить пользователя о возникновении события 4. Является ли событие одноразовым (встреча) или регулярным (ежегодно, ежемесячно и т.п.) Эту информацию запихиваем, например, в структуру. Если используется СУБД - то в БД. Если БД по какой-либо причине использовать нежелательно, то просто массив структур, сохраняемых в файле (не думаю, что их будет несколько тысяч, так что особо мудрить может и не придется - можно загрузить весь список в память). Далее программа. Состоит из двух частей (логических): 1 Часть - обеспечение редактирования информации. Тут задействованы визуальные контролы и т.п. - для того, чтобы пользователь мог забить и отредактировать информацию. Тут используется форма, которая создается динамически, когда нужна. Таким образом не будет сидеть в памяти все время жизни проги. 2 Часть - резидент (таймер). Допустим каждые 10 минут он просматривает нашу БД, определяет необходимость выдать оповещение и оповещает пользователя. Здесь должна быть логика, определяющая, что об этом событиии пользователь уже был оповещен и он уже не хочет смотреть на напоминание. Причем это должно сохраняться и после выключения компа - т.е. храниться вместе с БД. Дальше уже проектирование - продумываем формат структуры, способ сохранения на диске, делаем интерфейсную часть. По поводу большого размера EXE - тут уж надо смириться. На самом деле 1 метр - это немного, достаточно посмотреть в диспетчере задач сколько памяти занимает микрософтовский Outlook. К тому же винда достаточно умная, чтобы скинуть большую часть проги в своп. Почему я и предлагаю отделить визуальные элементы от собственно логики: если интерфесная часть будет постоянно в памяти, то ее понадобится много, особенно, если наворотов много. А вот резидент, которые раз в 10 минут пробегает по базе структур (если их не много, то можно в память записхать, если много - то по файлу пробежаться) будет занимать не так уж много места. Дальше можно и оптимизировать. Например: Если действо происходит внутри одного сеанса, файл с данными не изменялся, а ближайшее событие наступит через месяц, то пропускать проверку - сэкономим пару-тройку миллисекунд ![]() |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Набросал вообщем такой вот код:
if(Form6->Closed==0). Closed - переменная, принимующая значение ноль при закрытии формы. 1 - при прорисовке формы(по идеи,это когда вызываем...) Только одно но... окно с напоминанием постоянно вылетает, т.е. открывается правильно, но закрыть нельзя... =) anikmar, а какие именно лишние контролы используются? По поводу остальных пунктов вашего комментария: я думаю, что пока нужно осуществить самое простое, а потом приниматься за модернизирование! =) Касательно моего нынешнего положения есть замечания или советы? =) |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Задача: узнать попадает ли заданная дата в нужный нам критерий (т.е. до нее сколько-то дней) Сегодняшнюю дату - мы знаем За сколько дней предупреждать - берем пока из контрола А вот для остального сравнения используем и StringGrid и DateTimePicker... Вот я и предложил все хранить в структурах и от туда же и сравнивать |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Интересно... надо подумать...
Пока же надо сделать хотя бы со СтрингГридом и ДатаТаймПикером. =) |
|||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Вопрос все еще актуален.
|
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
скажи пожалуйста чем тебе не нравится конструкция которую я описал в прошлом своем посте в прикрепленном файле, вроде работает по крайней мере я ничего не рабочего не видел. А то что делаешь ты, извини исправлять не могу, потому как затея изначально (касаемо дат) мягко сказать не жизнеспособная. пример: допустим сегодня дата 19,12,2006, дата которую мы вписываем 12,02,2007, нам надо напомнить за 55 дней. А что будет делать твой код: по порядку: DateTek = 19 DateTek2 = 12 DateDTPicker = 12 DateDTPicker2 = 02 что ты делаешь дальше: if(19+55 == 12 && 12==02 &&1) ТАКОЕ УСЛОВИЕ НИКОГДА НЕ ВЫПОЛНИТЬСЯ ПОТОМУ ЧТО 74!=12 а 12!=2 !!!!!!!!!!!!!!!!!!!!! или ты все еще не согласен? А по поводу актуальности в чем собственно вопрос? |
|||
|
||||
docwar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
НУ! Все правильно!!! Даты не равны, поэтому мы ничего не будем делать!!! Ведь напоминание выводится только в том случае, если числа РАВНЫ!
Вот ссылка на мое сообщение с описанием проблемы... |
||||
|
|||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
т.е. ты так и задумал. Допустим за 55 дней к примеру можно как меньше так и больше, юзер пусть отдыхает
напоминать ничего не надо... в общем похже у меня с тобой разные языки. потому как не могу до тебя достучаться. это очень остроумно. Это сообщение отредактировал(а) codelord - 24.12.2006, 00:23 |
|||
|
||||
docwar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Просто хотел свой код доработать! =) А так использую сейчас твой. Суть моего вопроса: накидал такой код:
key - интовская переменная(для чего нужен тип static - не понял! =) ) perem1 - переменная, принимающая значение 0 при закрытии формы с напоминанием, и 1 - при показе этой формы. Т.о. напоминание выводится только один раз для даты, на которую запланировано минимум два Дня Рождения. Как это можно исправить??? |
||||
|
|||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
||||
|
||||
docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Красавец! То, что нужно!!!
![]() ![]() ![]() Только вот у меня код не совсем так работает... Если несколько событий на одну дату - оповещение выводится одно и в заголовке окна нет текста из таблицы... <_< Код перенес внимательно. Чем это может быть вызвано? |
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 16 Всего: 39 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |