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

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

  Все выпуски  

Программирование на Delphi (выпуск 63)


Программирование на DELPHI
Выпуск #63 (22 февраля 2007 г.)

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

Delphi.int.ru

Новости сайта
Регистрация »
Файловый архив
Статьи
Компоненты
Plug-in's
Документация
Исходники
Изображения
Игры
Программы
Рассылки сайта
Дружеств. сайты
Каталог ссылок

Delphi.int.ru Expert

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

Пару слов о главном... Рассылка не выходила целый месяц. Это вовсе не означает, что сайт перестал функционировать. Просто мало свободного времени... Однако это не преграда, ведь система Delphi.int.ru Expert работает 24 часа в сутки 7 дней в неделю. Ежедневно участники решают свои проблемы благодаря помощи других и, наоборот, сами помогают остальным. Для тех, кто недавно присоединился: эта система представляет собой подобие форума, но работающего в основном по e-mail. Это довольно удобно.
Огромное спасибо всем, кто сообщает об ошибках в системе и идеях о дальнейшем её развитии. В данный момент ведётся разработка абсолютно новой версии, в которой изменениям подвергнется практически всё и появится множество новых возможностей. Все идеи берутся на заметку, поэтому не стесняйтесь писать (expert@delphi.int.ru) :-)

Раздел "Обучение" продолжает свою работу. Уважаемые новички, извините, что между уроками получился такой перерыв. Впредь постараюсь не нарушать периодичности, ибо изучать можно немного быстрее. Сегодня Вы познакомитесь с оболочкой среды Delphi.

Ну и наконец...

Всех мужчин с Днём защитника Отечества!

Статистика системы Delphi.int.ru Expert на 22.02.2007, 21:00:

Зарегистрированных экспертов: 75 (+3), из них в активном режиме 58 (+3).
Участниками задано вопросов: 337 (+58).
Всего отправлено ответов: 595 (+98).

Приятного чтения и до скорой встречи!

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

» Авторское слово
» Обучение Delphi
» Delphi.int.ru Expert
» Статья по Delphi
» Файловый архив
» Ссылки
» Юмор

Количество читателей рассылки (22.02.2007, 21:00):
5416+939+257= 6612.

Связь по e-mail:

admin@delphi.int.ru

Если Вы хотите где-нибудь разместить материалы, представленные на www.delphi.int.ru или в данной рассылке, свяжитесь, пожалуйста, с автором или администратором.
Обучение Delphi

Первое знакомство с Delphi IDE

Автор:
Ерёмин Андрей
Номер статьи:
2

 

 

Если вам непонятно какое-то слово в техническом тексте, не обращайте на него внимания. Текст полностью сохраняет смысл и без него.

Запуск Delphi

Способов запустить среду существует множество (как и любой другой программы впрочем). Ярлык на рабочем столе, иконка на панели быстрого запуска, пункт в главном меню (Пуск - Программы - Borland Delphi n - Delphi n, где n - номер версии). Также есть удобный способ запустить Delphi через окно Пуск - Выполнить - ввести в этом окне delphi32.

Delphi IDE

Вот и первое, возможно новое, для Вас слово. IDE (Integrated Development Environment) - интегрированная среда разработки программного обеспечения. После запуска Delphi перед Вами предстаёт эта самая среда. Состоит она из нескольких окон. Сейчас мы разберём, что это за окна и каково назначение каждого из них. В разных версиях Delphi эти окна могут выглядить немного по-разному, а некоторые и вообще могут отсутствовать. В данной статье будут приведены иллюстрации окон Delphi 7.

Итак, после запуска, наверное, Вы сразу обратите внимание, что среда в целом практически не отличается от других Windows-приложений. Все элементы стандартные. Главным окном можно считать то, которое содержит строку меню и панели инструментов. Вот строка меню:

Главное меню среды Delphi (Delphi IDE main menu)

Многие из этих пунктов стандартны. Если Вы установили русскую версию Delphi, то пункты будут называться примерно так: Файл, Правка, Поиск, Вид, Проект, Запуск, Компонент, База данных, Инструменты, Окно, Справка.

Как и во многих приложениях здесь есть панели инструментов. Они небольшие, кнопок на них немного, но всё самое основное как раз здесь и собрано. Панели инструментов выглядят примерно так:

Панели инструментов Delphi IDE

Теперь рассмотрим те элементы, которых в обычных приложениях нет.

