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

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


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

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

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

Выпуск № 274
от 24.10.2005, 16:51

Администратор:Калашников О.А.
В рассылке:Подписчиков: 262, Экспертов: 46
В номере:Вопросов: 7, Ответов: 30


Вопрос № 27909: Мне надо сделать, тобы при нажатии на кнопку, шла проверка, что в ComboBox1, и делало какие - то действия....
Вопрос № 27919: Здравствуйте, уважаемые эксперты. Мне нужны какие-нибудь компоненты для работы с MySQL. В стандартных я не нашел ничего. Может, плохо искал. Скачал с инета MDAC, а он незарегенный. Да в общем-то я пока новичок, и мне сложно. Подскажите, пожалуйст...
Вопрос № 27930: Здравствуйте, эксперты! Просьба подсказать компоненты (желательно с документацией) или пример по работе с сетевыми протоколами и работе с Интернет вообще. Задача в следующем необходимо тестировать ADSL подключение на предмет устойчивой связи, оргигин...
Вопрос № 27939: Здравствуйте господа эксперты. У меня такой вопрос: хочу вывести список анимации MSAgent в ListBox1 но компилятор сообщает ошибку «[Error] Unit1.pas(103): Undeclared identifier: 'IEnumVariant'» пример кода нашел на каком-то сайте. У меня...
Вопрос № 27941: Здравствуйте ещё раз! И ещё один вопрос по использованию компонента TWebBrowser: При навигации вперед-назад (forward-backward), если пользователь ещё никуда не двигался, возникает ошибка. В одной из статей по использованию этого компонента, п...
Вопрос № 27945: Уважаемые эксперты! Подскажите, п-та, с помощью какой компоненты можно создать выборку записей таблицы с помощью Shift+левая кнопка мыши(пачкой) и Ctrl+левая кнопка мыши(отдельно). ...
Вопрос № 27946: Часто уважаемые ЭКСПЕРТы. Как сохранить кусок подгружаемого из файла imagA прямоугольной формы?! //================================ procedure obrezka; begin try form1.image1.Picture.LoadFromFile('x.bmp'); form1...

Вопрос № 27.909
Мне надо сделать, тобы при нажатии на кнопку, шла проверка, что в ComboBox1, и делало какие - то действия.

Приложение:

Отправлен: 18.10.2005, 20:41
Вопрос задал: SaschaG (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Татьяна
Здравствуйте, SaschaG!
Элемент Combobox имеет свойство itemindex - индекс выбранного в данный момент элемента, его и проверяйте
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 18.10.2005, 20:46

Отвечает: Warrior
Здравствуйте, SaschaG!
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: Label1.Caption:='выбран первый в списке элемент';
1: Label1.Caption:='выбран второй в списке элемент';
2: Label1.Caption:='выбран третий в списке элемент';
end;
end;

Обрати внимание, что нумерация начинается с 0.
Ответ отправил: Warrior (статус: 1-ый класс)
Отправлен: 18.10.2005, 22:37

Отвечает: Schmak
Здравствуйте, SaschaG!
Используйте свойство combobox1.itemindex, оно содержит номер выделенного элемента. Нумерация начинается с 0. Если в поле combobox1 разрешён ввод текста, то необходимо учитывать и это. При вводе текста itemindex принимает значение -1.
procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
-1: Label1.Caption:='Вводится текст';
0: Label1.Caption:='1';
1: Label1.Caption:='2';
2: Label1.Caption:='3';
end;
end;
Ответ отправил: Schmak (статус: 2-ой класс)
Отправлен: 19.10.2005, 05:16

Отвечает: sir henry
Здравствуйте, SaschaG!
Особенно понятно вот это - "делало какие - то действия". :)
"шла проверка, что в ComboBox1" - т.е. Вам нужно проверить содержимое ComboBox?
Можно например так:
const
s = 'Строка_которую_Вы_ищите';
var
i: integer;
Begin
i:=0;
While Pos(s, ComboBox.Items[i])=0 do
Inc[i];
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 06:50

Отвечает: Ballon
Здравствуйте, SaschaG!

Выражение в Case не может быть типа string см. пример ниже:

procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Text := '';
ComboBox1.Items.Add('один');
ComboBox1.Items.Add('два');
ComboBox1.Items.Add('три');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: Label1.Caption := '1';
1: Label1.Caption := '2';
2: Label1.Caption := '3';
end;
end;
---------
Хочу все знать...
Ответ отправил: Ballon (статус: 5-ый класс)
Отправлен: 19.10.2005, 07:02

Отвечает: Маренич Владимир
Здравствуйте, SaschaG!
В Паскале таких конструкций нет!
В Вашем примере можно написать так:

procedure TForm1.Button1Click(Sender: TObject);
begin
if ComboBox1.Text='один' then Label1.Caption := '1' else
if ComboBox1.Text='два' then Label1.Caption := '2' else
if ComboBox1.Text='три' then Label1.Caption := '3' else Label1.Caption := '?';
end;

Если есть какое-то множество таких соответствий, то можно описать их в двух массивах и перебирать с помощью цикла. Можно использовать объект TStringList, но его нужно инициализировать соответсвенно строками:
один=1
два=2
три=3
и.т. и получать значение для Label1.Caption одной строкой:
Label1.Caption:=List.Values[ComboBox1.Text]
а инициализировать можно из текстового файла при создании формы (в процедуре Form1Create) List.LoadFromFile('C:primer.txt')
Ответ отправил: Маренич Владимир (статус: 3-ий класс)
Отправлен: 19.10.2005, 08:27

Отвечает: Ерёмин Андрей
Здравствуйте, SaschaG!
Оператором case нельзя делать выбор из строк, можно только с числами. Самым логичным в данном случае будет следующий вариант: в ComboBox.Items поместить все ваши строки ("один", "два", "три" и т.д.), а затем проверять номер выбранного пункта через ItemIndex:

case ComboBox1.ItemIndex of
0: Label1.Caption := '1'
1: Label1.Caption := '2'
2: Label1.Caption := '3'
end;


Не забудьте поставить у ComboBox.Style значение csDropDownList.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 19.10.2005, 15:09

Отвечает: Romodos
Здравствуйте, SaschaG!
case нельзя применять относительно строковых типов.
Возможно, придётся делать простым if'ом
If ComboBox1.Text='' then Label1.Caption := '1';
Но лучше производить проверку по индексу, если это возможно
т.е сопоставить не текст,а
case combobox1.itemindex of
0:Label1.Caption := '1';
1:Label1.Caption := '2';
2:Label1.Caption := '3';
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 19.10.2005, 16:18


Вопрос № 27.919
Здравствуйте, уважаемые эксперты.
Мне нужны какие-нибудь компоненты для работы с MySQL. В стандартных я не нашел ничего. Может, плохо искал. Скачал с инета MDAC, а он незарегенный. Да в общем-то я пока новичок, и мне сложно. Подскажите, пожалуйста, где мне скачать компоненты, и вообще, где можно взять какую-нибудь инфу (желательно на русском). Заранее, спасибо.
Отправлен: 19.10.2005, 00:47
Вопрос задал: Repose (статус: 1-ый класс)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Силантьев Евгений Александрович
Здравствуйте, Repose!
Ну например здесь последняя инфа http://www.mysql.ru/ или http://www.mysql.com/ по-моему там и компоненты есть. Успехов!
---------
The world is mine! :)
Ответ отправил: Силантьев Евгений Александрович (статус: 6-ой класс)
Отправлен: 19.10.2005, 02:07

Отвечает: Tsechoev Bagaudin
Здравствуйте, Repose!
Вот ссылка на ODBC драйвер для MySQL
http://dev.mysql.com/get/Downloads/MyODBC3/MyODBC-3.51.11-2-win.exe/from/http://ftp.citkit.ru/pub/MySQL/
После установки создай DSN для своего MySQL сервера и работай с помощью компонентов вкладки ADO. Что касается докуметации то это mysql.ru и com, а также я в ближайшие 2-3 дня вывешу книги в формате pdf на свой сайт и не только по MySQL. Накопилось огромное количество литературы по программированию, сетям и т.д. И я считаю что надо поделиться с народом. Сайт http://www.ingush.com , потом посмотришь если вдруг понадобится книга.
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: Студент)
Отправлен: 19.10.2005, 04:39

