Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 170
от 04.07.2005, 00:50

Администратор:Калашников О.А.
В номере:Вопросов: 10, Ответов: 30


Вопрос № 22699: Привет всем Экспертам !!! При написаний программ на Delphi (базы данных), я использовал BDE, все было нормально. Однако для того, чтобы все работало, нужно чтобы BDE было установлено в системе. Поэтому вопрос, какую БД можно использовать, чт...
Вопрос № 22707: Добрый день. Ссылаюсь на вопрос № 22620. Как бы вот объяснить, мне нужно на форме иметь таблицу, приблизительно такого вида: http://traffic-club.pochta.ru/Excel.jpg С возможностью группировки как в Excel. Товара будет наимен...
Вопрос № 22720: Как сделать так,чтобы при открытии файла Memo при нажатии кнопки Button1 происходило следующее:линия 1 например записывалась в Edit1.text,а 2 линия в Edit2.text? www.sassoft.narod.ru...
Вопрос № 22736: Как сделать так,чтобы когда у эзера запускалась программа и комп работал в ИНтернете она бы посылала мне сообщение....
Вопрос № 22739: Добрый день. Как с помощью метода Locate ADOTable проводить поиск шаг за шагом, т.е когда находится первое совпадение он искал дальше, а то он ищет только первое совпадение или можно чем нибудь другим (но не перебором) Спасибо....
Вопрос № 22745: Здраствуйте уважаемые Эксперты, и снова у меня проблемы с компонентами, на етот раз с компонентом KeySpy, я его установил но при попытке бросить его на форму, появляется ошибка "Privileged instruction", помогите пожалуйста с етим компоненто...
Вопрос № 22746: Добрый вечер. Ссылаюсь на полученный ответ №22707 Скачал с сайта: http://www.tmssoftware.com/ Пакет компонентов: http://www.tmssoftware.com/gridpackd7.zip Начинаю компилить компонент, запускаю по очереди *.dpk в...
Вопрос № 22759: Привет всем экспертам !!! Опять я, опять с вопросами :) При загрузке моя прог-а показывает заставку. Во время которой происходят некоторые проверки (наличие БД, поиск драйвера) Мне бы хотелось, что-бы Вы ответили можно ли вот так (см. при...
Вопрос № 22771: Здравствуйте уважаемые эксперты. Я запихнул html страничку в *.res файл. Как теперь его можно отобразить в компоненте WebBrowse? Если не трудно, пришлите пожалуйста кусок кода. procedure TForm1.FormCreate(Sender: TObject); begin<...
Вопрос № 22772: Здравствуйте я на форуме первый раз и прошу вас помочь разобраться с ситуацией, пишу базу данных использую ADO . Я попробовал защитить программу от ввода пустых строк таким образом:(в листенге) Но мне не нравится то что компонент DBNavigator ...

Вопрос № 22.699
Привет всем Экспертам !!!
При написаний программ на Delphi (базы данных), я использовал BDE, все было нормально. Однако для того, чтобы все работало, нужно чтобы BDE было установлено в системе.
Поэтому вопрос, какую БД можно использовать, чтобы можно было ее "открыть" в только что установленной OS.

P.S. Сейчас составляю БД через MS Access, а потом работаю через ADO, программа работает даже на "свежей" XP. Как по-вашему такой вариант ???
Отправлен: 27.06.2005, 07:53
Вопрос задал: Andy r00t (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: sir henry
Здравствуйте, Andy r00t!
Другими словами, Вам нужно, чтобы программа работала с базами данных без установки BDE?
Вы пошли по правильному пути используя ADO. ADO это тоже промежуточный слой для работы с БД, правда еще не настолько детально разработаный как BDE.
В ADO тоже нужны соответствующие "дрова" для каждой используемой БД. Как правило для "родных" форматов MS (ACCESS и MS SQL) такие "дрова" уже стоят в системе.
Другой вариант - использовать компоненты прямого доступа к БД (например в Дельфи это компоненты для InterBase или ее бесплатного аналога FireBird). Таких компонентов разработано уже достаточно много для самых разных БД как локальных (типа dBase/Foxpro, Paradox, Access и т.п., так и для серверов БД типа MS SQL, MySQL, Postgree, InterBase/FireBird и т.п.). Много компонентов валяется на http://sourceforge.net/index.php или http://www.torry.net (воспользуйтесь там строкой поиска).
Компоненты прямого доступа дают заметный выигрыш в скорости доступа к данным по сравнению с универсальными средствами (BDE, ADO, ODBC) и не требуют дополнительной установки еще чего либо (если только Вы захотите использовать сервер БД, то нужно будет установить и его).
Кстати, насчет серверов БД. Многие из них легки в переноске и установке, и быстры в работе с данными, такие как FireBird, например. И, что самое приятное, не требуют покупки лицензии (в отличие от MS SQL, InterBase или MS Access).
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.06.2005, 08:44

Отвечает: Jadd
Здравствуйте, Andy r00t!
А нам-то чего? Целесообразность того или иного метода определяется целями проекта. Если нужно работать на чистой машине без БДЕ, то ADO как раз то, что нужно. При этом значения не имеет какая база данных юзается - Access, Paradox или еще какая.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 27.06.2005, 09:11

Отвечает: Tsechoev Bagaudin
Здравствуйте, Andy r00t!
БД выбирать нужно исходя из самой задачи, а не от того что установлено на ОС. Если незнаешь что конкретно использует твое ПО создавай дистр через инсталяторы.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 27.06.2005, 11:46


Вопрос № 22.707
Добрый день.
Ссылаюсь на вопрос № 22620.
Как бы вот объяснить, мне нужно на форме иметь таблицу, приблизительно такого вида:

http://traffic-club.pochta.ru/Excel.jpg

С возможностью группировки как в Excel. Товара будет наименований 200, хотя меняться будет редки, поэтому я думаю его не нужно держать в какой-то базе. Единственно очень будет много арифметических действий между ячейками.

Начал пробовать через StringGrid арифметические действия производить, и чтобы данные считывались с ini, получился какой-то кашмар.
Принцип ввожу количество мониторов в ячейке 2/2, а в остальных показывает цены: отптовая, наличными, безналичными и т.д.

Подскажите, может как-то всетаки проще можно, а то ведь это действия с одной строкой, а их будет около 200.
И вдруг придется вставить где-то в середине какой-то товар, почти все придется переписывать.

Приложение:

Отправлен: 27.06.2005, 10:32
Вопрос задал: Алексей (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: sir henry
Здравствуйте, Алексей!
Если нужно "как в Excel"Б то почему бы не воспользоваться именно Excel'ем? Согласитесь, прикладывать титанические усилия, чтобы создать то, что уже есть - занятие, мягко говоря, странное.
Зачем человек берется программировать? В большинстве случаев его не устраивает функциональность того, что есть (про зарабатывание денег и вообще про деньги, сейчас говорить не будем). А если все будет тоже самое, то зачем огород городить?
Это, конечно, не значит, что все что Вы хотите сделать делать не нужно, просто есть ведь уже готовый инструмент именно с такими свойствами.
А теперь по вопросу. :)
Загляните по этой ссылке, я думаю эти экселеобразные компоненты Вам помогут.
http://www.torry.net/pages.php?id=116
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 27.06.2005, 11:13

Отвечает: Tsechoev Bagaudin
Здравствуйте, Алексей!
Работай тогда с Excel, а лучше всего продумай другие варианты для решения своей задачи. Если будешь использовать Excel и если не знаешь как это сделать, смотри через макросы, т.е. запись макроса - > твои действия - > просмотр кода.
Удачи!
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 27.06.2005, 11:43


Вопрос № 22.720
Как сделать так,чтобы при открытии файла Memo при нажатии кнопки Button1 происходило следующее:линия 1 например записывалась в Edit1.text,а 2 линия в Edit2.text?
www.sassoft.narod.ru
Отправлен: 27.06.2005, 15:46
Вопрос задал: Sassoft (статус: Посетитель)
Всего ответов отправлено: 6

Отвечает: X
Здравствуйте, Sassoft!
Edit1.Text:=Memo1.Lines[0];
Edit2.Text:=Memo1.Lines[1];
А в чём вобще проблема?
Ответ отправил: X (статус: 7-ой класс)
Отправлен: 27.06.2005, 15:53
Оценка за ответ: 5
Комментарий оценки:
блин,точно!Как я не догодался.Спасибо большое

Отвечает: Bochvarov NikB
Здравствуйте, Sassoft!
А тьи как думаеш?
if Memo.Lines.Count>0 then begin
Edit1.Text := Memo.Lines[0]
end;
if Memo.Lines.Count>1 then begin
Edit2.Text := Memo.Lines[1]
end;
Ответ отправил: Bochvarov NikB (статус: 4-ый класс)
Отправлен: 27.06.2005, 16:06

Отвечает: Ерёмин Андрей
Здравствуйте, Sassoft!
Или я не понял вопроса, или... код в приложении.

Приложение:

---------
Жизнь - игра, в которой нет setup'а...

Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 27.06.2005, 17:07

Отвечает: Gin
Здравствуйте, Sassoft!
Для открытия Memo ответ уже дали.
На случай если будете писать Memo сами:

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then
Edit1.Text:=Memo1.Lines[0];
end;

С Уважением, Gin.
Ответ отправил: Gin (статус: Студент)
Отправлен: 27.06.2005, 17:19

Отвечает: sir henry
Здравствуйте, Sassoft!
Мемо - это массив строк. Вот и действуйте соответственно. :)
В процедуру нажатия на кнопку помещаете:
Edit1.Text:=Memo1.Lines[1];
Edit2.Text:=Memo1.Lines[2];
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 28.06.2005, 05:04

Отвечает: Jadd
Здравствуйте, Sassoft!

procedure TForm1.OnButton1Click(Sender: TObject);
begin
Edit1.Text := Memo.Lines[0];
Edit2.Text := Memo.Lines[1];
end;
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 28.06.2005, 11:41


Вопрос № 22.736
Как сделать так,чтобы когда у эзера запускалась программа и комп работал в ИНтернете она бы посылала мне сообщение.
Отправлен: 27.06.2005, 21:39
Вопрос задал: Sassoft (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Bochvarov NikB
Здравствуйте, Sassoft!
Какое сообщение :)
SMS, мейл, сокен сообщение или что?
Ответ отправил: Bochvarov NikB (статус: 4-ый класс)
Отправлен: 27.06.2005, 21:45
Оценка за ответ: 5
Комментарий оценки:
SMS

Отвечает: X
Здравствуйте, Sassoft!
Могу предложить два варианта
1)С помощью компонентов TServerSocket и TClientSocket(по умолчанию в Delphi 7 не установлены) можно также воспользоваться компонентами Indy. См. пример в передачи строки в приложении.
При этом передача произойдёт, только если у принимающей программы(с TClientSocket) тоже есть доступ к интернету. Кроме того тебе должен быть известен IP этого юзера (его требуеться установить в свойстве Addres у TClientSocket).
2)Отправить e-mail. Сообщи мыло - вышлю пример.