Палитра компонент (Component palette)

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

Палитра компонент Delphi (Component palette)

Её внешний вид практически одинаков во всех версиях Delphi. Да что там Delphi, такие же вкладки есть в любой среде объектно-ориентированного программирования (ООП), ибо это самый удобный способ предоставить выбор из сотен (а иногда даже тысяч) различных элементов.

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

Контекстное меню палитры компонент Delphi

Дизайнер форм (Form Designer)

Это самое большое окно всей среды, которое изначально пустое. Именно это - заготовка окна Вашей программы. Здесь и будут размещаться все компоненты. Удобной составляющей дизайнера форм является сетка (множество точек). С помощью этой сетки компоненты удобно размещать на одном уровне, делать их одинаковых размеров и т.д. Это сделано для того, чтобы приложения соответствовали стандартам, установленным Microsoft. На этом мы ещё остановимся в одной из статей. Сетка является настраиваемой - можно изменить расстояние между точками, а можно её и вовсе отключить.

Дизайнер форм Delphi IDE (Form Designer)

Инспектор объектов (Object Inspector)

Это окошко с двумя вкладками, каждая из которых состоит из двух колонок. В этом окне можно настроить параметры выбранного элемента и задействовать установленные события. Вкладки - Properties и Events (Свойства и События соответственно). Что это за свойства и что же такое события? По этому вопросу можно сказать очень много, это тема для отдельной статьи. А вкратце вот о чём речь. Допустим, у нас есть кнопка. Обыкновенная, какая используется в большинстве приложений. Примерами свойств этой кнопки могут быть её размеры (ширина, высота), текст, расположенный на ней и т.д. События - это предопределённые моменты реакции кнопки на какие-либо действия пользователя (либо действия со стороны операционной системы, внешних устройств и т.п.). Самый простой пример - щелчок по кнопке (так называемый "клик" - от слова Click). Очевидно, что это событие произойдёт тогда, когда пользователь щёлкнет по кнопке, т.е. нажмёт её. У большинства компонент предусмотрен ы стандартные события. Как правило, среди них есть все необходимые, которые могут понадобиться при создании программы. Однако можно создать и свои события как реакции на что-либо.

Инспектор объектов (Object Inspector)

Дерево объектов (Object TreeView)

Это окошко появилось только в Delphi 6, в более ранних версиях его не было. В этом окне отображаются все элементы, какие есть на данной форме. Это сделано с целью упростить выбор компонентов для изменения их свойств в Object Inspector (далее - OI). Помимо того, что отображаются названия компонентов, рядом находятся маленькие графические значки, по которым можно определить, что это за объект. Элементы на форме не всегда автономны, т.е. самостоятельны, поэтому образуются иерархические связи - "деревья". Из-за этого окно и называется деревом объектов. В качестве простейшего примера иерархии объектов можно привести меню. Меню - это самостоятельный компонент, а вот его пункты - это "подчинённые" объекты. Пункт меню не может "висеть в воздухе" - он создан в конкретном меню.
Примечание: при динамическом создании пунктов меню они всё же могут просто находиться в памяти и не быть привязанными к какому-либо меню; данный пример приведён лишь для общего представления о связях между объектами.

Дерево объектов (Object TreeView)

Редактор кода

Редактор кода представляет собой окно, похожее на обычный текстовый редактор за исключением некоторых дополнительных элементов. Основная область этого окна - поле редактирования. Именно здесь пишется текст программы. В отличие от языков программирования, работающих в текстовом режиме (Pascal, QBasic и т.п.) код программы здесь не пишется "с нуля". Как только Вы запустите Delphi и создадите новый проект, то, открыв редактор кода, увидите там уже часть написанной программы. Эти строки удалять ни в коем случае нельзя!

Окно редактора кода может содержать сразу несколько открытых файлов - переключение между ними осуществляется по закладкам вверху окна (на рисунке открыт только один файл - Unit1, поэтому закладка одна-единственная). В левой части окна расположено поле, называемое Code Explorer (Обозреватель кода). Здесь в виде дерева отображаются все типы, классы, свойства, методы, глобальные переменные и другие блоки, находящиеся в данном файле (модуле). Дело в том, что содержимое модуля состоит из отдельных участков. Назначение каждого из них мы рассмотрим чуть позже.