Отвечает: Ballon
Здравствуйте, Repose!

Можно пользоваться и стандартными компонентами но надо настроить ODBC поищите в интернете MySqlODB (могу скинуть на мыло), а MDAC этот компонент используется для доступа к MySql без ODBC.

---------
Хочу все знать...
Ответ отправил: Ballon (статус: 5-ый класс)
Отправлен: 19.10.2005, 06:44

Отвечает: sir henry
Здравствуйте, Repose!
Инфу на русском можно взять на сайте www.mysql.ru. Там довольно хорошие мануалы по использованию MySQL.
Дельфийские компоненты для MySQL можно взять здесь:
http://members.xoom.com/qabi/TmySQL/TmySQL1.0.0.0.zip
http://www.tsinet.ru/~vg/
http://www.scibit.com
Можно зайти на sourceforge.net и поискать там.
Если Вы установили дравер ODBC для MySQL, то можете работать хоть через BDE, хоть через ADO стандартным способом. Драйвер можно скачать с сайта www.mysql.com.

Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 07:01

Отвечает: Sniffer
Здравствуйте, Repose!

Все то что Вым посоветовали - в основном платные компоненты - поэтому осмелюсь добавить еще вот этот: zeosdbo-6.x.x взять мона тут www.zeoslib.net www.sourceforge.net/projects/zeoslib
Поддерживает работу с MySQL 3.20 - 4.1; PostgreSQL 6.5 - 7.4; Firebird 1.0 - 1.5,
Interbase 5.0 - 7.5, MS SQL Server 7, 2000, Sybase ASE 12.0, 12.5, Oracle 9i,
SQLite 2.8
При этом всем бесплатен.
Ответ отправил: Sniffer (статус: Студент)
Отправлен: 19.10.2005, 07:32

Отвечает: Jadd
Здравствуйте, Repose!
Все просто. У MySQL есть драйвер для ODBC. А к ODBC можно коннектиться и стандартными средствами дельфей (TTable и тп), и через ADO. Дерзайте.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 19.10.2005, 09:06

Отвечает: Lector
Здравствуйте, Repose!
Используйте <a href="https://sourceforge.net/projects/zeoslib">Zeos Controls</a>.
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: 6-ой класс)
Отправлен: 19.10.2005, 18:13


Вопрос № 27.930
Здравствуйте, эксперты! Просьба подсказать компоненты (желательно с документацией) или пример по работе с сетевыми протоколами и работе с Интернет вообще. Задача в следующем необходимо тестировать ADSL подключение на предмет устойчивой связи, оргигинального в голову не пришло, поэтому использовал внешнюю команду интерпретатора ОС ping (код программы в приложении). 1. моя беда что не знаком с механизмом отслеживания завершение внешного процесса (ping c записью в файл). 2. при большом объеме файла постоянные ошибки ввода-вывода. Подскажите как что подправить или где что нужно почитать для более приличного решения задачи.

Приложение:

Отправлен: 19.10.2005, 08:58
Вопрос задал: EugeneBerk (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jadd
Здравствуйте, EugeneBerk!
Я бы не стал юзать WinExec в данной задаче. Есть прекрасная функция CreateProcess, которая позволит Вам управлять дочерним процессом. Более того, если поищите мой ответ на переадресацию ввода/вывода из дочернего процесса в родительский (функция CreatePipe), то можно и не выводить досовское окно, а результат пихать в окно главной программы.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 19.10.2005, 09:04
Оценка за ответ: 4


Вопрос № 27.939
Здравствуйте господа эксперты. У меня такой вопрос: хочу вывести список анимации MSAgent в ListBox1 но компилятор сообщает ошибку
«[Error] Unit1.pas(103): Undeclared identifier: 'IEnumVariant'»
пример кода нашел на каком-то сайте.
У меня Delphi6, OS WindowsXP.
Листинг кода в приложении

Приложение:

Отправлен: 19.10.2005, 13:45
Вопрос задал: Voldmir (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Rusland
Здравствуйте, Voldmir!
Не определены интерфейсы Microsoft Agent. Для дельфи должен быть установлен компонент TAgent. Почитайте статью http://mycomputer.ua/text/622. Удачи.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 19.10.2005, 14:07

Отвечает: sir henry
Здравствуйте, Voldmir!
Так Вам же компилятор и говорит, что не знает, что такое IEnumVariant. Найдите, в каком модуле этот тип объявляется и подключите его в строку USES. И будет Вам щастье. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 14:59

Отвечает: Schmak
Здравствуйте, Voldmir!
Попробуйие найти модуль, где объявлется данный тип и подключите его в uses.
Кстати попробуйте посмотреть список uses в исходниках примера, который вы нашли, скорре всего этот модуль там уже объявлен.
Ответ отправил: Schmak (статус: 2-ой класс)
Отправлен: 19.10.2005, 17:13

Отвечает: Romodos
Здравствуйте, Voldmir!
Просто надо какойто модуль подключить, а ьто тип IEnumVariant не определён
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 20.10.2005, 14:52


Вопрос № 27.941
Здравствуйте ещё раз!
И ещё один вопрос по использованию компонента TWebBrowser:
При навигации вперед-назад (forward-backward), если пользователь ещё никуда не двигался, возникает ошибка. В одной из статей по использованию этого компонента, предлагалось решение проблемы с помощью блоков try, except, end. Однако у меня всё равно выдаётся ошибка! Может быть, я что-то не так делаю?

Приложение:

Отправлен: 19.10.2005, 14:10
Вопрос задал: Euphoriz (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Rusland
Здравствуйте, Scratchy!
Я делал так - две кнопки Назад и Вперед (NBack и NForward). При старте значение Enabled - False. В обработчике OnCommandStateChange:

Приложение:

---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)

Ответ отправил: Rusland (статус: Практикант)
Отправлен: 19.10.2005, 14:24
Оценка за ответ: 5
Комментарий оценки:
Аа... ошибся, всё работает. Просто невнимательно прочитал ответ. Спасибо! То, что надо!

Отвечает: sir henry
Здравствуйте, Scratchy!
Используйте Try ... Exept.
Try
WebBrowser1.Go;
Exept
ShowMessage('Куды прешь!!!');
End;
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 15:02

Отвечает: Ерёмин Андрей
Здравствуйте, Scratchy!
Через try..except нужно попробовать, а не через try..finally. Попробуйте так:

procedure Form1.back_buttonClick(Sender: TObject);
begin
try
WebBrowser1.GoBack;
except
Abort;
end;
end;

---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 19.10.2005, 15:09

Отвечает: Schmak
Здравствуйте, Scratchy!
Попробуй через try..except
procedure Form1.back_buttonClick(Sender: TObject);
begin
try
WebBrowser1.GoBack;
except
abort;
end;
end;
Кстати Delphi будет продолжать отображать ошибку, чтобы это не происходило можно во время отладки программы убрать галку Notify on language exception в Debugger Options
Ответ отправил: Schmak (статус: 2-ой класс)
Отправлен: 19.10.2005, 16:40


Вопрос № 27.945
Уважаемые эксперты!
Подскажите, п-та, с помощью какой компоненты можно создать выборку записей таблицы с помощью Shift+левая кнопка мыши(пачкой) и Ctrl+левая кнопка мыши(отдельно).
Отправлен: 19.10.2005, 15:41
Вопрос задал: Ramil (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Werewolf
Здравствуйте, Ramil!
DbGridEh из EhLib
http://www.ehlib.com/RUS/default.htm
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 19.10.2005, 16:03

Отвечает: sir henry
Здравствуйте, Ramil!
Выборка записей из таблицы делается с помощью компонента TQuery либо TADOQuery. А уж каким способом Вы будете запускать этот запрос мышкой или кошкой - Вы там сами решите. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 16:05

Отвечает: Татьяна
Здравствуйте, Ramil!
Смотря какая таблица вам нужна, если таблица, не связанная с базами данных (просто визуально), то например можно использовать стандартный TStringGrid, указав свойство Options gorangeselect в true либо в коде
StringGrid1.Options := StringGrid1.Options + [gorangeselect];
проблемы с shift не возникает, c ctrl можно будет в общем-то дописать (это уже просто другой вопрос)
Если это работа с БД, то обычный TDBGrid в options выбрать DgMultiSelect.
Желаю удачи
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 19.10.2005, 17:10


Вопрос № 27.946
Часто уважаемые ЭКСПЕРТы.
Как сохранить кусок подгружаемого из файла imagA прямоугольной формы?!

//================================

procedure obrezka;
begin
try
form1.image1.Picture.LoadFromFile('x.bmp');
form1.image2.Canvas.CopyRect(Rect(0, 0, 171, 223), image1.Canvas, Rect(119, 136, 290, 359));
form1.image2.Picture.SaveToFile('x2.bmp');
except
end;
end;

//================================

Ведь если вызвать эту процедуру, то в результате получим файл-рисунок рамером 0 байт!?

Как правильно осуществить "обрезание"? Для bmp и для jpg рисунков.

И, как можно сделать так, как в убогом mspaintE, чтобы область выделения задавать прямоугольником (чтобы его рисовать самому, а не брать координаты (aka mspaint - выделение))!
Ув. эксперты и "эксперты", пожалуйста, ответьте на вопрос полностью!
Отправлен: 19.10.2005, 16:24
Вопрос задал: Force User (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Force User!
1. С первой частью вопроса не совсем понятно. Я делаю абсолютно тоже самое что и Вы (т.е. копирую, вставляю, сохраняю) и у меня в x2.bmp сохраняется ИМЕННО тот кусок, который я скопировал. Видимо проблема происходит раньше. Попробуйте разделить процедуру копирования и сохранения. После копирования у Вас в Image2 появился тот кусок. который Вы копировали?
2. Обрезание - как в MS Paint?Ну можно так:
- копируете нужную часть ресунка в память, в TBitmap
- чистите TImage
- Вставляете обратно
Для работы с JPEG надо в строке USES прописать модуль Jpeg.
3. Резиновый прямоугольник можно реализовать комбинацией событий OnMouseDown, OnMouseUp и OnMouseMove.
Необходимо завести глобальную переменную, чтобы определить нажата кнопка мыши или нет и для координат прямоугольника. В Down присваиваете ей True, а в UP наоборот - False. В Down запоминаете начальные координаты, в Up запоминаете конечные. В Move прописываете рисование прямоугольника, попутно определяя координаты текущей конечной точкипри условии, что кнопка нажата.
----------------------
Это все голые алгоритмы, если возникнут трудности с кодингом - пишите. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 19.10.2005, 17:52

Отвечает: Denisss
Здравствуйте, Force User!
1. И правильно пишет, что "0 байт" - Вы отрисовку выполняете как бы поверх Image2, а не в нем самом.
См. приложение.
2. Для BMP:
Создаете два TBitmap, в первый загружаете изображение, во втором устанавливаете высоту и ширину образанного изображения. C помощью Bitmap.Canvas.CopyRect копируете кусок изображения во второй Bitmap. Далее можете сохранять и делать любые преобразования.
Для JPEG:
Создаете один TJPEGImage и два TBimap. Загружаете в JPEGImage jpg-изображение, с помощью метода Bitmap.Assign(JPEGImage) вставляете в первый Bitmap изображение, а далее делаете обрезку также, как и в предыдущем случае.
3. Тут я не совсем понял суть вопроса. Но я так понимаю, что Вам нужна функция Canvas.DrawFocusRect(Rect); - рисует прямоугольник выделения на канве.

Приложение:

Ответ отправил: Denisss (статус: Практикант)
Отправлен: 19.10.2005, 18:09

Отвечает: Romodos
Здравствуйте, Force User!
1)Просто у вас картинка image1 меньших размеров, чем вы указываете в процедуре
copyrect
или у вас размеры image2 равны 0
2)Просто в событии ommousedown засекаем координа
var x:trext;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
x1:=x;
y1:=y;
end;
а при отпускании мыши делаем прямоугольник
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
x:=rect(x1,y1,x,y);
end;
Ну можно ещё линию рисовать
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 20.10.2005, 15:44


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

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

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

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

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


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


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

Rambler's Top100 Яндекс


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

В избранное