| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разное тестирование > Ежедневник |
| Автор: mr.Anderson 20.8.2005, 15:19 |
| Прошу оценить эту программочку. Программа соединяет в себе хранитель записей (заметок), список предстоящих событий и телефонный справочник. Все эти хранители заполняются вами. Телефонный справочник для просмотра не очень удачный, но для добавления записей неплох, на мой взгляд. В общем, скачайте и попробуйте. Оценить прошу с точки зрения начинающего. Вот ссылка: http://www.mycplusplus.narod.ru/cbuilder/everyday.exe . Программа должна работать на всех системах, кроме Win3.1 и DOS. Я так полагаю, и на любых процессорах. Вроде бы я настроил ее для работы на системе, где не установлен C++ Builder. Но я сам не проверял (потому что у меня он установлен Программа поставляется в виде обычного exe-файла. Размер 917 Кб. Заранее прошу обратить внимание на то, что это мой первая попытка создания программ для других компьютеров. Если будут ошибки при запуске, сразу говорите мне. Еще лучше, если вы сразу же укажете и то, как эту ошибку исправить. |
| Автор: Spawn™Production® 21.8.2005, 14:32 |
| 1) Так, во-первых, есть прекрасная вещь - архиватор, которая может уменьшить размер твоей программы аж в 2,6970588235294117647058823529412 раза 2) При клике на кнопку "Очистить поле ввода", если поле и так пустое, ты генерируешь ошибку, что в данном случае вообще не нужно. Лучше просто делай кнопку неактивной. 3) После сохранения заметок ты добавляешь такую вот строку прямо под заметкой: "===================", это конечно хорошо, но можно ещё и перевох на новую строку добавить, чтобы не приходилось Enter нажимать. 4) В телефонную книгу нужно добавить помимо "Дом" ещё и корпус, так как это разные вещи. Хм, ещё и Дробь... 5) Редактирование телефонной книги нужно осуществлять также как и добавление, т.е. все по пунктикам. 6) События нужно каким-то образом связывать с календарём, т.е. не просто так события писать, а присваивать определённой дате и т.п. |
| Автор: z-END 21.8.2005, 14:46 |
| 1. цвета нужно в божеский вид привести, т.е. использовать стандартные цвета и шрифты 2. TabOrder выровнять, а то логики никакой нет. |
| Автор: mr.Anderson 21.8.2005, 19:59 |
| Spawn™Production®, разберем: 1) Пардон, не догадался. Поправим... 2) Хорошо, в принципе, это тоже поменять можно. 3) У меня он добавляет строчку и без нажатия энтера. Вроде... 4) Интересно. 5) Резонно. Исправим. 6) Да, это тоже поправим. Но не все сразу. z-END, поясните оба пункта. Чем вам не угодили "стандартные цвета" и на что вы предлагаете их заменить? Второе: что такое TabOrder? |
| Автор: z-END 22.8.2005, 09:10 |
| sim7 1. фиолетовый и морской цвет как общий фон - сильно режут глаза, при длительном просмотре устаешь... меня отталкивают такие приложения... с шрифтами тоже самое, микрософт не просто так выбрал стандартный размер/фэйс шрифта, а по тому что он наиболее удобочитаем... 2. пощелкай кнопкой TAB вот тебе и TabOrder |
| Автор: mr.Anderson 22.8.2005, 16:25 |
| z-END, тогда предложите, на что их заменить, плиз. Шрифт - вам не нравится Impact? А мне нравится... Ладно, на что его изменить? На Courier, мож быть? Spawn™Production®, пунктики 1, 2, 3 я скоро постараюсь исправить, а вот с остальными проблемы. Пункт 4 - перечислите тогда плиз порядок. То есть, должно идти дом-корпус-дробь-квартира, так? Или нет? Пункт 5 - а не подкинете идею, как затолкать в форму редактирования по нужным Edit'ам текст, находящийся в одной строке? Пункт 6 - я честно не знаю, как работать с этим календарем. Даже просто понятия не имею. Я его воткнул просто для того, чтобы не рыться в реальном календаре и не думать: "А какой же день будет 31 марта 2009 года?" |
| Автор: z-END 22.8.2005, 16:29 | ||
так я же уже предложил: использовать системные цвета и шрифт.. |
| Автор: mr.Anderson 22.8.2005, 16:44 |
| Пардон, а "системные" - это какие? |
| Автор: z-END 22.8.2005, 17:14 |
| системные те которые приняты в конкретной ОС за стандартные (или при использовании цветовых схем) например при стандартном "скине" винды95 - системный цвет для приложения- серый, шрифт MS Sans и т.п. но стоит залезть в настройки рабочего стола и включить другой "скин" системные цвета поменяются. |
| Автор: mr.Anderson 22.8.2005, 17:31 |
| Т.е даже формы для редактирования сделать одного цвета с главной формой - серого? А не будет очень скучно? |
| Автор: z-END 22.8.2005, 17:43 |
| я неговорил что серого! я говорил "системного" т.е. того цвета который установлен в системе для формы. |
| Автор: mr.Anderson 22.8.2005, 18:05 |
| И последний вопрос к вам: как включить этот самый системный цвет? Spawn™Production®, а вы чего молчите? Я вам тож вопросов назадавал! Кстати, о прогрессе. Пункт 1 выполнен. Теперь програ весит всего 340 килобайт вкупе с маленьким Readme. WinRAR рулит. Пункт новый: ссылка на файл поменялась: http://cplusplus.onu.ru/everyday.rar Правда, можно и со старой ссылки скачивать. Но новые версии я буду выкладывать именно на http://cplusplus.onu.ru |
| Автор: Spawn™Production® 22.8.2005, 18:17 | ||||||||||
Страна, город, улица, дом, корпус, дробь, строение, квартира. Также пару дополнительных полей (код подъезда ну и т.п.)
Преобразовываем строку в массив (у меня в Visual Basic, это команда Split с параметрами Expression as String - строка, которую преобразовываем и Delimiter as String - знак, который разделяет будущие члена массива, т.е. например есть строка "67,24,ывоарыво,к9", использовав команду Split ("67,24,ывоарыво,к9", ",") получим массив из тех значений, что находятся между запятыми.).
Хм, тут я не помошник, ну, не сишник я. Обратись в соответствующий раздел. Так, ещё маленькое добавление: кнопку максимизации окна нужно отключить, имхо и так окно в размерах не изменяется. Добавлено @ 18:20
Свои цвета не делать, вот и всё по-умолчанию и устанется, это во-первых, а во-вторых, уж не знаю как у Вас в С++, но у меня в VB у каждого контрола есть такое свойство - Style (ну или FlatStyle), у которрого есть параметры Flat, Popup, System и Standart
Не торопи народ, сие есть признак дурного тона |
| Автор: mr.Anderson 22.8.2005, 18:22 | ||||||||||||
Поточнее....
Да, я так чувствую, с этим пунктом еще очень долго придется возиться...
Обращался. Все молчат что-то.
Я бы рад, знать бы, как. Пока я добился только ее блокировки. Добавлено @ 18:23
У меня такого нетуть.
Понял, приму к сведению. |
| Автор: Spawn™Production® 22.8.2005, 18:34 | ||||||
Хм, ну малоли что народу взбредёт в голову, эм, ну может он захочет пометить, что типа человек мой родственник, ну или звонить в дверь 2 раза, бить ногой 4, головой об стенку - 5 раз
http://www.progz.ru/forum/viewtopic.php?t=12477 |
| Автор: mr.Anderson 22.8.2005, 18:48 | ||||
Отличный форум! Надо будет и туда почаще наведываться... Да, свой плюс в репутацию вы точно заслужили. |
| Автор: fisic 23.8.2005, 20:35 |
| sim 7 Какие проблемы с календарем? В своей программе я использую DateTimePicker. Если допустим надо в Edit или в StringGrid запихать, то так: Edit->Text=DateToStr(DateTimePicker->Date); StringGrid->Cells[][]=DateToStr(DateTimePicker->Date); fisic. |
| Автор: mr.Anderson 27.8.2005, 16:30 |
| fisic, спенкс, буду пока пользовать ваш календарь. Так, опишу текущий прогресс... Spawn™Production®, разбираем снова по вашим пунктикам. 1. Выполнено. Новый размер программы около 400 Кб. 2. Выполнено. Теперь кнопка активна только в случае непустого Memo. 3. Неувязочка. Можно, конечно, добавить, но при сохранении почему-то добавляется не перевод строки, а квадратик... При перезапуске программы вместо квадратика уже появляется перевод строки. Как поправить? Под переводом строки я понимаю сочетание \n. 4. Выполнено. Добавлены пункты "Корпус", "Дробь", "Строение". Подъезд, думаю, уже лишнее... 5. Над этим еще буду работать. 6. Частично выполнено. Теперь добавилась возможность перехода к нужной дате, плюс при добавлении события в новый пункт "Дата" подставляется текущее значение свойства "Date" объекта "DateTimePicker". Но есть проблема: нет проверки на правильность введенной даты. То есть, если ввести переход, скажем, на дату "99.08.2005", то программа просто аварийно завершится. Как это поправить? |
| Автор: Spawn™Production® 27.8.2005, 16:37 | ||
Хм, у меня этот компонент правильный, т.е. в нём уже предусмотрен запрет на ввод неправильных числе. Думаю в твоём случае будет проще использовать собственноручно сделанный контрол, т.е. поставить 3 текстовых бокса и для каждого вводить свои условия, т.е. там где только цифры должны быть делать доступными для ввода только цифры и т.д. |
| Автор: mr.Anderson 27.8.2005, 17:41 |
| А вот я и думаю, как сделать так, чтобы в Эдите можно было вводить только цифры? |
| Автор: Spawn™Production® 27.8.2005, 18:16 |
| sim7, при изменении текста в текстовом боксе делаешь проверку, если введёный символ не соответствует коду цифр, то стираем последний символ нафиг. |
| Автор: mr.Anderson 27.8.2005, 18:23 | ||
Я алгоритм понял, а вот это:
Как сделать в смысле кода? Как это написать? |
| Автор: Spawn™Production® 27.8.2005, 21:20 |
| мм, каждый символ, как я думаю ты знаешь, имеет свой ASCII код, например цифра 1 имеет код 49. Есть две функции Asc и Chr (Это их название в VB, у тебя, возможно, по-другому.) Так вот при вводе символа смотришь ASCII код введеного символа и если он не соответствует кодам с 48 по 57, то убираешь этот символ нафиг. Хм, в общем-то можно даже не ожидать пока символ появится в поле, так как у текстового бокса есть событие keydown, в котором можно отловить нажатую влавишу и буква вообще не появится в текстовом боксе. Хм, я сам столкнулся с этой же проблемой, когда только начинал программировать, это было первое, что я спросил у знающих людей... |
| Автор: mr.Anderson 28.8.2005, 10:53 |
| Ладно, сейчас поэкспериментируем. Когда сделаю эту защиту, выложу версию 1.1. С цветами буду разбираться в самую последнюю очередь, когда уже все будет готово... |
| Автор: mr.Anderson 28.8.2005, 12:35 |
| Все, защита сделана, справочник подредактирован... Короче, версия 1.1 успешно загружена на сервер и готова к скачке. http://cplusplus.onu.ru/everyday1.1.rar |
| Автор: Spawn™Production® 28.8.2005, 13:00 |
| 1) А вот появляющийся MsgBox при вводе неправильного символы ты зря сделал. Честно говоря бесит Гы, ну число 44 я могу ввести и в число и в месяц 2) Ставлю символ в заметки, удаляю его и вижу, что кнопка очистки в рабочем состоянии... |
| Автор: mr.Anderson 28.8.2005, 13:08 | ||||||
Я просто не знаю, как удалить только один неверно введенный символ (или чтоб он вообще не появлялся). Пришлось предупреждать и стирать все полностью. Нельзя ж просто стереть текст и ничего не сказать - юзверь будет думать, а что же эта зараза символы стирает...
Да препожалуйста. Только при нажатии на такую вот кнопочку "Переход" будет сгенерирована ошибка о неверном формате даты.
Вроде я это поправил... Сейчас проверим. |
| Автор: Spawn™Production® 28.8.2005, 13:21 | ||
так, у тебя на контроле текстового бокса есть ообытие нажатия клавиши ? Вот и отлавливай в нём... Для удаления только последнего символа можно использовать функцию mid... Также, когда введён последний символ делай проверку. На валидность даты (не забудь про високосные года, количество дней в месяце...) и если что не так, то безо всяких предупреждений просто правь текстовые боксы. В идеале если пользователь введёт 30.02.5556, то ты должен будешь сменить на 29.02.5556 |
| Автор: mr.Anderson 28.8.2005, 13:42 | ||
А поподробней?! У Edit'а нет функции mid(), и у Edit->Text ее тоже нет! А про даты - это очень долго все описывать... Добавлено @ 13:43 Да, забыл сказать - теперь, если в Memo пусто, то кнопка очистки не активна. |
| Автор: Spawn™Production® 28.8.2005, 13:49 | ||||
мдя, трудный ваш язык, ты, как я понял, на BCB пишешь ?
ну, не так уж и долго, там всего пару-тройку if... Добавлено @ 13:51 Воть, нашёл, функция http://vilin.pochta.ru/articles/FuncEditAnsiString.htm#StringReplace |
| Автор: mr.Anderson 28.8.2005, 14:00 | ||||||
Да, на нем.
Как это? Ведь на каждый месяц может быть либо 31 день, либо 30 дней, либо 29-28 дней. Ладно, подумаем...
Что-то там объяснение неполное... Вопрос 1: нафига там Flags в четвертом аргументе и что это такое? Вопрос 2: во втором аргументе там передается то, что надо переписать. А откуда я знаю, что введет юзверь? Добавлено @ 14:03 Впрочем, про StringReplace уже оффтопик... Сейчас в разделе "C++ Builder" спрошу. |
| Автор: Spawn™Production® 28.8.2005, 14:07 | ||||
Если мне изменяет память, то есть различные типы сравнения текстов...
Эм, а считать что в Edit'e находится нельзя чтоли ? |
| Автор: mr.Anderson 28.8.2005, 14:10 | ||
А вот я и бьюсь, чтобы считать не весь текст, а только последний символ... Знал бы я, как последний символ считать, проблем бы не было. И каши этой тоже бы не варили. |
| Автор: mr.Anderson 28.8.2005, 17:37 |
| Так. С Эдитом разобрались. С календарем - осталось только подключить проверку на високосный год и исправление неверной даты (типа 32 дня)... А потом выложу версию 1.2. Что-то мне понравилось новые версии лепить... |
| Автор: mr.Anderson 29.11.2005, 17:52 |
| Так. Это для информации. Уже вышла версия 3.2, правда, она пока недоступна для скачивания. |
| Автор: Spawn™Production® 1.12.2005, 23:00 | ||
sim7, так ну тогда тема закрыта... либо выкладывай для скачки либо до лета 2006 тема будет закрыта.
Ну нам больше заняться нечем... |
| Автор: mr.Anderson 4.12.2005, 13:18 | ||
Нет-нет, не закрывайте. Я, может, еще и раньше выложу. Сейчас просто проблемы есть...
А что так грубо? |
| Автор: Spawn™Production® 4.12.2005, 20:37 |
| sim7... в общем как выложишь, так выложишь, но чтобы как http://forum.vingrad.ru/index.php?showtopic=61968&view=findpost&p=575319 больше не было. И на этот пост можешь не отвечать. |
| Автор: mr.Anderson 4.6.2006, 14:58 |
| Итак, как и было обещано... Создан сайт программы: http://everydayseries.narod.ru/index.html Не смотрите, что на бесплатном сервере - просто нет пока денег и смысла брать платный. На сайте можно прочитать подробное описание и скачать все версии программы, т.е. Standard 2.1, 3.0, 3.3, а также "продвинутые" Super Edition (SE) версий 1 и 2, а также SE-DEMO версию. Сразу говорю, всем программа доступна не будет, т.к. она платная... Бесплатны только версия Standard 2.1 и Super Edition DEMO. НО! Не спешите уходить. Программу могут скачать и получить у меня по e-mail или ICQ ключ к ней бесплатно следующие товарищи: Spawn™Production®, BreakPointMan, CodeLord, Tsar2000, Hunter, Void. Все эти люди могут получить ключ бесплатно, обратившись ко мне по ICQ или мылу, так как они очень много помогали мне при создании и тестировании программы... |