В нижней части окна расположена строка состояния, содержащая полезную информацию. В ней представлена текущая позиция курсора в тексте (номер строки : номер символа), текущий режим режима замены (Insert/Overwrite), информация о том, были ли внесены изменения в модуль с момента последнего сохранения и т.п.

Редактор кода (Code Editor)

Когда Вы попытаетесь запустить программу, то внизу появится информационное поле, в котором будут показаны сообщения об ошибках в тексте программы. Также в этом окне показываются полезные советы по оптимизации кода. В одной из статей мы разберём все эти сообщения более подробно. Если программа написана "идеально", т.е. ошибок нет и оптимизировать нечего, то окошко даже и не появится на экране.

Заключение

Итак, мы рассмотрели все основные элементы оболочки Delphi, которые используются в процессе работы. Конечно же, в Delphi существует множество других окон, но их назначение и способы вызова на экран мы будем рассматривать в процессе работы.

Delphi.int.ru Expert
(текущая версия системы: 1.66
последнее обновление: 31.12.2006)

Если Вы не являетесь зарегистрированным пользователем сайта, зарегистрируйтесь прямо сейчас! Регистрация »

Delphi.int.ru Expert - это автоматизированная система экспертной помощи, призванная помочь в решении проблем, возникающих как у начинающих, так и опытных программистов, а также способствующая обмену информации между участниками лично и публикации этой информации в массовых рассылках в дальнейшем. Система полностью автоматизирована и постоянно развивается и обновляется. Если у Вас есть какие-то либо вопросы или Вы столкнулись с какой-либо проблемой при программировании на Delphi/WinAPI - задайте свой вопрос и эксперты Вам помогут. Кроме того, Вы сами можете войти в состав экспертов и помогать другим.

Задать вопрос экспертам » | Справочное руководство » | Перейти в состав экспертов » | Эксперты системы »

Здесь публикуются вопросы вместе с ответами, срок действия которых закончился (каждый вопрос действителен в течение одной недели).

* Администраторы сайта не корректируют сообщения и за наличие грамматических ошибок ответственности не несут.

Delphi.int.ru Expert  – вопросы и ответы (#151 - #160)
Вопрос № 151

Текст вопроса:

Здравствуйте, подскажите как перезапустить какой-нибудь процесс. В данном случае у меня explorer.

Автор вопроса: Соболев Максим Евгеньевич (статус: Посетитель)
Дата и время отправки вопроса: 02.11.2006, 21:20
Получено ответов на вопрос: 1
Сообщений в форуме вопроса: 5
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Denisss (статус: 2-ой класс), 03.11.2006, 15:19]:

Здравствуйте, Соболев Максим Евгеньевич!

Привожу пример перезапуска процесса в приложении. Комментарии присутствуют почти в каждой строчке.

Удачи!

Приложение:

Оценка за ответ: 5.
Комментарий: Большое спасибо!!! Всё классно работает.



Вопрос № 152

Текст вопроса:

Как в Delphi можно работать с SNMP в частности
с snmpget?

Автор вопроса: Павел (статус: Посетитель)
Дата и время отправки вопроса: 04.11.2006, 23:49
Получено ответов на вопрос: 0
Сообщений в форуме вопроса: 1
Страница данного вопроса >>


» Ответы на данный вопрос:

К сожалению, ответов на данный вопрос не поступило...



Вопрос № 153

Текст вопроса:

Здравствуйте. В данный момент учусь на программиста, изучаю Delphi, задали мне кааую-то глупую задачу, которую я решил в пару минут, а над самым простым вопросом маюсь и маюсь, вы то уж точно знаете на него ответ, вопрос звучит так:"Среди функций для работы с символами найдите функцию, которая все строчные и прописные буквы латинского алфавита приводит к одному формату". С уважением, Сергей Анатольевич.

Автор вопроса: Полушин Сергей Анатольевич (статус: Посетитель)
Дата и время отправки вопроса: 09.11.2006, 17:46
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 5
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 4-ый класс), 09.11.2006, 17:58]:

Здравствуйте, Полушин Сергей Анатольевич!
Функции UpperCase(Str: String) и LowerCase(Str: String) преобразуют строку соответственно в верхний и нижний регистры.

Приложение:

Оценка за ответ: 5.
Комментарий: Коротко и ясно. Спасибо.

2. [Отвечает: Alex Van Glukhman (статус: 6-ой класс), 10.11.2006, 07:45]:

Здравствуйте, Полушин Сергей Анатольевич!
Для работы со строками включающими символы национальной кодировки в том числе и WideString существуют функции:
AnsiUpperCase() - для преобразования символов в верхний регистр и
AnsiLowerCase() - соответственно в нижний.
С русским языком работает великолепно.
Функции описаны в модуле SysUtils.
Удачи!!!

Оценка за ответ: 5.
Комментарий: Спасибо большое. Действительно, мне даже стыдно за глупый вопрос.



Вопрос № 154

Текст вопроса:

Обучаюсь Delphi, заочно, задали вопрос:Запишите определение типа данных – строка в языке. Что за вопрос такой так и не понял, верю вашему профессионализму, думаю вы поймёте. С уважением, Сергей Анатольевич.

Автор вопроса: Полушин Сергей Анатольевич (статус: Посетитель)
Дата и время отправки вопроса: 09.11.2006, 17:49
Получено ответов на вопрос: 4
Сообщений в форуме вопроса: 2
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 4-ый класс), 09.11.2006, 18:02]:

Здравствуйте, Полушин Сергей Анатольевич!
Строковый тип данных - один из самых часто используемых в программах тип. Действительно, без него не обходится практически ни один алгоритм. Даже программы, выполняющие исключительно математические операции, порой, написаны с использованием строковых типов данных.
Строка - это последовательность символов. В Object Pascal существует несколько строковых типов.Основные: ShortString,AnsiString,WideString.
(Взято из "Работа со строковыми типами данных" Автор: Ерёмин Андрей)

Оценка за ответ: 4.

2. [Отвечает: Dron (статус: 10-ый класс), 09.11.2006, 18:18]:

Здравствуйте, Полушин Сергей Анатольевич!
Дополню ответ bruder'a, т.к. теорию он рассказал, а пример не привёл :-)
Определение строковых переменных делается следующим образом:
var
str1: string; //Обычная строка
str2: string[100]; //Строка с максимальной длиной 100 символов
str3: WideString; //Строка другого типа (более вместимая)
str4: WideString; //Строка, в которой могут содержаться дополнительные (8-битные) символы
Желаю удачи в обучении! :-)

Оценка за ответ: 5.
Комментарий: Я ,честно говоря, даже вопрос не понял. Помоему, тут не надо определять переменную, но всё равно спасибо.

3. [Отвечает: Alex Van Glukhman (статус: 6-ой класс), 10.11.2006, 08:01]:

Здравствуйте, Полушин Сергей Анатольевич!
Просто круто поставленный вопрос. Видимо слишком умный препод которому только одному себе известно что он хочет спросить, либо просто напрочь не имеет представления о п 88;едмете которому обучает Вас.
Если имеется ввиду определение типа строка то это -
type
MyString = String;
MyWideString = WideString;
MyPChar = PChar и т.д.
а если это объявление и определение переменнных или констант то пишем следующее но это не определение типа данных.
var
str: String = 'Какая-то строка';
str1: String;
const
MyConst = 'Моя константа';
Поэтому советую у препода уточнить что он хочет

Оценка за ответ: 5.
Комментарий: Спасибо, что разделили моё мнение о том, что этот препод сам ничего не знает. Перед этим изучал Visual Basic, по книге, которую написал этот же препод, он написал про функцию str(...){не буду описывать}, в VB 6.0 она не работала, скачал самоучитель, оказалось, что эта функция Mid(...), правда спасибо! С уважением Сергей Анатольевич!

4. [Отвечает: min@y™ (статус: 5-ый класс), 10.11.2006, 08:20]:

Автор! Судя по твоим вопросам №№153, 154 тебе нужно срочно:
1) Пойти в ближайший книжный магаз и купить книжку по Delphi;

и/или

2) Пойти в интернет и скачать книжку оттуда.

Поверь мне, в этом случае на решение вопросов твоего препода ты будешь тратить считанные минуты.

З.Ы. Все мы когда-то начинали. :))

Оценка за ответ: 3.
Комментарий: Я итак скачал 2 самоучителя, но таких функций там не описано, а вообще я неплохо язык знаю.



Вопрос № 155

Текст вопроса:

Помогите найти простой компонент для работы с com портом для Delphi7 (желательно с примером его использования).

Автор вопроса: Каменцев (статус: Посетитель)
Дата и время отправки вопроса: 10.11.2006, 08:36
Получено ответов на вопрос: 1
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: min@y™ (статус: 5-ый класс), 13.11.2006, 08:19]:

У меня есть компонент TDLPortIO, он позволяет работать не только с COM-портами, а со всеми портами с адресами в диапазоне $100...$FFFF. Я, например, с успехом его юзаю на работе для доступа к плате в ISA-слоте. Компонент халявный.

Скачать его можно отсюдова: http://www.torry.net/vcl/system/portaccess/dlportio.zip

З.Ы. Еще компоненты для работы с портами: http://www.torry.net/pages.php?id=227

Оценка за ответ: 4.



Вопрос № 156

Текст вопроса:

Здравствуйте. Есть приложение и некий файл Test.dat. Приложение периодически осуществляет чтение/запись в этот файл. Подскажите пожалуйста, как сделать так, чтобы пока приложение запущено файл Test.dat нельзя было скопировать проводником или Total commander'ом

Автор вопроса: Романов М.Ю. (статус: Посетитель)
Дата и время отправки вопроса: 11.11.2006, 15:00
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Alex Van Glukhman (статус: 6-ой класс), 11.11.2006, 16:38]:

Здравствуйте, Романов М.Ю.!

var
Form1: TForm1;
// через этот поток мы будем работать с файлом.
// Для нескольких файлов — несколько потоков.
fs: TFileStream;

implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
//при открытии вешаем ограничение. Теперь никто
//не сможет трогать файл
fs:=TFileStream.Create('D:\myfile.txt', fmOpenRead, fmShareDenyNone);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Снимаем ограничение.
fs.Free;
end;

Удачи

2. [Отвечает: Елизаров Алексей Дмитриевич (статус: 1-ый класс), 12.11.2006, 18:25]:

Здравствуйте, Романов М.Ю.!
Попробуйте использовать права для доступа к файлам.
Их надо объявлять при инициализации переменной типа TFileStream.
Вот они:
fmShareCompat-всем приложениям разрешено работать с данным файлом.
fmShareExlusive-никто, кроме Вашего приложения не может использовать файл.
fmShareDenyWrite-другие приложения могут открыть файл только для чтения.
fmShareDenyRead-другие приложения могут открыть файл только для записи.
fmShareDenyNone-не мешать другим приложениям работать с файлом.

Приложение:



Вопрос № 157

Текст вопроса:

Здравствуйте, уважаемые эксперты!
Можно ли конвертировать *.pdf-файл в *.rtf или хотя бы в *.doc какими-то средствами в программе? Программа загружает различные файлы в TRichEdit, перед этим преобразуя их. Для конвертирования из doc и html в rtf используется MSWord, это делается довольно легко... А вот pdf - формат нестандартный... Может быть, кто-нибудь работал с этим форматом?
Заранее благодарю за Ваши ответы!

Автор вопроса: Sunshine (статус: Посетитель)
Дата и время отправки вопроса: 12.11.2006, 08:39
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 4
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Alex Van Glukhman (статус: 6-ой класс), 12.11.2006, 18:22]:

Здравствуйте, Sunshine!
PDF формат стандартный, но конвертация возможна только с помощью сторонних компонентов или ActiveX компонентов из библиотек программ конвертеров например от плагина под Adobe Aerial, Fine Reader и k 6;ругие - самый мутор не в их инсталляции а в нахождении нужной процедуры и функции в библиотеке. Поэтому проще сначала конвертнуть а потом внедрить уже в RTF формате

