Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: Образование, Работа и Бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование на Delphi (выпуск 32)
Информационный Канал Subscribe.Ru |
Программирование на DELPHI |
|||||||||||||||||||||||||||||||||||||||||||||
Выпуск #32 (25 сентября 2005 г.) |
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
Если Вы хотите, чтобы Вашего имени (ника) не было в данной таблице, отправьте письмо по этой ссылке с зарегистрированного у нас адреса. В теле письма, пожалуйста, укажите причину удаления имени из таблицы. Нам важно ваше мнение. |
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
Новых вопросов не было задано. Хочу Вас спросить, почему? :)
Вопрос #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? На официальном сайте ничего нет. Заранее выражаю благодарность всем, кто сможет мне помочь. [Ответить на вопрос] Вопрос #144 (автор вопроса: Angen; вопрос отправлен: 03.07.2005 22:41): Пишу программу "Редактор настроек Windows" наподобие "WinSEr". Подскажите, пожалуйста, как в свойствах "Пароли" под Win98 в закладке "Удаленное управление" программно добавить определенного пользователя или удалить его? [Ответить на вопрос] Вопрос #149 (автор вопроса: Alexandr Prokhoda; вопрос отправлен: 04.09.2005 11:18): Добрый день. Подскажите пожалуйста, каким образом программа (пишу в Delphi 5) может изменить параметры электропитания WindowsXP (или хоть какой-то)? Конкретно – время выключения монитора. Заранее благодарю, Александр Прохода. [Ответить на вопрос] Вопрос #153 (автор вопроса: sun rain; вопрос отправлен: 11.09.2005 18:12): Ситуация: есть прокся, которая блокирует доступ к форуму, но можно получить доступ к нему введя вместо него IP адрес... Я смог написать программку на Delphi, которая при помощи стандартного компонента браузера грузила страницы форума, но без картинок и тем более нельзя было войти туда под логином. Как сделать чтоб все адреса (файлы, линки..), что этот "браузер" запрашивает у сервера, менялись на нужные мне и в итоге я видел все правильно? [Ответить на вопрос]
|
|||||||||||||||||||||||||||||||||||||||||||||
Вопрос #138: 1. [Отвечает: Matveyev, 20.09.2005 02:53]: См. статью http://delphiworld.narod.ru/base/decompile_wave.html. Был у меня еще примерчик как раз на эту тему, но что-то найти не могу. Если всё же найду - дам. Оценка за ответ: 3.
Вопрос #145: 3.2. [Отвечает: Ершов Денис, 19.09.2005 09:51]: С опозданием, но я нашел, где видел добавление пункта в контекстное меню проводника через COM-сервер. Это один из примеров к книге Марко Кэнту "Mastering Delphi 6". В архиве два проекта. Один - программа позволяющая перетаскивать на свою форму файлы. Другой - обработчик контекстного меню, отправляющий файлы в эту программу. Скачать прикреплённый файл. Оценка за ответ: 5.
Вопрос #150: 1. [Отвечает: Вадим Фурив, 19.09.2005 12:30]: Для того, чтобы получить вычисляемые поля лучше всего использовать SQL запросы. Например: Записать данные из запроса можно так же командой SQL: Оценка за ответ: 5.
Вопрос
#151: 1. [Отвечает: Matveyev, 20.09.2005 02:53]: На мой взгляд, наиболее элегантным решением будет использование оверлеев - это не так сложно как кажется на первый взгляд, а поверх, будет так поверх - прямо в буфере видеокарты. Подробнее см. http://www.delphimaster.ru/articles/directx/index.html . Если ссылка битая, обращайся, дам вместе с исходниками примера. Оценка за ответ: 4. 2. [Отвечает: Dasha, 20.09.2005 15:12]: В свойствах формы ставишь: FormStyle - fsStayOnTop; убираешь все BorderIcons, BorderStyle - bsNone; цвет формы, например, черный. Тогда TransparentColorValue тоже черный, TransparentColor - true, на форму таймер и один ярлык для текста, у него Left = 0. Оценка за ответ: 5. Вопрос #152: 1. [Отвечает: Вадим Фурив, 19.09.2005 12:42]: Для ответа на данный вопрос нужно всего-лишь прочитать в хелпе по Delphi про зарезервированное слово type. Например: Тоже типы совместимые. Можно еще объявлять кучу разных вещей: массивы (X: array of Integer), записи, сеты. Все это подробно можно найти в помощи по Delphi. Если проблема с переводом с английского, то советую установить программу HelpReader. Оценка за ответ: 5. 2. [Отвечает: Геннадий Самолдин, 19.09.2005 16:28]: Сначала пишешьЖ Потом объявляешь переменную x: <имя типа>; и работаешь с ним. Оценка за ответ: 4. 3. [Отвечает: Садовников Владимир, 19.09.2005 17:41]: Самый лучший помощник в данном случае - хорошая книга. Какие типы данных тебя интересуют - множества, массивы, перечисления, записи, классы, указатели? Вообще говоря, все типы данных объявляются после ключевого слова type. Примеров, думаю, не надо приводить: достаточно открыть тот же заголовочный файл Windows.pas и посмотреть, как там объявляются все типы. Оценка за ответ: 4. 4. [Отвечает: Dasha, 20.09.2005 15:18]: Где-нибудь перед var пишешь type и ниже описываешь тип данных. Например, так: Потом объявляешь переменную этого типа, например: Оценка за ответ: 5. 5. [Отвечает: mvp, 20.09.2005 20:38]: Пример: Объявляем в разделе type. Это может быть перечислимый тип или запись или переименование уже существующих типов. Например, type MyInt = Integer; Но, следует учесть, что если есть процедура(функция): procedure F(var Ad : MyInt), и у вас будут такие объявления Ещё примеры: type var Ar : varArr; SetLength(ar, 5); Оценка за ответ: 5. 6. [Отвечает: Azamat Galiyev, 21.09.2005 07:44]: Ээ... вопрос конечно интересный ;) Очень советую прочитать первый том Тексеры и Пачека, ну и конечно второй на закуску. Ну а пока краткая справка. Перед объявлением пишем ключевое слово type потом одно или несколько объявлений. type бла-бла-бла может быть нескольких видов. Простое переопределение: Что-нибуть изощрённее (указатель на начало процедуры): Массивы: Указатели: Перечисления: Записи неупакованные (каждая часть записи в памяти выровнена по сетке 4-байт): Наборы (иногда очень полезный механизм!!!): Ну и конечно бесконечная мощь ООП классы например один из самых юзабельных: И еще одна немаловажная вещь которой непользуются начинающие Пасквилянты - интерфейсы. Все объявления взяты из стандартных модулей SysUtils и Classes (спасибо большое борландцам). А ваше как говорил один очень известный товарищ - Хочешь писать как Шекспир - копируй Шекспира. Глубокое изучение стандартных готовых модулей и демок позволит Вам научится писать на должном уровне. И больше пожалуйста не задавайте таких вопросов... Оценка за ответ: 5. 7. [Отвечает: Yurchik, 23.09.2005 00:04]: http://program.rin.ru/razdel/html/1022.html. Оценка за ответ: 3. Вопрос #154: 1. [Отвечает: Dron, 19.09.2005 08:35]: Делать вручную - ну очень долгий и неудобный способ. Лучше взять готовые компоненты, с помощью которых иконка в трее делается за пару секунд. Лично я рекомендую использовать Cool TrayIcon: http://www.delphi.int.ru/download.php?id=20. Оценка за ответ: 4. 2. [Отвечает: Ершов Денис, 19.09.2005 09:27]: Приветствую, Алексей. Не знаю насколько данная информация устарела. Работал только с D7. В ней это была не ошибка (Error), а предупреждение указывающее на ненадежность кода (Warning). При этом программа вполне компилируется и запускается, просто компилятор ставит под вопрос правильность функционирования такого кода. Можно просто игнорировать данные сообщения, можно отключить через Project -> Project options ->Compiller Messages, чтобы не доставали. Конкретно по сообщению. В D7 данное сообщение указывало на несовместимость в будущем данного кода с технологией ".NET". Еще конкретней, приводит к конфликту памяти. Если в D8 картина аналогичная - игнорируй, если сообщение перекочевало в категорию ошибок - искать альтернативный код. Оценка за ответ: 5. 3. [Отвечает: Dasha, 20.09.2005 15:21]: Лучше возьми готовый компонент, который все удобно делает. Например, CoolTrayIcon. Оценка за ответ: 3. Вопрос #155: 1. [Отвечает: Dron, 18.09.2005 16:09]: Я могу ошибаться, но в Delphi 7 эти компоненты отсутствуют. Вместо них можно использовать Indy-компоненты. В данном случае - IdSMTP. Оценка за ответ: 4. 2. [Отвечает: #One, 18.09.2005 20:45]: В Delphi7 не входят компоненты FastNet, т. к. все их возможности с лихвой перекрываются компонентами Indy. Оценка за ответ: 4. 3. [Отвечает: Matveyev, 20.09.2005 02:53]: В Delphi 7 Borland отказалась от продуктов Net Masters L.L.C. (производители компонентов FastNet). Итак, у вас остается выбор либо использовать Delphi 5, Delphi 6 не знаю есть ли FastNet в Delphi 4 и более ранних, либо купить компоненты у производителя. А может без исходных текстов можно найти и для D7 - посмотрите на http://www.netmastersllc.com/. Оценка за ответ: 4. Вопрос #156: 1. [Отвечает: Dron, 18.09.2005 14:05]: Самый простой вариант: procedure TForm1.Button1Click(Sender: TObject); Тип Real допускает, что числа могут быть/получится дробные. Так как Оценка за ответ: 5. 2. [Отвечает: #One, 18.09.2005 20:50]: Оценка за ответ: 5. 3. [Отвечает: Matveyev, 20.09.2005 02:53]: Edit6.Text := FloatToStr( ( StrToFloat(Edit1.Text) * StrToFloat(Edit2.Text) * StrToFloat(Edit3.Text)) - StrToFloat(Edit4.Text) ) / StrToFloat(Edit5.Text); Оценка за ответ: 5. 4. [Отвечает: SPIDER, 18.09.2005 17:58]: Здравствуйте, Eugene. Edit6.Text:=FloatToStr(((StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text)*StrToFloat(Edit3.Text))-StrToFloat(Edit4.Text))/StrToFloat(Edit5.Text)); Или более удобный (а также более длинный) способ: Если используешь "/", то переменные должны быть дробного типа, т.е. Real. StrToFloat - текст превращает в число дробного типа. По этому, если будут введены не цифры, а что-нибудь другое, выскочит Error. Это надо использовать для расчётов в программе (строки умножать нельзя!). FloatToStr - дробное число превращает в строку. Надеюсь, помог. Оценка за ответ: 5. 5. [Отвечает: Igor, 18.09.2005 18:39]: Расскажу самый примитивный для меня способ. Заводим 2 массива из 6 элементов, первый типа String, например, S[i], второй, допустим, LongInt A[i]. Далее, при нажатии кнопки записываем значения в матрицу S[i], которые ввёл юзер в Эдит'ы и переводим эти строки в числа процудурой Val и одновременно записываем их в массив A[i]. Далее присваиваем какой-нибудь переменной значение формулы, которое нам необходимо получить
и записываем его в шестой Эдит. Всё... Вот сама программа: uses type var implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); end. Можно округлить значение или отбросить дробную часть... Оценка за ответ: 5. 6. [Отвечает: Вадим Фурив, 19.09.2005 10:41]: Если ответ требуется дробный: Если ответ требуется целый: При этом желательно в событии OnKeyPress вставить: Это не позволит пользователю вводить ничего кроме цифр и запятой. Если цифры должны быть целыми, то и запятую убрать. Вычисление можно повесить на событие OnChange. Только тогда надо проверять, чтобы все поля компонентов Edit были не равны '' (не пустыми), иначе будет ошибка, а поле Edit5.Text не должно равняться нулю, так как тогда будет ошибка "деление на ноль". Оценка за ответ: 5. 7. [Отвечает: SlavComp, 19.09.2005 11:16]: На процедуру OnClick твоей кнопки пишешь строку: Edit6.text:=floattostr(((strtofloat(Edit1.text) * strtofloat(Edit2.text) * strtofloat(Edit3.text)) - strtofloat(Edit4.text))/strtofloat(Edit5.text)); Или другой вариант (если тебе не нравится длина строки): Оценка за ответ: 5. 8. [Отвечает: Геннадий Самолдин, 19.09.2005 16:24]: Нужно в обработчик события OnClick кнопки написать Edit6.Text:=((Edit1.text * Edit2.text * Edit3.text) - Edit4.text) / Edit5.text;, но не забудь перед этим перевести текст из этих полей в числа функцией StrToInt или подобной. Оценка за ответ: 5. 9. [Отвечает: Садовников Владимир, 19.09.2005 17:41]: Так используй property Text: сканируй число из него функцией StrToInt, если это целое и StrToFloat, если вещественное. Единственное, надо запихнуть в процедуру обработки try-блок, в котором ловится исключение неправильного ввода чисел (если, допустим, вместо 1234 ввели !"№;) и сообщать в нём о неправильном вводе. Оценка за ответ: 5. 10. [Отвечает: Olga Samusevich, 20.09.2005 13:04]: А обязательно ли надо, чтобы ответ помещался в Edit? Можно вместо 6-го Edit'а поместить Label?, где и прописать это. Оценка за ответ: 4. 11. [Отвечает: Dasha, 20.09.2005 15:26]: Не знаю, какие там числа, но допустим, действительные. Тогда так: Оценка за ответ: 5. 12. [Отвечает: alexlazer, 20.09.2005 19:17]: Необходимо использовать команды Strtoint(x) <перевод из String в Integer> и Inttostr(x) <перевод из Integer в String>. Оценка за ответ: 5. 13. [Отвечает: mvp, 20.09.2005 20:50]: В обработчике события onClick кнопки пишешь: Оценка за ответ: 5. 14. [Отвечает: Yurchik, 22.09.2005 23:56]: Оценка за ответ: 5. Все вопросы и ответы на них Вы можете найти на нашем сайте в разделе "Эксперт": http://www.delphi.int.ru/modules/expert/. |
|||||||||||||||||||||||||||||||||||||||||||||
Конвертирование графических форматов (часть 2) С помощью Delphi можно полноценно конвертировать графические форматы один в другой. Для работы с изображениями существует несколько предопределённых классов. Рассмотрим некоторые варианты конвертирования. 6. Конвертирование BMP в ICO. Вам необходимо создать два битмапа, битмап маски (назовём его "AND" bitmap) и битмап изображения (назовём его XOR bitmap). Вы можете пропустить обработчики для "AND" и "XOR" битмапов в Windows API функции CreateIconIndirect() и использовать обработчик возвращённой иконки в Вашем приложении. procedure TForm1.Button1Click(Sender: TObject); Способ преобразования изображения размером 32x32 в иконку: 7. Конвертирование BMP в RTF. Да, и такое тоже возможно. Вот так например: function BitmapToRTF(pict: TBitmap): string ; 8. Конвертирование CUR в BMP. Преобразование курсора в bitmap: procedure TForm1.Button1Click(Sender: TObject); 9. Конвертирование ICO в BMP. Var Вариант 2: procedure TIconShow.FileListBox1Click(Sender: TObject); Чтобы преобразовать Icon в Bitmap, используйте TImageList. Для обратного преобразования замените метод AddIcon на Add, и метод GetBitmap на GetIcon. 10. Конвертирование JPG в BMP. uses Мы рассмотрели способы конвертирования различных графических форматов. Все они достаточно просты. Присылайте свои статьи по адресу info@delphi.int.ru с темой 'Articles' (без кавычек), и они будут опубликованы в ближайших выпусках рассылки и на сайте. Также вы можете заполнить вот эту форму. Большая просьба: статью оформляйте в -txt или -doc формате и используйте -zip или -rar сжатие (без самораспаковки). |
|||||||||||||||||||||||||||||||||||||||||||||
Из данного раздела Вы можете скачать различные файлы: компоненты, plug-in'ы для Delphi, документацию по программированию, программы, игры, написанные на Delphi и всё остальное... Вы можете добавить свои файлы в данный раздел. Чтобы сделать это, пожалуйста, заполните форму на сайте. Новые файлы на сайте:
Чтобы перейти к разделу "Файловый архив" на сайте, нажмите на эту ссылку. |
|||||||||||||||||||||||||||||||||||||||||||||
Здесь представлены ссылки на дружественные сайты нашего портала. Если вы тоже хотите стать нашим другом, разместите наш баннер на своём сайте. Подробнее о том, как это сделать, можно прочитать на странице данного раздела на нашем сайте. Узнать о всех наших друзьях более подробно вы сможете на той же странице... 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 - базу данных по играм содержащую описания, скриншоты, коды, прохождения игр. Дружественные рассылки: |
|||||||||||||||||||||||||||||||||||||||||||||
Умирает, значит, программист. Попадает, понятное дело, в :)) Анекдот прислал: Костик Z. Берите пример, а то у меня уже ничего не осталось для публикации :( Пожалуйста, присылайте свои анекдоты по этой ссылке: info@delphi.int.ru и они обязательно будут опубликованы! Желательно на компьютерную тему.
|
|||||||||||||||||||||||||||||||||||||||||||||
Товарищи программисты! Проявляйте свою активность. Давайте помогать друг другу! Если вы не нашли ответа на свой вопрос, не отчаивайтесь! Количество подписчиков постоянно растёт и, наверняка, найдётся тот человек, который поможет вам! На сегодня всё. До встречи через неделю! Ведущий рассылки, Ерёмин Андрей. |
|||||||||||||||||||||||||||||||||||||||||||||
Вы можете оказать помощь нашему проекту через систему WebMoney: |
|||||||||||||||||||||||||||||||||||||||||||||
Наш сайт: http://www.delphi.int.ru/ E-mail: admin@delphi.int.ru; info@delphi.int.ru; expert@delphi.int.ru Страница рассылки: http://subscribe.ru/catalog/comp.soft.prog.delphifaq |
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphifaq |
Отписаться
Вспомнить пароль |
В избранное | ||