Приложение:

Ответ отправил: X (статус: 7-ой класс)
Отправлен: 27.06.2005, 23:10

Отвечает: sir henry
Здравствуйте, Sassoft!
А что такое "эзера"? Это какой-то вирус?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 28.06.2005, 04:41
Оценка за ответ: 4
Комментарий оценки:
Юзер от Англ. User

Отвечает: Jadd
Здравствуйте, Sassoft!
Дык реализуй отправку сообщения тебе на почту через SMTP. Или реализуй у себя сервер, а в программе сделай клиент, который будет подключаться по твоему адресу на определенный порт.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 28.06.2005, 10:19


Вопрос № 22.739
Добрый день. Как с помощью метода Locate ADOTable проводить поиск шаг за шагом, т.е когда находится первое совпадение он искал дальше, а то он ищет только первое совпадение или можно чем нибудь другим (но не перебором)
Спасибо.
Отправлен: 27.06.2005, 22:13
Вопрос задал: Vovvv (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Bochvarov NikB
Здравствуйте, Vovvv!
А нелзя ли сделать запрос (SQL) и потом через перебором (только совпадения будут в резулт Query). Думаю, ето бьистрее.
Ответ отправил: Bochvarov NikB (статус: 4-ый класс)
Отправлен: 27.06.2005, 22:39

Отвечает: sir henry
Здравствуйте, Vovvv!
Locate, если нашла нужную запись, делает ее текущей и возвращает True (если не нашла - False). Отсюда напрашивается алгоритм поиска - пока Locate выдает True - продолжать вызывать эту функцию:
While dm.Tablica.Locate('Data', Now, []) do
Begin
{Здесь делаем те действия, которые нужно делать с отобраными записями}
End;
Однако, поскольку Вы используете ADO, более "идеологически" правильно сделать запрос с заданым условием (которое Вы ранее помещали в Locate). Запрос Вам возвратит все записи удовлетворяющие Вашему условию и операцию, которую Вы хотели делать, можно применить сразу к группе записей с помощью SQL команды UPDATE (если речь идет об изменении данных). Хотя UPDATE можно делать и сразу, но вдруг Вы решили проедварительно взглянуть... :)
Или, допустим, результат запроса сразу направить в отчет.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 28.06.2005, 04:51


