При закрытии подписчики были переданы в рассылку "Delphi - проблемы и решения" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
"В сортире лучше быть юзером, чем админом..." | ||
Здравствуйте, уважаемые подписчики!Скоро наступит очень важный праздник. Думаю не надо рассказывать какой? Слышу гром аплодисментов, свидетельствующий что все догадались, о каком празднике идет речь. Абсолютно верно, это ОН, праздник когда все мужчины вспоминают период, готовности носить своих избранниц на руках. А наиболее романтичные натуры, от ностальгии переходят к делу и дарят своим "спутницам" цветы, и даже моют в этот день посуду, после употребления продуктов приготовленных накануне, угадайте кем... Согласитесь после Нового Года, это второй по значимости праздник, на территории пост-советского пространства. А заговорил о нем я так заранее, не спроста, т.к. на носу выходные, а потом праздники, и запоздай я еще на один день, многие увидят эту рассылку 9 марта. А как-же заряд бодрости перед праздниками?? Тото-же. И так. Милые наши женщины - примите мои пожелания, которые и перечислить сложно, (надо открывать отдельную рассылку), но главное это быть счастливой, внутри в этом слове заложены все те мелочи которые и делают жизнь прекрасной. Ну и отдельно выражу восхищение Вами, а особенно тем что Вы интересуетесь программированием, (а как показывают письма таких не мало). Причем как показывает мой опыт многие мужчины подписываются на такие рассылки впрок, т.к. собираются с "понедельника" начать программировать. А вот представить себе женщину с такими мотивами - не могу :) Смотрю мужчины погрустнели - а зря, на Вас задача повышенной трудности, поздравить Ваших женщин. Быть женой программиста это не легкая задача. Постарайтесь в эти несколько дней компенсировать им тот недостаток внимания который они возможно недополучили. Изучение Ваших писем, показывает что многим интересна тема работы с INI файлами. А тем кто думает что ему это не надо - сейчас попробую доказать обратное. И так Вы написали программу. Она отлажена, работает и даже не глючит. Отлично! Но Вы не задумывались сколько в мире клонов, одних и тех же программ?? Да я одних только "Блокнотов" пересмотрел штук сто, а всяких альтернатив "проводнику"... И ведь дело не только в том что выживают те программы которые напичканы максимальным набором функций, разве что кофе в постель не подают. А еще и в так называемой "Юзабельности" простите меня за это словечко, просто слово удобство не в полной мере передает смысл. Т.к. программу именно "Юзают", то есть "используют", а просклонять это слово - язык не поворачивается. К чему я веду? А к тому, что каждый человек индивидуален, он хочет что-бы эта программа открывалась именно в определенном месте монитора, т.е. там где он ее прошлый раз закрыл. А еще возможно его раздражает что он всегда открывает в ней файлы из одной и той же папки, а она этого не помнит, и необходимо постоянно пробираться через дебри "проводника". И еще сотни и сотни мелочей. Вот для того чтобы сохранять а в последствии загружать эти "мелочи" и нужны ini-файлы. Мое мнение "Это должно быть в каждой программе имеющей интерфейс пользователя." Тем более что пользоваться этим не просто, а гениально - просто! И так, немного теории: Подключение к ini-файлу (для чтения, записи или создания) IniFile:=TIniFile.Create('Имя_Файла.ini'); Чтение из файла осуществляется так: переменная:=IniFile.Read****(Раздел, Параметр , значение_по_умолчанию); где, **** - надо заменить тем типом данных которые вы собираетесь читать. т.е. ReadString, ReadBool, ReadFloat, ReadDate, ReadTime, ReadDateTime. А что такое "Раздел, Параметр" - поймете дальше. Запись - аналогично: IniFile.Write****(Раздел, Параметр, значение_по_умолчанию); И после чтения/записи надо выполнять команду: IniFile.Free Теоретически этого можно и не делать, но будут глюки, похоже связанные с тем что система чтобы лишний раз не дергать винт (какая забота), кэширует записи "на потом". А теперь рабочий пример. Создаем новый проект. В свойствах формы переходим на закладку "Events" т.е. "События" и два раза кликаем по событию OnCreate, после чего услужливый Delphi создаст процедуру procedure TForm1.FormCreate(Sender: TObject); Внутри которой пишем: LoadIni; Аналогично делаем с событием OnClose, в котором прописываем SaveIni; Т.е. мы указали что при запуске программы будет выполняться процедура LoadIni, а при закрытии? Правильно SaveIni. - Ну полдела сделано, осталось написать эти две процедуры ;) Но перед этим проделаем еще две вещи, во первых вытащим на нашу форму компонент Edit, у меня ему по умолчанию присвоилось имя Edit1 - здесь будем хранить тот путь который якобы нужен пользователю. По умолчанию предложим ему "C:\". А вторым пунктом - надо прописать в вашей программе, в разделе uses еще один модуль: IniFiles. Именно он будет делать всю черную работу. Дальше, больше. Собственно наши две процедуры:
procedure SaveIni; Вот собственно и все. Теперь сохраните проект, и запустите приложение. Окно разместится в верхнем левом углу, будет иметь размер 400 на 200 и в поле Edit1 будет указан путь C:\ - это все так называемые параметры по умолчанию. Т.к. ini файла еще не существовало. Попробуйте переместить окно, изменить его размер и ввести другой путь. А затем закройте. Теперь снова запустите - Вуаля! Окно имеет тот вид в котором было до закрытия. Что и требовалось доказать. Теперь самым выносливым вторая порция теории. Вам наверное интересно где-же наш файл 'MyProg.ini' - а он в папке Windows (или WinNT - для NT-систем) среди сотен таких же собратьев. Вы наверно разочарованы таким расположением, логичнее было бы его разместить в папке самой программы. НО есть программы которые запускаются с CD-ROM'а - и такая логичность, для них вылезет боком. Но если Вы уверены что Вашу программы минет сия участь, то замените строчки IniFile:=TiniFile.Create('MyProg.ini'); на следующую: IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini')); Кроме того файл будет называться также как и Ваша программа. Согласитесь это красиво. Кстати, не пора ли заглянуть в этот магический файл. Вот его содержание: [Size] Width=400 Height=200 Top=0 Left=0 [Data] Path=C:\ Это сразу проливает свет на загадку в начале выпуска, по поводу того что такое "Раздел, Параметр". Параметр - это что-то типа внешней переменной в которой будем хранить наше значение. А Раздел - это скорее сервисная возможность, для удобства можно разбивать переменные на тематические группы. Это и красивее и понятнее и позволяет использовать одно имя переменной в разных разделах - фантазия ведь не резиновая, столько имен придумывать. :) Ну и немного вернемся к прошлым выпускам. Давиденко А. В. напомнил мне что есть более элегантные методы печати на принтер, которые позволяют ставить документы в очередь печати и мирно сосуществовать нескольким программам одновременно. Но есть у такого способа один минус нужны драйвера принтера и надо знать точное название принтера в данной системе - а это отдельная задача. Впрочем, код приведу:
procedure PrintText( AText: String ); К сожалению никто, не помог с вопросом по поводу включения/отключения сетевой карты, но думаю еще не вечер. И отдельно хочу поблагодарить тех кто прислал ответы на вопрос Елены по поводу кодировок в базе данных, ответы пересланы ей, но на будешее, если есть e-mail лучше писать сразу автору вопроса. И пусть Вас не смущает адрес типа "vasya сАбака mail.ru" надеюсь понятно что это аналог vasya@mail.ru, но слегка сбивает столку роботов-спамеров. Сегодня у нас вопрос еще от одной Елены:
Дополнительно хочу предоставить Вам возможность бесплатно сделать себе (своей даме) хороший подарок. Я договорился с КДА (это владелец сайта 1001 сказка) и теперь, если вы подпишетесь на его дополнительную рассылку, вы получите возможность скачать две интересные программы: Salon Styler Pro - программа для компьютерного подбора причесок. В комплект входит каталог на несколько тысяч причесок, как женских, так и мужских и детских. Кстати, производитель просит за программу почти тысячу долларов, а вам она достанется бесплатно. "Виртуальный стилист" - компьютерный подбор причесок, макияжа и аксессуаров (очков, шляп и т.д.). Основное отличие от предыдущей в том, что программа полностью русифицирована. Как получить ссылки на эти программы? Достаточно написать письмо, и в течении 2-3 дней вы получите гарантированно живые ссылки. Предупреждаю - вы автоматически подписываетесь на еще одну рассылку, но если она вам не понравится, то процедура отписывания очень проста (будет изложена в письме.) Кроме того автор постоянно выкладывает аудиокниги и прочие вкусности на ФТП, а в рассылке, дает на них ссылки (каламбур-с) :). Вообщем интересного немало - рекомендую, сам подписан. Пожалуй на сегодня достаточно. Еще раз всех с праздниками! Оставайтесь с нами. /Tisa Написать письмо. |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.programondelphi |
Отписаться |
В избранное | ||