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

Программирование на Delphi

  Все выпуски  

Программирование на Delphi #30


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

Программирование на DELPHI
Выпуск #30 (08 сентября 2005 г.) 

Разделы сайта:

Новости сайта
Система "Эксперт"
Вопросы и Ответы

Отправить вопрос
Файловый архив
Статьи
Компоненты
Plug-in's
Документация
Исходники
Изображения
Игры
Программы
Форум
Гостевая книга
F.A.Q.
Архив рассылки
Каталог сайтов
Обратная связь
Хостинг



Связь:

Администратор
Система "Эксперт"
Информация


Доброго времени суток , уважаемые читатели!

Напомню, что проводился следующий опрос:

Нужно ли помещать в письма рассылки скриншоты компонент, программ, исходников и других файлов раздела "Файловый архив"?

Вот его результаты:

1. Да, было бы неплохо. - 15 голосов.

2. Нет, не нужно, а то письма рассылки будут слишком большими. - 6 голосов.

Несмотря на то, что большинство из проголосовавших поддержали идею, сделать такой серьёзный шаг я не могу. Проголосовавших очень мало, чтобы делать какие-то выводы. А реализация данной идеи может повлечь отток подписчиков от рассылки, чего очень не хотелось бы. В связи с этим, всё остаётся по-прежнему: руководствоваться, нужен ли Вам тот или иной файл или нет, придётся исключительно по его описанию, которое я стараюсь давать максимально точно.

Хотелось бы сказать о регистрации на нашем сайте. После открытия сайта зарегистрировалось достаточно много посетителей, однако мало кто из них является активным участником рассылки. Это расстраивает.

Последние темы форума:

Как узнать тип процессора, тактовую частоту, частоту шины, кэш первого и второго уровня без использования данных из реестра?

Анкета - узнаем о друг друге больше

Смайлы в IRC-клиенте

Запрет закрытия программы при нажатии на крестик и сворачивание формы

Ждём Вас на нашем форуме!

Ну а сегодня хотелось бы узнать Ваше мнение по другому вопросу. В последнее время на многих сайтах и во многих рассылках появились различные web-формы. Их смысл в том, что достаточно просто заполнить необходимые поля, нажать кнопку и все данные автоматически отправляются администраторам сайта, ведущему рассылки или же просто записываются в базы данных. Так вот:

Нужна ли нашей рассылке web-форма отправки ответов на вопросы?

Для того, чтобы проголосовать, просто щёлкните по одной из ссылок выше и отправьте письмо (можно даже пустое).

Также приношу свои извинения за опечатку, допущенную в предыдущем выпуске рассылки в таблице лидеров (таблица чуть ниже). Эксперт, занимавший 4-ое место, имел на счету не 282, а 182 балла.

Разделы рассылки:

Авторское слово
Новые вопросы
Ответы на вопросы
Статья по Delphi
Файловый архив
Друзья
Юмор


Количество читателей рассылки: 3204.


Подписка на рассылку:

 


Лидеры по количеству баллов:


Место
Имя
Баллы
Статус
1
Feniks
281
Практикант
2
Dron
219
Практикант
3
Iron Monk
200
Практикант
4
Ermakova Dasha
185
Практикант
5
Садовников Владимир
182
Практикант
6
Андрей Лучников
83
Эксперт: 9-ый класс
7
Игорь Данилевич
76
Эксперт: 8-ой класс
8
VeroLom
71
Эксперт: 8-ой класс
9
Ершов Денис
53
Эксперт: 6-ой класс
10
Павел Звягинцев
50
Эксперт: 6-ой класс

Если Вы хотите, чтобы Вашего имени (ника) не было в данной таблице, отправьте письмо по этой ссылке с зарегистрированного у нас адреса. В теле письма, пожалуйста, укажите причину удаления имени из таблицы. Нам важно ваше мнение.


Основные правила нашей рассылки:

1. Не присылайте ответов на вопросы вроде "да я не знаю" или "да/нет". Такие ответы не публикуются.
2. Вопросы, не касающиеся Delphi, не принимаются (для этого существуют другие рассылки).
3. Запрещено присылать вложенные файлы, объёмом выше установленного ограничения (ограничения указаны в правилах).
4. Не изменяйте тем присылаемых писем. Письма с "неправильными" темами не обрабатываются! Используйте текстовый (не HTML) формат писем. HTML-теги применяйте только в том случае, если Вы уже достигли статуса, где это разрешено (см. правила).


Новые вопросы.


Вопрос #145 (автор вопроса: TR; вопрос отправлен: 31.08.2005 15:24):