Вопрос № 22.745
Здраствуйте уважаемые Эксперты, и снова у меня проблемы с компонентами, на етот раз с компонентом KeySpy, я его установил но при попытке бросить его на форму, появляется ошибка "Privileged instruction", помогите пожалуйста с етим компонентом, вот ссылка на его: http://www.utilmind.com/delphi/keyspy.zip , заранее спасибо.
Отправлен: 27.06.2005, 22:59
Вопрос задал: Staskin (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Gin
Здравствуйте, Staskin!
Вставьте в вопрос содержимое реадми, а компанент мне не нужен.
С Уважением, Gin.
Ответ отправил: Gin (статус: Студент)
Отправлен: 27.06.2005, 23:32

Отвечает: Ерёмин Андрей
Здравствуйте, Staskin!
Да, у меня та же самая ошибка. Видимо, компонент разрабатывался для более ранних версий Delphi и других модулей, поэтому возникает данная ошибка. Увы, исправить это вряд ли как-то можно. Однако модуль компонента весьма небольшой - можно взять необходимые функции из него или воспользоваться другим подобным компонентом.
---------
Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 28.06.2005, 00:12


Вопрос № 22.746
Добрый вечер.
Ссылаюсь на полученный ответ №22707

Скачал с сайта:
http://www.tmssoftware.com/

Пакет компонентов:
http://www.tmssoftware.com/gridpackd7.zip

Начинаю компилить компонент, запускаю по очереди *.dpk выскакивает, следующее:
"Cannot load package 'dclusr70.' It contains 'DdeReg,' which is also contained in package 'dclstd70'"
Do you want to attempt to load this package the next tiem a project is loaded ?

Подскажите в чем проблема.

Установлен Delphi 7.0 и скачал соответственно под него компоненты.
Отправлен: 27.06.2005, 23:37
Вопрос задал: Алексей (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Tsechoev Bagaudin
Здравствуйте, Алексей!
Вообще-то тебе пишут: "Не могу загрузить пакет 'dclusr70.' так как все это есть! в 'dclstd70' Вы хотите загружать данный пакет в следующий раз?"
Думаю понятно
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 28.06.2005, 00:03

Отвечает: Ерёмин Андрей
Здравствуйте, Алексей!
Запускать нужно только один *.dpk - для вашей версии Delphi.
Попробуйте удалить из устанавливаемого пакета модуль DdeReg.
---------
Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 28.06.2005, 00:05

Отвечает: Jadd
Здравствуйте, Алексей!
Это конфликт имен. Грохни указанный модуль из одного из пакетов.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 28.06.2005, 10:05
Оценка за ответ: 5
Комментарий оценки:
Болльшое спасибо, помогло


Вопрос № 22.759
Привет всем экспертам !!!
Опять я, опять с вопросами :)
При загрузке моя прог-а показывает заставку. Во время которой происходят некоторые проверки (наличие БД, поиск драйвера)
Мне бы хотелось, что-бы Вы ответили можно ли вот так (см. прилож) делать или есть ошибки. Я пока только учусь, так что подскажите если что не так. Вообщем жду замечаний профи :)

