Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: Образование, Работа и Бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Август 2005 → | ||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
---|---|---|---|---|---|---|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
23
|
24
|
25
|
26
|
27
|
28
|
|
29
|
30
|
Статистика
-1 за неделю
Программирование на Delphi #29
Информационный Канал Subscribe.Ru |
Программирование на DELPHI |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Выпуск #29 (31 августа 2005 г.) |
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Если Вы хотите, чтобы Вашего имени (ника) не было в данной таблице, отправьте письмо по этой ссылке с зарегистрированного у нас адреса. В теле письма, пожалуйста, укажите причину удаления имени из таблицы. Нам важно ваше мнение. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Вопрос #141 (автор вопроса: Вениамин; вопрос отправлен: 09.06.2005 19:39): В главной директории некоторого сайта, например www.name.ru, расположен текстовый документ, например 1.txt (т.е. путь к нему http://www.name.ru/1.txt). Как сделать, чтобы данный файл скачивался в папку с программой? Мне это нужно для следующей цели: есть программа с базой данных (*.txt). Я хочу обновлять эту базу через интернет, т.е. при нажатии кнопки "ОБНОВИТЬ" будет скачиваться файл по указанному мной (программистом) адресу. Спасибо. [Ответить на вопрос]
Вопрос #142 (автор вопроса: Михаил; вопрос отправлен: 18.06.2005 11:33): При подключении к базам Access через ADO все работает нормально, если не используется пароль БД. При использовании пароля Delphi сообщает об ошибке в строке подключения. Как решить эту проблему? [Ответить на вопрос] Вопрос #143 (автор вопроса: Ирина; вопрос отправлен: 20.06.2005 10:25): Здравствуйте! Как из одной ТБД в ComboBox высветить 2 поля и как их по выбору перенести в DBGrid (т.е. делаем выборку из справочника, высветив 2 его поля (наименование, цена) и заносим выбранные данные в формируемую БД)? [Ответить на вопрос] Вопрос #144 (автор вопроса: Angen; вопрос отправлен: 03.07.2005 22:41): Пишу программу "Редактор настроек Windows" наподобие "WinSEr". Подскажите, пожалуйста, как в свойствах "Пароли" под Win98 в закладке "Удаленное управление" программно добавить определенного пользователя или удалить его? [Ответить на вопрос]
Вопрос #63 (автор вопроса: Den; вопрос отправлен: 31.01.2005 12:34): День добрый ! Прошу помощи, кто знает как к Делфе (7) пристроить самописный плагин, или кто знает где взять плагин к D-7, чтоб как в D-8 в редакторе кода можно было сворачивать текст процедур и отдельных блоков кода?. Первый вариант желательнее... [Ответить на вопрос] Вопрос #78 (автор вопроса: Hires; вопрос отправлен: 20.02.2005 16:33): Как получить скорость работы GPU и памяти видео карты? [Ответить на вопрос] Вопрос #82 (автор вопроса: Николай; вопрос отправлен: 23.02.2005 01:44): Подскажите, как получить оцифровку сигнала с линейного входа звуковой карты в реальном времени (без записи в файл WAV и последующего его декодирования)? Спасибо. [Ответить на вопрос] Вопрос #88 (автор вопроса: Sergey; вопрос отправлен: 15.03.2005 19:57): Вопрос по TChart. Как осуществить привязку указателя мыши к линии LineSeries? И еще. По оси X - время (DateTime). Как "вытащить" значение Y в любой точке LineSeries? [Ответить на вопрос] Вопрос #90 (автор вопроса: Nanny_Jagg; вопрос отправлен: 17.03.2005 07:56): Как в DBGrid из библиотеки Ehlib 3.6 добавить Lookup-поле, чтобы оно действительно работало? Поле вроде сделано, но ключевое поле, оставленное рядом для контрола не меняется, по какому событию обработчик писать? [Ответить на вопрос] Вопрос #105 (автор вопроса: Crazy_Jack; вопрос отправлен: 03.04.2005 14:44): Как прочитать под WinXP MBR? [Ответить на вопрос] Вопрос #131 (автор вопроса: YaricZ; вопрос отправлен: 21.05.2005 15:01): У меня такой вопрос: я использую библиотеку KOL и MCK, но компонентов в этих библиотеках немного - только стандартные. Внимание - вопрос знатокам: возможно ли использование компонентов Delphi совместно с KOL? Если добавить обычный компонент из вкладки, к примеру, "стандартные" - программа не компилируется. И второй вопрос: если совместное использование KOL со стандартными компонентами Delphi невозможно, то где можно скачать аналог компонентов DataSource, ClientDataSet, DBGrid. DBEdit, DBMemo? На официальном сайте ничего нет. Заранее выражаю благодарность всем, кто сможет мне помочь. [Ответить на вопрос] Вопрос #138 (автор вопроса: YaricZ; вопрос отправлен: 04.06.2005 21:47): Как сделать анализатор звука (спадающие пики как в Winamp) ? [Ответить на вопрос] |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Вопрос
#122: 1. [Отвечает: mvictor, 08.06.2005 15:35]: Не очень понял причем здесь прокси. Попробуй Indy, по-моему там есть все. Вопрос
#55: 1. [Отвечает: One, 08.06.2005 16:24]: Если любишь всё новое без разбора, то ставь Delphi 2005 (хотя у меня эта система глючила и в итоге вернулся к 7) и работай с Win32 БЕЗ .NET. Microsoft им не пользуется (.NET) – вот и ты не спеши. 2. [Отвечает: spoon, 09.06.2005 10:41]: Различие между WinForm и VCLForm заключается в том, что второй автономный, т.е все библиотеки включаются в exe, а у первого только ссылки на них... Вопрос #80: 1. [Отвечает: One, 08.06.2005 16:32]: А не пробовала хранить картинки не в таблице, а в папке на жёстком диске и называть их в соответствии со значением ключевого поля, например? И при переходе по записям вызывать отображение изображения из файла. Так всегда делаю, а в таблицах картинки хранить неудобно. 2. [Отвечает: SHKoder, 08.06.2005 17:33]: Используй тип поля BLOB. 3. [Отвечает: mfred, 08.06.2005 23:30]: Точно не гарантирую, но возможно в Delphi, когда ты связываешь БД с какой-то таблицей на форме, она не может воспроизвести картинку. Попробуй как-нибудь подстроить, или текст в одном поле, а рисунок в другом. Вопрос #64: 1. [Отвечает: Лялин Александр Николаевич, 08.06.2005 17:44]: Можешь попробовать отдельный редактор с подобной функцией. Например: Notepad ++. http://notepad-plus.sourceforge.net/uk/site.htm. Вопрос #118: 1. [Отвечает: Dron, 08.06.2005 11:03]: Я сделал всё, как было описано: положил F1Book на форму, запустил программу, написал по-русски и пошёл по другим ячейкам. Текст остался русским! Наверное, у вас в системе какие-то настройки шрифтов сбиты. Попробуйте сделать на каком-другом компьютере. Мне кажется, что будет всё нормально. Вопрос #116: 1. [Отвечает: One, 08.06.2005 18:17]: Не все шрифты правильно отображают кириллицу. Советую поэкспериментировать с выбором шрифта, чтобы исключить искажение данных. 1. [Отвечает: Иван, 03.06.2005 12:46]: Был такой случай: написал программуу. На моем компьютере отчеты создавались "грамотно", т.е. русский был русский, а не ломаные символы. На другом компьютере (под какой и писалась программаа) в отчете получились иероглифы, я просто переустановил BDE и все встало на свои места. Вопрос #137: 1. [Отвечает: One, 08.06.2005 19:00]: Возможно, тебе помогут функции ExtractFileDir, ExtractFileExt, ExtractFileName. 2. [Отвечает: Dron, 08.06.2005 19:08]: Не совсем понимаю проблемы... Ну а почему нельзя его ручками убрать, раз оно лишнее? Т.е. так: FileName:=Copy(FileName1,Length(FileName)-4). 3. [Отвечает: SHKoder, 09.06.2005 09:49]: Забава вся в том что ты используешь глобальную переменную, к которой потом конкатенируешь расширение файла... Не делай этого... Отдай эти функции TOpenDialog и TSaveDialog. Покопайся в их функциях и там найдешь, кажется, DefaultExt - расширение файла. Принимает по маске '*.xml' и FileName - если хочешь завязать только на одном имени или маске, с помощью которых ты сможешь сохранять только с этим расширением файл и только с ним естественно его открыть, причем при сохранении в TOpenDialog не обязятельно вбивать расширение файла, а только его имя. 4. [Отвечает: Feniks, 13.06.2005 11:27]: Перед сохранением данных в файл проверяйте FileName на присутствие в нём расширения .XML. Если там такого нет, то добавляйте сами. Для этого в хелпе смотрите функции : 5. [Отвечает: Evgeshka Vasilkov, 13.06.2005 23:50]: Великий и могучий хелп дает нам знак: Вопрос #134: 1. [Отвечает: Dron, 08.06.2005 19:06]: Предлагаю несколько оригинальный метод. Кладём на форму компонент TDriveComboBox (вкладка Win 3.1). У него устанавливаем: Name=Drives; Visible=False. Далее помещаем на форму Edit1, Label1 и Button1. Пусть в Edit1 вводится буква диска, у которого нужно узнать метку... Тогда в Button1.OnClick() пишем: procedure TForm1.Button1Click(Sender: TObject); Т.е. происходит перебор всех строк, каждая из которых включает имя диска и его метку. Если Label1.Caption после нажатия на кнопку станет пустым, значит данный диск недоступен; если он станет двумя квадратными скобками: ( [] ), значит диск не имеет метки. 2. [Отвечает: SHKoder, 09.06.2005 09:41]: Думаю, полностью рабочий исходник тебе поможет. 3. [Отвечает: Feniks, 13.06.2005 10:52]: begin // Get the volume information // if the call was successful, add the serial number to the listbox. 4. [Отвечает: Андрей Лучников, 14.06.2005 11:22]: Если я правильно понял, то нужна привязка к диску (или какая-то проверка). Есть хорошая API-функция GetVolumeInformation. Простой пример чтения a la серийника винта или любого драйва (тот, который задается при форматировании): uses ShellAPI; ... function GetSNHDD(DriveChar: Char):Word; begin "abs" потребовался для исключения отрицательных значений (почему-то иногда бывают). Для более детальной информации лучше почитать хелп. Вопрос #133: 1. [Отвечает: Маренич Владимир, 08.06.2005 23:06]: Попробуй создать безоконный сервис, а управление сервисом (остановка, перезапуск, настройка опций в форме, отображение состояния) сделать другим приложением, в котором можно использовать CoolTrayIcon (см. на torry.net). Преимущества: сервис будет запускаться до логина пользователя, а приложение-спутник после входа пользователя. В случае глюков спутника работа сервиса не прекратится, а спутник можно
перезапустить. Спутником можно контролировать "запущенность" сервиса и в случае каких либо сбоев перезапускать и т.д. и т.п. Сам так сделал. :) Удачи. 2. [Отвечает: VeroLom, 09.06.2005 02:23]: Проще всего написать программу, управляющую сервисом. По таймеру, например, можно проверять состояние сервиса и, если он работает, показать иконку, иначе спрятать. 3. [Отвечает: spoon, 09.06.2005 11:00]: Используй RxTrayIcon. Вопрос #140: 1. [Отвечает: Feniks, 13.06.2005 13:05]: Если Вы используете таблицы Paradox, то я вынужден Вас огорчить - эти таблицы не поддерживают такие связи, хотя в Databse Desktop-е есть возможность создавать эти связи и в его хелпе все описано про каскадное удаление и т.д. Но реально в жизни это не так. Поэтому, единственный выход - это не создавать такие связи, а делать все вручную, т.е. все каскадное удаление, обновление записей и т.д. Я тоже когда-то наступил на эти грабли... 2. [Отвечает: SHKoder, 09.06.2005 10:01]: Очевидным у тебя в каскаде стоит не то событие, ставь его на Delete fk_id - идентификатор и делаешь: select * from table при имении записей в таблице: после выборки ты получишь то что тебе необходимо: fk_id | fc_name | fn_value | fl_del а потом связывай ее с другой таблицей... Для чего такая тризамудень? Для того чтобы можно было восстановить данные удаленные оператором, чтобы сделать роллбэк ну и так далее Успехов. 3. [Отвечает: Маренич Владимир, 08.06.2005 23:45]: Скорее всего проблема в том, что в компоненте TTable установлено свойство Exclusive=true. А по поводу удаления мог бы написать, какую СУБД используешь. Хотя по тому, что есть в тексте вопроса могу предположить (уверен на 99%), что это Paradox. В таком случае это так. Перед удалением записи нужно удалить все связанные с ней записи из других таблиц. Почему Paradox это не делает при установленном CASCADE не понимаю. Но простой пример поможет этот "глюк" обойти. См. приложение (Delphi 7). 4. [Отвечает: msg-Galicino, 11.07.2005 10:35]: Дмитрий, можно использовать каскадное удаление, но сначала удалять дочерние записи и только потом основную. Т.е. в порядке подчиненности снизу вверх. Вопрос #136: 1. [Отвечает: SHKoder, 09.06.2005 09:44]: Метод основан на сложении текста и пароля: "мой текст" + "пароль" = ('м'+'п')('о'+'а')... То есть каждый символ получают путем сложения соответствующих символов текста и пароля. Под "сложением символов" я подразумеваю сложение номеров этих символов. Обычно пароль длиннее текста, поэтому его размножают: "парольпар". Чтобы расшифровать текст, нужно проделать обратную операцию, то есть из текста вычесть пароль. При нажатии на Button1 эта программа шифрует текст из Memo1 при помощи пароля из Edit1. Результат сохраняется в строку s. Для наглядности зашифрованный текст также помещается в Memo1. При нажатии на Button2 текст из s расшифровывается. Если Вы нажмете Button1 два раза подряд, получится зашифрованный зашифрованный текст. Вернуть начальный текст можно будет двумя нажатиями на Button2. var procedure Code(var text: string; password: string; procedure TForm1.Button1Click(Sender: TObject); procedure TForm1.Button2Click(Sender: TObject); 2. [Отвечает: Evgeshka Vasilkov, 13.06.2005 23:59]: База элементарно шифруется xor-ом: var s1:string; После применения такого способа шифрования в "тотальном командире" базу прочитает только Нео. Но от кражи и дешифровки базы спасет только AES, rijndael или любой другой сравнительно современный алгоритм кодирования. Примечание: При любом способе кодирования нужно уделять внимания алгоритмам чтения шифровок. При обычных методах типа .lines.add() символы с кодами 00 могут здорово подмочить репутацию. На мой взгляд лучше хранить в xml не строку, как она есть, а строку её hex кодов ("HEX" ="484558"), и при чтении преобразовывать её в читабельный текст вместе с декодированием. Хотя чем писать своё, для дела (не в качестве самообразования), можно использовать уже готовые программы для тестирования (написанные на неслабом уровне ещё в прошлом веке)... Вопрос #139: 1. [Отвечает: SHKoder, 09.06.2005 09:52]: Можно использовать компоненты, которые образуют аналогичные меню, но перетягиваемые, например в MS Word или Excel, такие компоненты называются dxBarManager из набора DevExpress. Там много всего приятного и удобного. 2. [Отвечает: Feniks, 13.06.2005 12:54]: Можно, если его делать в стиле Офиса. Т.е. меню надо делать на основе TControlBar и TToolBar, или им подобным. Пример построения меню. Вопрос #113: 1. [Отвечает: spoon, 09.06.2005 10:58]: Заюзать FastReport :) Вопрос #135: 1. [Отвечает: Feniks, 13.06.2005 11:06]: Возможно Вам поможет функция Locate, которая есть у TTable и TQuery. 2. [Отвечает: Андрей Лучников, 14.06.2005 14:44]: Если это базы, то самое реальное - создать запрос (TQuery) и выбрать все записи удовлетворяющие критерию через оператор Like, получится набор записей, по которому можно перемещаться, параллельно сихронизируясь с основной таблицей (через любой метод поиска, например, Locate или FindKey), естественно, что у записи должен быть уникальный ключ. В рассылке публиковались вопросы, на которые не ответил никто. Найти эти вопросы Вы можете на нашем сайте в разделе "Эксперт": http://www.delphi.int.ru/modules/expert/. Если Вы ответите на них, авторы этих вопросов будут Вам очень признательны. Все вопросы, опубликованные в данном выпуске рассылки, действительны в течение 7 дней после отправки самой рассылки. Ответы, присланные по истечении данного срока, приняты не будут.
Пожалуйста, обратите на это внимание и рассчитайте свободное время. И не забывайте: чем больше ответов на вопросы Вы присылаете и чем качественнее эти ответы, тем больше у Вас шансы выиграть призы. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Пишем компонент - окно выбора папки. Автор: Трофим Роцкий Среди стандартных диалогов Delphi 6 (вкладка Dialogs) диалог выбора папки, как это не прискорбно, отсутствует. Но ничего :) Сейчас мы исправим данное упущение, написав соответствующий компонент. Чтобы создать новый компонент, в Delphi IDE выберите пункт File > New > Other и затем в появившемся окне нажмите New Component. Появится диалоговое окно, в котором:
Остальное оставьте без изменений и нажмите OK. Наш мегадиалог будет вызываться функцией, продекларированной в Public Declarations компонента: function BrowseFolder(title: PChar; h: hwnd): String;где title - заголовок диалога (поставьте любой на ваш вкус :) ), h - хэндл окна-владельца (то есть вашей программы). А команды, использованные в коде, содержатся в ShlObj.pas, так что не забудьте указать этот модуль в разделе Uses. unit BrowseFolderDlg;interface uses Windows, Messages, SysUtils, Classes, Controls, ShlObj; type TBrowseFolderDlg = class(TComponent) private { Private declarations } protected { Protected declarations } public { Public declarations } function BrowseFolder(title: PChar; h: hwnd): String; published { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('Dialogs', [TBrowseFolderDlg]); end; function TBrowseFolderDlg.BrowseFolder(title: PChar; h: hwnd): String; var lpItemID: PItemIDList; path: array[0..Max_path] of char; //выбранная папка BrowseInfo: TBrowseInfo; //настройки диалога begin FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); SHGetSpecialFolderLocation(h,csidl_desktop,BrowseInfo.pidlRoot); //устанавливаем свойства диалогового окна with BrowseInfo do begin hwndOwner := h; //окно-владелец lpszTitle := title; //заголовок диалога //не показываем некоторые системные папки: "Корзина", "Панель управления" и т.д ulFlags := BIF_RETURNONLYFSDIRS+BIF_EDITBOX+BIF_STATUSTEXT; end; //выводим диалог lpItemID := SHBrowseForFolder(BrowseInfo); //папка, указанная юзером, существует? if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, Path); result:=path; GlobalFreePtr(lpItemID); //освобождаем ресурсы end; end; end. Готово? Сохранитесь и, выбрав Component > Install Component, проинсталлируйте наш диалог, указав в разделе Unit File Name путь к файлу BrowseFolderDlg.pas. Осуществить вызов диалога из программы можно так (разумеется, предварительно бросив TBrowseFolderDlg на форму): procedure TForm1.Button1Click(Sender: TObject);begin Form1.Caption:= 'Выбрана следующая папка: '+ BrowseFolderDlg1.BrowseFolder('Укажите каталог:',Application.Handle); end; Конечно, это только "скелет" полноценного компонента, и просторы для модернизации безграничны... Присылайте свои статьи по адресу info@delphi.int.ru с темой 'Articles' (без кавычек), и они будут опубликованы в ближайших выпусках рассылки и на сайте. Также вы можете заполнить вот эту форму. Большая просьба: статью оформляйте в -txt или -doc формате и используйте -zip или -rar сжатие (без самораспаковки). Если статья
находится в формате HTML, пожалуйста, не используйте формат текста Performatted. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Из данного раздела Вы можете скачать различные файлы: компоненты, plug-in'ы для Delphi, документацию по программированию, программы, игры, написанные на Delphi и всё остальное... Вы можете добавить свои файлы в данный раздел, будем очень признательны! Чтобы сделать это, пожалуйста, заполните форму на сайте. Новые файлы на сайте:
Внимание! На информационном портале Subscribe.Ru появилась возможность прикреплять небольшие картинки к письмам рассылки. Предложение следующее: для файлов данного раздела можно помещать небольшой скриншот, взглянув на который сразу можно увидеть компонент "в работе". Хотелось бы узнать Ваше мнение: стоит ли прикреплять данные скриншоты или можно обойтись без них? Это увеличит размер писем на 30-40 Кб. Итак: Нужно ли помещать в письма рассылки скриншоты компонент, программ, исходников и других файлов раздела "Файловый архив"? 2. Нет, не нужно, а то письма рассылки будут слишком большими. Чтобы перейти к разделу "Файловый архив" на сайте, нажмите на эту ссылку. |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Здесь представлены ссылки на дружественные сайты нашего портала. Если вы тоже хотите стать нашим другом, разместите наш баннер на своём сайте. Подробнее о том, как это сделать, можно прочитать на странице данного раздела на нашем сайте. Узнать о всех наших друзьях более подробно вы сможете на той же странице... http://infomania2004.webhost.ru/ - Этот сайт создан для того, чтобы вы могли получить интересующую вас информацию с минимальными затратами сил и времени. Если вы не нашли здесь нужной информации, вы можете оставить заявку на ее поиск. Как только информация будет найдена, она появится на сайте, а вам сообщат об этом. http://www.visualbasic.noka.ru/ - Программирование на Visual Basic & Basic. На сайте Вы найдете множество примеров, статьи, исходники, ActiveX, а также многое другое! http://www.sashook.nm.ru/ - Игры, коллекция флешек, обои и заставки, компьютерные приколы, картинки, тосты и алкогольные присказки, смешные истории и анекдоты. http://www.ssgroup.fatal.ru/ - Delphi 39. Ресурс для программистов. Статьи, исходники, компоненты, учебники, справочники, FAQ, программы и многое другое. http://www.hkdsoft.narod.ru/ - H.K.D. Soft - Программирование на Delphi, C/C++, Assembler, Pascal, Basic/VB/VBA/VBS. Компоненты, статьи, исходники, множество е-книг, форум. Бесплатный софт. Скачать программу GamesBase - базу данных по играм содержащую описания, скриншоты, коды, прохождения игр. Дружественные рассылки: |
|||||||||||||||||||||||||||||||||||||||||||||||||||
- Что такое пошаговая стратегия? :)) Здравствуйте, уважаемая редакция "Компьютерры". Прошу выслать мне полный домашний адрес Билла Гейтса и написание его имени и фамилии на английском языке. Заранее благодарен. Зеваков Денис Викторович. :)) - Как три программиста могут организовать бизнес? :)) "Дорогая! - заявляет один программер своей жене. - За всё, что ты для меня сделала, я решил увековечить твоё имя! Я назвал твоим именем только что созданный мною вирус". :)) "Ты уверен, что хочешь выключить компьютер?" - спросил компьютер. :)) Встречаются два программиста: Пожалуйста, присылайте свои анекдоты по этой ссылке: info@delphi.int.ru и они обязательно будут опубликованы! Желательно на компьютерную тему.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Товарищи программисты! Проявляйте свою активность. Давайте помогать друг другу! |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Вы можете оказать помощь нашему проекту через систему WebMoney: |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Наш сайт: http://www.delphi.int.ru/ E-mail: admin@delphi.int.ru; info@delphi.int.ru; expert@delphi.int.ru Страница рассылки: http://subscribe.ru/catalog/comp.soft.prog.delphifaq |
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphifaq |
Отписаться
Вспомнить пароль |
В избранное | ||