Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: Образование, Работа и Бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ноябрь 2004 → | ||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
---|---|---|---|---|---|---|
9
|
10
|
11
|
12
|
13
|
||
15
|
16
|
17
|
18
|
19
|
21
|
|
22
|
23
|
24
|
25
|
28
|
||
Статистика
-1 за неделю
Программирование на DELPHI в вопросах и ответах #5
Информационный Канал Subscribe.Ru |
Программирование на Delphi в вопросах и ответах.
|
||||||
Текущий (пятый) выпуск рассылки вышел несколько "не в срок". Хотя объявленная периодичность рассылки - один раз в неделю, выходить она, может быть, будет гораздо чаще. Всё зависит от вашей активности, господа! Вот со вчерашнего дня пришло много писем с ответами на вопросами, пожеланиями, а также ответами на предложенное голосование. Видимо, ещё не все читатели получили 4-ый выпуск, поэтому голосование продолжается. Оценив присланные ответы, стало ясно, что требуются ещё некоторые варианты. В связи с этим добавились новые ответы. Программы какого направления вы создаёте? >>> Для работы с текстом Также вы можете выбрать несколько вариантов ответа, но выбирайте те, что действительно "преобладают" над другими. Очень прошу проголосовать всех читателей рассылки. Правила нашей рассылки: |
||||||
Работа с реестром в Delphi. Реестр Добавление элементов в контекстное меню "Создать" Путь к файлу который открывает не зарегистрированные файлы В проводнике контекстное меню "Открыть в новом окне" Использование средней кнопки мыши Logitech в качестве двойного щелчка Новые звуковые события Путь в реестре для деинсталяции программ:
Работа с реестром в Delphi В Delphi есть объект TRegistry при помощи которого очень просто работать с реестром. RegCreateKey (Key: HKey; SubKey: PChar; var Result: HKey): Longint; RegOpenKey(Key: HKey; SubKey: PChar; var Result: HKey): Longint; RegCloseKey(Key: HKey): Longint; RegEnumKey(Key: HKey; index: Longint; Buffer: PChar;cb: Longint): Longint; RegQueryValue(Key: HKey; SubKey: PChar; Value: PChar; var cb: Longint): Longint; RegSetValue(Key: HKey; SubKey: PChar; ValType: Longint; Value: PChar; cb: Longint): Longint; Примеры : { Создаем список всех подразделов указанного раздела } procedure TForm1.Button1Click(Sender: TObject); var MyKey: HKey;{ Handle для работы с разделом } Buffer: array[0..1000] of char; { Буфер } Err, { Код ошибки } index: longint; { Индекс подраздела } begin Err:=RegOpenKey(HKEY_CLASSES_ROOT,'DelphiUnit',MyKey); { Открыли раздел } if Err<> ERROR_SUCCESS then begin MessageDlg('Нет такого раздела !!',mtError,[mbOk],0); exit; end; index:=0; {Определили имя первого подраздела } Err:=RegEnumKey(MyKey,index,Buffer,Sizeof(Buffer)); while err=ERROR_SUCCESS do { Цикл, пока есть подразделы } begin memo1.lines.add(StrPas(Buffer)); { Добавим имя подраздела в список } inc(index); { Увеличим номер подраздела } Err:=RegEnumKey(MyKey,index,Buffer,Sizeof(Buffer)); { Запрос } end; RegCloseKey(MyKey); { Закрыли подраздел } end;
Объект INIFILES - работа с INI файлами. Почему иногда лучше использовать INI-файлы, а не реестр? Constructor Create('d:\test.INI'); WriteBool(const Section, Ident: string; Value: Boolean); WriteInteger(const Section, Ident: string; Value: Longint); WriteString(const Section, Ident, Value: string); ReadSection (const Section: string; Strings: TStrings); ReadSectionValues(const Section: string; Strings: TStrings); EraseSection(const Section: string); ReadBool(const Section, Ident: string; Default: Boolean): Boolean; ReadInteger(const Section, Ident: string; Default: Longint): Longint; ReadString(const Section, Ident, Default: string): string; Free; Property Values[const Name: string]: string; Пример : Procedure TForm1.FormClose(Sender: TObject); var IniFile:TIniFile; begin IniFile := TIniFile.Create('d:\test.INI'); { Создали экземпляр объекта } IniFile.WriteBool('Options', 'Sound', True); { Секция Options: Sound:=true } IniFile.WriteInteger('Options', 'Level', 3); { Секция Options: Level:=3 } IniFile.WriteString('Options' , 'Secret password', Pass); { Секция Options: в Secret password записать значение переменной Pass } IniFile.ReadSection('Options ', memo1.lines); { Читаем имена переменных} IniFile.ReadSectionValues('Options ', memo2.lines); { Читаем имена и значения } IniFile.Free; { Закрыли файл, уничтожили объект и освободили память } end; |
||||||
Поступили ответы абсолютно на все вопросы. Новых вопросов пока что нет. Задавайте их. |
||||||
2. (Выделение отдельных строк ListView разным цветом). [Отвечает: Eugene the Monster]. 1. Смотри события OnCustomDraw, OnCustomDrawItem и сам рисуй клетку как хочешь, хоть картинки туда суй. 2. Смотри компоненты 3-х фирм, например JEDI - возможностей >>> чем у простого VCL. 4. (Изменение и восстановление параметров экрана). [Отвечает: Садовников Владимир]. Воспользуйся DirectDraw - самое простое, на мой взгляд. 5. (Создание XP-стиля в программах Delphi). [Отвечает: Садовников Владимир]. Есть довольно много всяких компонент для Delphi в стиле XP: типа XPComPack, XPControls и т.д., которые умные люди написали сразу же после выхода ХП. Остаётся только поискать в Интернете такие компоненты и установить себе на Delphi. Делается это легко, и обычно описано в архиве с исходниками. 6. ("Case key of" и массивы). [Отвечает: Садовников Владимир]. На самом деле, всё элементарно. Если используешь OnKeyPress, то параметр Key содержит в себе обычные и управляющие символы ASCII. Вот некоторые из них: procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); Если требуется отловить нажатие клавиш Alt, Shift и Ctrl, то тут уже надо воспользоваться событием OnKeyDown/OnKeyUp. Тогда клавиши определяются константами типа VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN и т.д., а клавиши Alt, Shift и Ctrl содержатся в отдельной переменной Shift. Пример: выводим сообщение по нажатию клавиш Ctrl+Alt+F1: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Массивы - простая вещь тоже. var Динамические массивы объявляются без индекса. var begin И на закуску: создание треугольного массива. var Вы также можете ответить на предыдущие вопросы. Поскольку на них уже ответили как минимум раз, они больше не публикуются в рассылке. Но если вы можете что-то добавить к ответам других, пожалуйста, отвечайте - ответы будут опубликованы. Найти предыдущие вопросы вы можете в архиве рассылки: http://subscribe.ru/archive/comp.soft.prog.delphifaq/, либо на сайте рассылки (http://www.delphi-faq.fatal.ru). Примечание: на текущий момент на сайте ещё нет всех поступивших ответов, но они там появятся в ближайшее время. |
||||||
Здесь представлены ссылки на дружественные сайты нашего портала. Если вы тоже хотите стать нашим другом, разместите баннер на главной странице своего сайта и напишите нам об этом. После этого ссылка на ваш сайт появится в данном разделе вместе с тем описанием, которое вы пришлёте. О вашем портале узнают все читатели! http://infomania2004.webhost.ru/ - Этот сайт создан для того, чтобы вы могли получить интересующую вас информацию с минимальными затратами сил и времени. Если вы не нашли здесь нужной информации, вы можете оставить заявку на ее поиск. Как только информация будет найдена, она появится на сайте, а вам сообщат об этом. Код баннера: <A HREF="http://www.delphi-faq.fatal.ru/" TARGET="_blank"> |
||||||
- А что такое Linux LiveCD? Сисадмин пытается познакомиться с девушкой: Программист на ночь себе ставит два стакана возле кровати. Один с водой - на случай, если захочет пить, другой без воды - на случай, если не захочет. Первое правило сисадмина: 'Лежаший на столе винчестер с данными выглядит точно так же, как и винчестер без данных'. - Я у вас компьютеp купил. Так он сдох. Присылайте свои "компьютерные" анекдоты по этой ссылке: delphi-faq@list.ru и они обязательно будут опубликованы! |
||||||
Товарищи программисты! Проявляйте свою активность. Давайте помогать друг другу! |
||||||
Сайт рассылки: http://www.delphi-faq.fatal.ru E-mail: Delphi-FAQ@list.ru |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.delphifaq |
Отписаться |
В избранное | ||