Здравстуйте, помогите, пожалуйста, с решением такого вопроса: Как мне сделать, чтобы при раскрытии одного из подпунктов моего попап-меню отображалость контекстное меню Проводника (например, как при щелчке правой кнопкой на файле)? И еще: Как сделать самому команды аналогичные Копировать, Вырезать, Отправить...? Заранее благодарю! [Ответить на вопрос]


Вопрос #146 (автор вопроса: mvp; вопрос отправлен: 31.08.2005 21:38):

Есть программа, есть dll. Каким образом можно передать объект (класс) исходной программе dll, чтобы dll могла вызывать корректно его методы? Использование процедур и функций (не методов класса) не предлагать. Дело в том, что в программе создаётся только один экземпляр класса, который должен использоваться сообща dll и программой. Что-то у меня не сильно получается. Если можно, небольшой исходничек. Спасибо. [Ответить на вопрос]


Вопрос #147 (автор вопроса: David; вопрос отправлен: 01.09.2005 20:46):

Подскажите, пожалуйста, как обработать комбинацию клавиш, например (Ctrl+Enter) через OnKeyDown? У меня получается обработать только Ctrl, либо только Enter. [Ответить на вопрос]


Вопрос #148 (автор вопроса: Vasiliy; вопрос отправлен: 02.09.2005 20:03):

Здравствуйте! После установки Delphi 2005 Офис 2003 начинает некоректно работать. А именно Excel - после работы в нём, когда закрываешь, постоянно выскакивает окно, что произошла ошибка. Подскажите пожалуйста, можно ли это исправить? [Ответить на вопрос]


Вопрос #149 (автор вопроса: Alexandr Prokhoda; вопрос отправлен: 04.09.2005 11:18):

Добрый день. Подскажите пожалуйста, каким образом программа (пишу в Delphi 5) может изменить параметры электропитания WindowsXP (или хоть какой-то)? Конкретно – время выключения монитора. Заранее благодарю, Александр Прохода. [Ответить на вопрос]



Вопросы, на которые нет ответов:

Вопрос #78 (автор вопроса: Hires; вопрос отправлен: 20.02.2005 16:33):

Как получить скорость работы GPU и памяти видео карты? [Ответить на вопрос]


Вопрос #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) ? [Ответить на вопрос]


Вопрос #144 (автор вопроса: Angen; вопрос отправлен: 03.07.2005 22:41):

Пишу программу "Редактор настроек Windows" наподобие "WinSEr". Подскажите, пожалуйста, как в свойствах "Пароли" под Win98 в закладке "Удаленное управление" программно добавить определенного пользователя или удалить его? [Ответить на вопрос]



Ответы на вопросы.


Вопрос #142:
При подключении к базам Access через ADO все работает нормально, если не используется пароль БД. При использовании пароля Delphi сообщает об ошибке в строке подключения. Как решить эту проблему?

1. [Отвечает: Ermakova Dasha, 31.08.2005 14:44]: В компоненте ADOConnection1 поставь KeepConnection = true. Мне помогло.

2. [Отвечает: Ares, 31.08.2005 16:58]: Решается проблема следующим образом:
ADOConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0' +
';Data Source=C:\Test.mdb' +
';Mode=ReadWrite' +
';Persist Security Info=False' +
';Jet OLEDB:System database=System.mdw' +
';Jet OLEDB:Database Password=testpwd' +
';Jet OLEDB:Engine Type=5';

Здесь упоминается System.mdw и засада именно в этом, если на компе не установлен Access, то придётся эту базу таскать вместе с приложением (около ста кил). А взять её можно тут:
C:\Documents and Settings\User\Application Data\Microsoft\Access\System.mdw.


Вопрос #143:
Здравствуйте! Как из одной ТБД в ComboBox высветить 2 поля и как их по выбору перенести в DBGrid (т.е. делаем выборку из справочника, высветив 2 его поля (наименование, цена) и заносим выбранные данные в формируемую БД)?

1. [Отвечает: Ermakova Dasha, 31.08.2005 15:01]:
procedure TForm1.Button1Click(Sender: TObject); //сохраняем значения нужных полей
begin //в ComboBox
ComboBox1.Clear;
with Table1 do
begin
DisableControls;
First;
while not Eof do
begin
ComboBox1.Items.Add(Fields[0].AsString+' '+Fields[1].AsString);
Next;
end;
EnableControls;
end;
end;

procedure TForm1.ComboBox1Select(Sender: TObject); //добавляем новую запись из выбранных
var //значений
num: integer;
s: string;
begin
num:=Pos(' ',ComboBox1.Text);
s:=ComboBox1.Text;
with Table1 do
begin
Append;
Fields[0].AsString:=Copy(s,1,num-1);
Fields[1].AsString:=Copy(s,num+1,Length(s)-num);
end;
end;

2. [Отвечает: Вадим Фурив, 31.08.2005 15:12]: Алгоритм следующий: в поле SQL объекта ADOQuery или аналогичного ему объекта из BDE вводится SQL запрос:

SELECT [поле_наименования]+' '+Str([поле_цены])+' р.', [поле_наименования], [поле_цены] FROM [ваша_база]

Таким образом вы получаете в DataSet данные из трех полей объединенное поле, наименование, цена. Далее в цикле вносим все полученые при запуске строки из первого поля в компонент ComboBox. У меня на SQLServer вставились кучи пробелов, так что их лучше убирать перед занесением. При выборе нужной Вам строки в ComboBox свойство ItemIndex покажет, какая по счету строка выбрана. Затем находим в цикле перебором эту же строку в нашем DataSet. Внимание: строки в ItemIndex нумеруются с 0. Найдя эту же строку по счету мы получим отдельно и наименование и цену (если вносить их куда-то нужно отдельно). А вообще для данной цели рекомендую использовать стандартный компонент DBLookupComboBox. Его можно напрямую связать с DataSet и без всяких переборов выбирать нужную строку. При этом вы застрахуете себя от выбора пользователем несуществующей записи, что в ComboBox проблематично. При этом с тем же DataSourse можно связать и DBGrid, и тогда информация в нем будет меняться вместе с DBLookupComboBox. Ну надеюсь как вносить данные в формируемую базу данных объяснять не надо? INSERT... и дальше по тексту. Вроде все.


Вопрос #141:
В главной директории некоторого сайта, например www.name.ru, расположен текстовый документ, например 1.txt (т.е. путь к нему http://www.name.ru/1.txt). Как сделать, чтобы данный файл скачивался в папку с программой. Мне это нужно для следующей цели: есть программаа с базой данных (*.txt). Я хочу обновлять эту базу через интернет, т.е. при нажатии кнопки "ОБНОВИТЬ" будет скачиваться файл по указанному мной (программистом) адресу. Спасибо.

1. [Отвечает: Ares, 31.08.2005 15:20]: Можно воспользоваться такой ф-цией:

function TForm1.DownloadFile(const FileURL, FileName: String): Cardinal;
var
hSession, hFile: HInternet;
Buffer: array[1..1024] of Byte;
BufferLen, fSize: LongWord;
f: File;
begin
Result := 0;
hSession := InternetOpen('Test', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hSession) then
begin
hFile := InternetOpenURL(hSession, PChar(FileURL), nil, 0, INTERNET_FLAG_RELOAD, 0);
if Assigned(hFile) then
begin
AssignFile(f, FileName);
Rewrite(f, 1);
fSize := 0;
repeat
InternetReadFile(hFile, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
fSize := fSize + BufferLen;
until (BufferLen = 0);
CloseFile(f);
Result := fSize;
InternetCloseHandle(hFile);
end;
InternetCloseHandle(hSession);
end;
end;

где FileURL - прямая ссылка на файл, а FileName - это имя под которым файл будет сохранён на диске (если путь к файлу не указывать, то сохраниться он в папке с прогой).

P.S. в USES нужно добавить WinInet.

2. [Отвечает: mvp, 31.08.2005 20:21]:
uses NMHttp
class TForm1 = class(TForm)
//---

sc : TNMHttp;
procedure Ura(Cmd : CmdType);
procedure Neud(Cmd : CmdType);

//---
procedure Tform1.Button1Click;
begin
sc := TNMHttp.Create(nil);
sc.OnSuccess := Ura;
sc.OnFailure := Neud;
sc.InputFileMode := true;
sc.Body := ExtractFileDir(Application.ExeName) + '\1.txt';{ (куда и под
каким именем сохранять)}
sc.Get('http://name.ru/1.txt'); {что скачать}
sc.Disconnect;
sc.Free
end;
//---
procedure TForm1.Ura;
begin
if cmdType = cmdGet then
begin
//закачан
end;
end;
//---
procedure TForm1.Neud;
begin
if cmdType = cmdGet then
begin
//неудача
end;
end;
//---

Подробнее по-русски о компоненте TNMHttp см. http://mylib.kiev.ua/view.php?id=273

3. [Отвечает: Screw aka Viktor, 01.09.2005 00:29]:
function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet:='http://www.name.ru/1.txt';
LocalFileName:='1.txt';
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Закачал')
else
ShowMessage('Не закачал...')
end;

4. [Отвечает: Dron, 03.09.2005 15:45]: Посмотрите вопрос №19 данной рассылки. Там есть исходник небольшой программы, которая скачивает файлы с сайтов: http://www.delphi.int.ru/download.php?id=40.


Вопрос #63:
День добрый ! Прошу помощи, кто знает как к Делфе (7) пристроить самописный плагин, или кто знает где взять плагин к D-7, чтоб как в D-8 в редакторе кода можно было сворачивать текст процедур и отдельных блоков кода?. Первый вариант желательнее...

1. [Отвечает: Yurchik, 03.09.2005 00:33]: Я не уверен, что это то, что надо, но, возможно, эта статья поможет разобраться, с какой стороны подойти к рассмотрению вопроса... http://www.codenet.ru/progr/delphi/stat/inter.php


Вопрос #82:
Подскажите, как получить оцифровку сигнала с линейного входа звуковой карты в реальном времени (без записи в файл WAV и последующего его декодирования)? Спасибо.

1. [Отвечает: Ermakova Dasha, 31.08.2005 15:06]: Может подойдет. По этой ссылке лежит компонент, который занимается кодированием звуковых данных: http://www.noil.pri.ee/?mod=down/down_one&id=99.


Все вопросы и ответы на них Вы можете найти на нашем сайте в разделе "Эксперт": http://www.delphi.int.ru/modules/expert/.


Статья по программированию.

В сегодняшнем выпуске статьи, к сожалению, нет.


Присылайте свои статьи по адресу info@delphi.int.ru с темой 'Articles' (без кавычек), и они будут опубликованы в ближайших выпусках рассылки и на сайте. Также вы можете заполнить вот эту форму. Большая просьба: статью оформляйте в -txt или -doc формате и используйте -zip или -rar сжатие (без самораспаковки). Если статья находится в формате HTML, пожалуйста, не используйте формат текста Performatted.


Файловый архив.

Из данного раздела Вы можете скачать различные файлы: компоненты, plug-in'ы для Delphi, документацию по программированию, программы, игры, написанные на Delphi и всё остальное... Вы можете добавить свои файлы в данный раздел, будем очень признательны! Чтобы сделать это, пожалуйста, заполните форму на сайте. Новые файлы на сайте:

Название / описание файла
Категория
Объём
Ссылки
Domino - Компонент, имитирующий фишки домино.
Компоненты
34.4 Кб
acRW - Модуль, с помощью которого можно хранить данные прямо в exe-файле. Имеется возможность записи данных и их чтение. Метод работы основан на записи данных в конец exe-файла, где они не учитываются как содержимое самого исполняемого файла.
Исходники
1.57 Кб
Balls - "Когда-то мне один мой давний друг прислал письмо", - говорит автор программы "в котором просто "молил о помощи" написать простенькую программку на любом языке программирования, которая будучи подключенной к серверу образовывала с ним единый "Сосуд", в котором двигались шарики"... Для соединения достаточно знать IP-адрес и порт.
Исходники
13.7 Кб
Установщик обоев 2.0 - Программа, которая автоматически устанавливает обои рабочего стола по порядку, по списку, согласно вашему расписанию. Примечанию: под WIN98 и WinMe не работает. Тестировалась только в WinXP.
Программы
707 Кб
cxCPU - Библиотека, позволяющая узнать информацию о процессоре.
Компоненты
104 Кб

Чтобы перейти к разделу "Файловый архив" на сайте, нажмите на эту ссылку.


Дружественные сайты.

Здесь представлены ссылки на дружественные сайты нашего портала. Если вы тоже хотите стать нашим другом, разместите наш баннер на своём сайте. Подробнее о том, как это сделать, можно прочитать на странице данного раздела на нашем сайте. Узнать о всех наших друзьях более подробно вы сможете на той же странице...


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 - базу данных по играм содержащую описания, скриншоты, коды, прохождения игр.


Дружественные рассылки:

Рассылки Subscribe.Ru :: Программирование
Интернет для Delphi-программиста
X-Program ПО, новости сайта и программирование в Delphi7
Visual Basic для новичков и профессионалов
Поиск текстов, переводов и аккордов песен
   

 


Юмор.

Высшая степень опьянения: не смог попасть в экран курсором мышки.

:))

Слышь... это... www.zarplaty.net?
- www.kak.vsegda.net!
- www.kak.zhe.ya.domoy.po.edu?
- www.pesh.com!

:))

Обнаружен драйвер. Вставьте устройство.

:))

Решил хакер блины испечь. Первый блин у него вышел, как водится, комом. А вот второй - екзешником.


Пожалуйста, присылайте свои анекдоты по этой ссылке: info@delphi.int.ru и они обязательно будут опубликованы! Желательно на компьютерную тему.

Товарищи программисты! Проявляйте свою активность. Давайте помогать друг другу!
Если вы не нашли ответа на свой вопрос, не отчаивайтесь! Количество подписчиков постоянно растёт и, наверняка, найдётся тот человек,
который поможет вам! На сегодня всё. До встречи через неделю!
Ведущий рассылки, Ерёмин Андрей.

Вы можете оказать помощь нашему проекту через систему WebMoney:
R760630419845
Z947123691104
Будем очень благодарны!

 

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

В избранное