Оценка за ответ: 2.
Комментарий: Я же чётко сказал, что это нужно делать программно! А вы мне говорите совсем про другое... Эта программа - редактор. Какой файл выберет пользователь - программа не знает, поэтому и конвертировать нужно "на лету". Про сторонние компоненты вы сказали, но ни ссылок на них, ни хотя бы названия не последовало... :(

2. [Отвечает: Матвеев Игорь Владимирович (статус: Средний уровень), 13.11.2006, 07:26]:

Здравствуйте, Sunshine!
Скажу толдько, что PDF - Portable Document Format, Так он потому о переносимый, что сохраняется данные о странице, а не текст как таковой, текста может и не быть как текста. Конвертировать напрямую это вообще врядли возможно, поскольку кроме того, что текста может и не быть, документ божет быть и защищен, но можите поискать утилиту (ключевое слово pdf2txt) и сипользовать ее через командную строку. Можно еще использовать Pdf2Bmp, которая идет с FineReader'ом, конвертировать в Bmp, а как уж разпознавать потом - Ваше дело, может тот же FineReader попробовать через командную строку использовать.

Оценка за ответ: 4.



Вопрос № 158

Текст вопроса:

Добрый вечер, уважаемые эксперты! Нужно реализовать обновление программы. Пользуюсь следующей функцией (см. вставку). Первая часть проходит нормально (получение инфы и т.д.), а вот при загрузке файла обновления (~1 MB) данная функция не справляется - скачивает только около 150 KB и говорит, что все скачала. Данный эффект наблюдается при маленькой скорости модема. А надо, чтобы скачивание происходило при любых условиях, пусть даже скорость будет совсем маленькая. И желательно, чтобы прогресс загрузки отображался на ProgressBar. Заранее спасибо...

Приложение:

Автор вопроса: feenords (статус: 1-ый класс)
Дата и время отправки вопроса: 13.11.2006, 15:37
Получено ответов на вопрос: 4
Сообщений в форуме вопроса: 3
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Alex Van Glukhman (статус: 6-ой класс), 13.11.2006, 22:12]:

Здравствуйте, feenords!
Может есть смысл производить обновление - т.е. загрузку файла через TFileStream предварительно сосчитав размер файла и данное значение связав с TProgressBar. Тогда остаётся контролировать по лученное количество скачанных байтов, что будет отражено в ProgressBar.

Оценка за ответ: 4.

2. [Отвечает: Матвеев Игорь Владимирович (статус: Средний уровень), 14.11.2006, 03:41]:

Здравствуйте, feenords!
По-поводу отображения прогресса, UrlDownloadToFile будет вызывать метод IBindStatusCallback.OnProgress интерфейса IBindStatusCallback, если указать его в последнем параметре (смотрите MSDN).
Есть и другой способ загрузки файлов из интернета. Смотрите в приложении пример, качает с докачкой, использует InternetOpen/InternetReadFile.
http://expert.delphi.int.ru/download_23

Оценка за ответ: 5.

3. [Отвечает: min@y™ (статус: 5-ый класс), 14.11.2006, 08:40]:

Писал я когда-то прогу, так, ради развлекухи, для скачивания креативов с удафкома в виде файлов :)). В ней есть и прогрессбар и всё остальное. Могу прислать.

В приложении привожу модуль из этой моей проги, который отвечает за закачку файлов.

Приложение:

Оценка за ответ: 5.
Комментарий: Вышлите, если не сложно! (feenords@rambler.ru)

4. [Отвечает: Dron (статус: 10-ый класс), 14.11.2006, 12:09]:

Здравствуйте, feenords!
Я, например, использовал такой код - см. приложение. В нём в ProgressBar отображается процесс закачки, а в Label выводится объём уже закачанной части и общий объём файла. Вот эти самые строки (они есть в коде):
ProgressBar.Position:=FileSize(f_loc)*100 div StrToInt(chType);
Status.Caption:=Str2+' of '+Str1+' completed';

Код достаточно надёжный, ни разу меня не подводил.
Желаю удачи!

Приложение:

Оценка за ответ: 5.
Комментарий: Спасибо за столь короткую функцию...



Вопрос № 159

Текст вопроса:

Подскажите самый удобный компонент для работы с USB-портом.
P.S. Кто знает сколько напряжения подаётся через USB-порт? Знаю, что больше 12v (на 4-ой фишке).

Автор вопроса: Полушин Сергей Анатольевич (статус: Посетитель)
Дата и время отправки вопроса: 14.11.2006, 18:37
Получено ответов на вопрос: 1
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: min@y™ (статус: 5-ый класс), 15.11.2006, 08:57]:

C USB я не работал, компонентов этого плана у меня нету. Я воспользовался поиском на torry.net:

http://www.torry.net/vcl/system/otherhardware/dlpiusb.zip
D2XX USB Drivers for Delphi v.1.01.10 FWS 518 Kb 28 Aug 2001
By Future Technology Devices Intl. Ltd. Develop USB ( Universal Serial Bus ) projects quickly and easily using Delphi’s fast-track approach to application development combined with the D2XX "Direct" USB drivers and devices from Future Technology Devices Intl. (FTDI).