Приложение:

Отправлен: 28.06.2005, 07:09
Вопрос задал: Andy r00t (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Ерёмин Андрей
Здравствуйте, Andy r00t!
Конечно можно. Существует много методов создания сплеш-форм. Этот - один из самых простых. Также можно воспользовать компонентом StartMark (http://www.grundic.narod.ru/file/components/startmark.zip).
---------
Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 28.06.2005, 08:54
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ

Отвечает: sir henry
Здравствуйте, Andy r00t!
В принципе нормально, непонятно только зачем так много UPDATE. :)
Если посмотреть в хелп, то там написано, что "...обычно UPDATE происходит автоматически..." (т.е., когда у контрола на форме что-то случается) "... вызов UPDATE может потребоваться перед каким-либо очень длительным процессом могущим помешать автоматической перерисовке" (как это можно наблюдать сплошь и рядом во всеми любимой программе 1С. :)
И еще. Если не найден драйвер для Access, то лучше наверное переустановить его сразу и, наверноеесли ошибка повториться, то посоветовать обратиться к администратору, т.к. дрова эти отнюдь не часть программы, а часть системы. Если дрова не нашлись, это явно какойто косяк в системе, а отнюдь не в программе.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 28.06.2005, 09:03

Отвечает: Jadd
Здравствуйте, Andy r00t!
Объясни одну простую вещь: программа делает то, что тебе нужно? Ну и все. Чего по каждому поводу советоваться с экспертами? Насчет недовольных частым UPDATE. Это оправданное действие, т.к. при смене надписи в лейбле окно не перерисовывается если приложение параллельно выполняет какую-то работу. Так что никого не слушай и дерзай на почве програзма.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 28.06.2005, 10:02
Оценка за ответ: 5
Комментарий оценки:
Прога делает, то что нужно. Но я же сказал: хочу знать мнение профи. Правильно ли я все сделал.


Вопрос № 22.771
Здравствуйте уважаемые эксперты.
Я запихнул html страничку в *.res файл. Как теперь его можно отобразить в компоненте WebBrowse?
Если не трудно, пришлите пожалуйста кусок кода.

procedure TForm1.FormCreate(Sender: TObject);
begin
????????????????????????????????????????a
end;
Отправлен: 28.06.2005, 12:56
Вопрос задал: source (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Gin
Здравствуйте, source!
Попробуйте так:

{$R имя_Вашего_файла_html.RES} - обязательно
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowse1.Navigate(имя_Вашего_файла_html);
end;

С Уважением, Gin.
Ответ отправил: Gin (статус: Студент)
Отправлен: 28.06.2005, 14:03
Оценка за ответ: 3
Комментарий оценки:
Что-то у меня ничего не получилось - может на мыло скинете пример? Плизззз....

Отвечает: Denisss
Здравствуйте, source!
Смотрите приложение.
Примечание:
я сохранил html страничку в раздел HTML, с именем INDEX, файл назвал HTM.res

Приложение:

Ответ отправил: Denisss (статус: 8-ой класс)
Отправлен: 28.06.2005, 18:16
Оценка за ответ: 5
Комментарий оценки:
Спасибо большле


Вопрос № 22.772
Здравствуйте я на форуме первый раз и прошу вас помочь разобраться с ситуацией, пишу базу данных использую ADO .
Я попробовал защитить программу от ввода пустых строк таким образом:(в листенге)
Но мне не нравится то что компонент DBNavigator постоянно перерисовывается подскажите пожалуйста, а то я только учусь программировать.

Приложение:

Отправлен: 28.06.2005, 13:05
Вопрос задал: Voldmir (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Tsechoev Bagaudin
Здравствуйте, Voldmir!
Под какую БД ты пишешь?
Почти не существует БД, которая не имеет возможность проверки вставляемых в стобец значений. Напиши какая БД, затем я вышлю пример как наложить ограничения на данные.
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 28.06.2005, 13:29

Отвечает: Jadd
Здравствуйте, Voldmir!
А зачем это в таймере делать? Не проще это сделать на OnPost и OnEdit? Конечно навигатор мерцает при отрисовке.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 28.06.2005, 23:28

Отвечает: sir henry
Здравствуйте, Voldmir!
От ввода пустых строк нужно защищаться в САМОЙ базе данных. Компоненты отображения и управления здесь совершенно не причем. :)
Например, если Вы используете БД типа Visual FoxPro, то там при создании полей можно задавать NOT NUL (т.е. "нельзя использовать пустые значения"). В InterBase/MS SQL и многих других есть подобные опции. Т.е. Вы сначала должны разработать базу данных и только потом браться за компоненты отображения данных и навигации по дпнным.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 29.06.2005, 06:31


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться
Вспомнить пароль

В избранное