FTDI’s D2XX Drivers for Windows provide and easy and convenient way for application developers to design USB applications without having to develop USB drivers or firmware. The drivers interface to FTDI’s FT8U232AM USB UART and FT8U245AM USB FIFO integrated circuit devices using a native Windows WDM driver which communicates with the device via the Windows USB Stack and a DLL which interfaces the Application Software (written in VC++, C++ Builder, Delphi, VB etc ...) to the WDM driver. An INF installation file, Uninstaller program and D2XX Programmers Guide complete the package.

The zip file consists of the D2XX USB drivers and DLL version 1.00.06 (binary files only), a ready built Delphi unit (D2XXUnit.PAS) which can be dropped into most Delphi (D2 .. D5)applications and a demo application written using Delphi 5.

Fully functional
Source: Included
Exe-demo included
Download: D2 D3 D4 D5


Есть и другие, но они просят денег. А этот халявный и с сорцами.

З.Ы. А напряжение на USB вроде бы 5 вольт (посмотрел в мануале к материнке).

Оценка за ответ: 4.



Вопрос № 160

Текст вопроса:

А где можно взять DelphiX?

Автор вопроса: Виталик (статус: Посетитель)
Дата и время отправки вопроса: 17.11.2006, 22:10
Получено ответов на вопрос: 1
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Николай (статус: 1-ый класс), 17.11.2006, 22:22]:

Здравствуйте, Виталик!
http://softok.org/coding/delphi/4856prog.html
http://softsearch.ru/programs/94-991-delphix-download.shtml

Удачи!

Оценка за ответ: 4.
Комментарий: Вместо адресов можно было поставить ссылки. Как это сделать, смотри по адресу http://expert.delphi.int.ru/help#23




Статьи  >>

Как изменить иконку у директории?

Обычно для изменения вида папок в Проводнике используется файл desktop.ini.

Сперва необходимо создать файл desktop.ini и поместить его в ту директорию, иконку которой мы хотим изменить. В программе для этого можно воспользоваться классом TIniFile и передать в него путь директории.

Теперь нам необходимо записать в .ini-файл пары значений. В desktop.ini эти пары выглядят следующим образом:

[.ShellCLassInfo]
IconFile=C:\folder.ico
IconIndex=0
InfoTip=Folder info tip

Самое главное - это указать иконку и её индекс.

Значение IconFile - это путь к .dll, .ico, или .exe файлу. В Delphi это выглядит так:

var iniFile: TIniFile;
...
iniFile:=TIniFile.Create(edFolderPath.Text);
with iniFile do
  begin
    //Следующие строки записывают в desktop.ini все необходимые параметры
    WriteString('.ShellClassInfo', 'IconFile',  editIconPath.Text);
    WriteString('.ShellClassInfo', 'IconIndex', editIconIndex.Text);
    WriteString('.ShellClassInfo', 'InfoTip',editInfoTip.Text);
    UpdateFile;
  end;
iniFile.Free;

Примечание: здесь editFolderPath, editIconPath, editIconIndex и editInfoTip - элементы TEdit, в которые вводятся все необходимые данные - путь к директории, иконку которой следует изменить, путь к файлу с иконкой, индекс иконки и всплывающая подсказка для директории (подсказка не обязательна).

Теперь, когда файл desktop.ini создан, необходимо изменить атрибуты папки и добавить системный флаг. Чтобы иконка отображалась правильно, желательно установить системный флажок как для папки, так и для её родителя. Для установки атрибутов воспользуемся функцией SetFileAttribue():

//Устанавливаем системные атрибуты для папки и её родителя
SetFileAttributes(PChar(edFolderPath.Text), FILE_ATTRIBUTE_SYSTEM);
if Length(edFolderPath.Text) > 3 then //Если директория не корневая...
begin
   //функция LastChar возвращает индекс последнего вхождения символа
   //в строку. Этот способ позволяет быстро получить путь родительской
   //директориии, если, конечно, директория не является корневой на диске...
   tempDir := Copy( edFolderPath.Text, 1,LastChar(edFolderPath.Text, '')-1);
   SetFileAttributes(PChar(tempDir), FILE_ATTRIBUTE_SYSTEM);              
end;

Теперь можно открыть Проводник и посмотреть на значок.

Вы можете отправить свои статьи по адресу info@delphi.int.ru и они будут опубликованы в ближайших выпусках рассылки и на сайте.


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

Разделы: Статьи | Компоненты | Plug-in's | Документация | Исходники | Программы | Игры | Изображения

Уважаемые читатели! Отправляйте полезные компоненты/модули, интересные исходники, собственные программы/игры и мы разместим их на сайте. Отправить можно здесь »

Последние поступления
Название
Описание
Раздел
Объём
Ссылки
DelphiSpeedUp v.2.41
Модификация для Delphi/C++ Builder 5/6/7/2005, BDS 2006 и Turbo Delphi/C++/C# Professional. Она ускоряет время загрузки и работы оболочки (IDE). Это достигнуто заменой некоторых часто используемых RTL-функций функциями FastCode, которые специально оптимизированы под процессор.
313 Кб
Turbo Palette

Turbo Palette - замена стандартной палитры компонент Delphi 7. Для отображения списка компонент используется подобие сетки, в то время как стандартная палитра компонент просто содержит прокручиваемую область. Такой способ позволяет отображать гораздо больше компонент на экране.

Особенности:
- панель перемещаемая, автоматически "цепляется" к другим окнам;
- занимает очень мало памяти;
- автоматически синхронизируется с палитрой компонент Delphi;
- поддерживает объединение разных страниц палитры компонент для ускорения доступа к ним.

Примечание:
Эта модификация разработана для Delphi 7 версий Professional, Enterprise и Architect, но не тестировалась на версии Personal.

44 Кб
ColorIDE v.1.02s

С помощью ColorIDE можно настраивать оформление кода в Code editor в средах программирования от Borland. По сравнению со встроенными редакторами цветовой гаммы кода, ColorIDE является более гибким инструментом - с помощью него можно легко сохранять созданные цветовые схемы и обмениваться ими с другими.

347 Кб
Всего новых файлов: 3  
704 Кб
 

Если у Вас есть книги по Delphi (в электронном виде, разумеется) или другая полезная документация - сообщите и её можно будет разместить на сайте.

Отправить файл »   

Ссылки  >>

Дружественные сайты   |   Каталог ссылок

Обмен баннерами приветствуется для сайтов схожей тематики. По поводу размещения текстовых ссылок обращайтесь сюда.

Рассылки Subscribe.Ru
Программирование на Delphi
Visual Basic для новичков и профессионалов
   
 

Юмор

Ведущий раздела: Bruder

Настоящий интернетчик…

Настоящий интернетчик так привык пользоваться всякими службами анонимного доступа, что даже любимой девушке звонит через коммутатор Общества анонимных алкоголиков.

Настоящий интернетчик никогда не указывает своих настоящих данных в разных анкетах. Даже в налоговой декларации он пишет, что зовут его Vasya Pupkin, работает он в Microsoft и живет в Папуа - Новой Гвинее.

Нажимая на кнопку в лифте, настоящий интернетчик всегда с содроганием ждет, что нужный ему этаж вывалится в новом окошке.

Получив в подарок на день рождения книгу, настоящий интернетчик долго недоумевает, почему index.html в ней находится не на первой, а на последней странице.

В музыкальном магазине настоящий интернетчик всегда спрашивает, сколько еще своих друзей он должен привести, чтобы получить “вон этот сидючок” на халяву.

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

Из телевизионных программ настоящего интернетчика больше всего умиляет реклама шоколадок с разгуливающими по кухне пингвинами.

Вообще же, в телевидении настоящего интернетчика больше всего раздражает то, что он не знает, сколько еще людей сейчас смотрят этот канал вместе с ним.

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

Настоящий интернетчик очень любит рассказы из жизни аристократии XIX века, когда все делали друг другу обязательные ответные визиты и всегда расписывались при этом в книге для гостей.

Если настоящий интернетчик дает поздравительную телеграмму родной бабушке в город Верхнепупинск, он всегда интересуется у работников почты, считается ли смайлик за отдельное слово.

Все услышанные анекдоты и смешные истории настоящий интернетчик сразу же оценивает по пятибалльной рейтинговой системе.

Настоящий интернетчик всегда прикидывает примерный CTR для рекламных щитов на улице.

Повестку в военкомат настоящий интернетчик считает спамом и долго скандалит по этому поводу со старушкой-почтальоном.

Спать по ночам настоящий интернетчик считает напрасно загубленной молодостью.

Алексей Маценко

:))

Присылайте компьютерные анекдоты, рассказы и истории по этой ссылке и они обязательно будут опубликованы.
Ведущий рассылки, Ерёмин Андрей.

В избранное