Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: Образование, Работа и Бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование на Delphi (выпуск 43)
Программирование на DELPHI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Выпуск #43 (08 марта 2006 г.) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лидеры по количеству баллов:
Некоторая статистическая информация (по системе "Эксперт"):
Если Вы хотите, чтобы Вашего имени (ника) не было в данной таблице, отправьте письмо по этой ссылке с зарегистрированного у нас адреса. В теле письма укажите причину удаления имени из таблицы. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задать вопрос в рассылку | Задать вопрос с помощью web-формы | Система "Эксперт" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вопрос #252 (автор вопроса: Meirambek; вопрос отправлен: 26.02.2006 13:35): Как можно на Delphi написать программу, которая даст возможность не распаковывая файлы из архива смотреть их дату создания? [Ответить на вопрос] Вопрос #253 (автор вопроса: Miron; вопрос отправлен: 26.02.2006 13:40): На Delphi нужно сделать так, чтобы программа стартовала как сервисная служба Windows, или сделать сервис Windows который будет запускать программу. Можно ли решить эту проблему? [Ответить на вопрос] Вопрос #254 (автор вопроса: Miron; вопрос отправлен: 26.02.2006 13:44): Как можно добавить в программу возможность оповещения по электронному адресу и по IP адресу (несколько адресов)? [Ответить на вопрос] Вопрос #255 (автор вопроса: RAI; вопрос отправлен: 26.02.2005 13:51): Как с помощью ActiveX в Delphi осуществить доступ к сканеру? [Ответить на вопрос] Вопрос #256 (автор вопроса: Юрий Емельянов; вопрос отправлен: 27.02.2006 08:29): Подскажите, чем открыть для редактирования файлы gdb (или хотя бы посмотреть)? [Ответить на вопрос] Вопрос #257 (автор вопроса: dar1; вопрос отправлен: 27.02.2006 11:51): Уважаемые дельфяне! Есть проблема! Как писать текстовый файл с машины Win95 на машину с Windows2000 Server? Протокол только NetBios, имена и рабочая группа известы,частота записи от 3 сек и его обьём около 500 кБ. Этот файл с такой же частотой открывается для считывания информации другой программой. Может подскажете другой вариант передачи текстовой информации между данными машинами? [Ответить на вопрос] Вопрос #258 (автор вопроса: alex; вопрос отправлен: 28.02.2006 13:56): Как запустить Delphi 6.0 под пользователем? [Ответить на вопрос] Вопрос #259 (автор вопроса: Алексей; вопрос отправлен: 28.02.2006 22:41): Как скопировать часть текста из TRichEdit в TDBRichEdit, сохраняя форматирование? [Ответить на вопрос] Вопрос #260 (автор вопроса: Vital; вопрос отправлен: 02.03.2006 09:05): Добрый день! Подскажите, пожалуйста, или дайте информацию по программированию весового контролера JagXtreme фирмы Mettler-Toledo на Delphi, или полное описание контроллера. [Ответить на вопрос] Вопрос #261 (автор вопроса: Игорь Середюк; вопрос отправлен: 02.03.2006 14:12): Как определить перед открытием файла, является ли он .DBF-файлом для таблиц dBASE или FOXPRO, или нет? Если является, то определить есть ли в нем нужные поля. После этого надо его открыть и с ним работать. [Ответить на вопрос] Вопрос #262 (автор вопроса: LanKasper; вопрос отправлен: 03.03.2006 02:28): При программном изменении настроек в Internet Explorer (допустим, убираем показ картинок) нужно также программно их применить (иначе изменения всупают в силу только после перезагрузки IE). Как быть? [Ответить на вопрос] Вопрос #263 (автор вопроса: Unknown; вопрос отправлен: 03.03.2006 12:48): У меня есть плагин, который состоит из дочерней формы. Как ее запустить в открыть в родительской форме программы? Или плагин состоит из Фрейма. Как поместить этот фрейм в дочернюю форму программы? [Ответить на вопрос] Вопрос #264 (автор вопроса: Андрей Щеглов; вопрос отправлен: 03.03.2006 16:14): Здраствуйте, господа! Подскажите, как узнать подробную информацию о процессе, если известно, допустим, EXE-имя и PID? [Ответить на вопрос] Вопрос #265 (автор вопроса: dar1; вопрос отправлен: 04.03.2006 07:38): Подскажите, где можно найти описание кодов ошибок для MS Dos Client? Особенно интересует ошибка 5637. [Ответить на вопрос] Вопрос #266 (автор вопроса: SamProf; вопрос отправлен: 06.03.2006 02:02): У меня вопрос следующего седержания: У Windows Media 9 и 10 есть такая фишка: правой кнопкой мыши на треепанели инструментовПроигрыватель Windows Media. Теперь, когда запускаешь проигрыватель и его сворачиваешь, появляется панелька с кнопоками управления проигрывателем! Насколко я понимаю - это какой-то ActiveX и что может его надо где-то зарегистрировать и тогда он там будет появлятся? Никто не может мне подсказать, как сделать примерный аналог этого? Спасибо! [Ответить на вопрос] Вопрос #267 (автор вопроса: drobbog; вопрос отправлен: 06.03.2006 23:04): Здравствуйте, у меня такой вопрос: как можно с помощью Delphi организовать поисковую систему по FTP-ресурсам в локальной сети? [Ответить на вопрос] |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вопрос #242: 1. [Отвечает: Матвеев И.В. (статус: Практикант), 26.02.2006 22:09]: Во-первых Вы можете посчитать входящий/исходящий трафик только для своего IP, конечно если не рассматривать вариант снифинга, что повлечет за собой перевод сетевой карты в "слушающий" режим и очень большие сложности при написании системного драйвера. Начните с обзора таких программ как: Есть еще вариант - если предполагается считать трафик от Web-браузера, то можно написать локальный Proxy сервер и настроить все возможные приложения на использование Вашего локального прокси. Так, например, работает CoolProxy (если не ошибся в названии). Оценка за ответ: 4. 2. [Отвечает: mvp (статус: Студент), 28.02.2006 9:46]: Никак обычными средствами. Нужно писать приложение, которое будет устанавливаться на машине и удалённо отсылать отчёты (backdoor какой-то, даже на трояна похоже). В этом приложении можно использовать библиотеку для подсчёта траффика (она есть на сайте сдесь - я высылал). Ну и на основе сокетов создаём клиент(на исходной машине)-сервер(на вашей) и контролируем. А так просто взять, да посчитать трафик любой машины в сети - невозможно. Оценка за ответ: 4. Вопрос #243: 1. [Отвечает: Антон Трапезников (статус: Практикант), 26.02.2006 11:24]: Доброго времени суток! Для того чтобы убрать атрибут ReadOnly используйте следующий код: // Если установлен атрибут "Только чтение"
В файле SysUtils мнемоническому имени аттрибута соответствует числовой прототип (точнее наоборот, числовому значению параметра соответствует мнемонический прототип). 128 Нормальный Если необходимо сделать файл скрытым и системным то: SetFileAttributes('SomeFile.exe', 6); Для записи в exe файл почитайте, для начала, о его формате, который называется PE. В com-файлах все было просто, т.к. этот устаревший формат фактически представлял собой оппкоды ассемблерных инструкций последовательно записанных в файл, причем файл состоял из одного сегмента, размером не более 64Кб. Pe - файлы имеет намного более сложную структуру и состоят из секций. Возможно, что Вам придется добавлять собственную секцию, а возможно, можно будет дописать что-либо к уже существующей (зависит от размера записываемой информации). Следует учесть что PE-файл может быть упакован (например, UPX-ом или ASPack-ом), тогда Вам необходимо произвести распаковку, а еще он может быть защищен (например, ASProtect'ом), тогда Ваша задача усложняется еще больше. И наконец, приложение может считать контрольную сумму, которая, разумеется, изменится при дописывании информации к файлу. О этих вещах можно прочитать на сайтах посвященных программированию на ассемблере (например www.wasm.ru), реверсу (www.cracklab.ru) или вирусологии (если Вы, конечно, виря и не пишете :) хотя на Delphi они не пишутся), на том же www.wasm.ru. А вот пример записи в реестр бинарных данных, взятый из Delphiworld. Не забудьте добавить модуль Registry. var
Оценка за ответ: 5. 2. [Отвечает: Zeon (статус: Эксперт: 6-ой класс), 27.02.2006 1:12]: 1. Любой файл во время выполнения редактировать нельзя. Это не зависи от его атрибутов. Для редактирования нужно создать другую програму(процесс, службу), которая будет редактировать твой ехе-шник. ехе файлы являются не типизированными и работать с ними нужно соответственно. Обьявляем переменную как F: File;(например). И работаем с ней через BlockRead, BlockWrite; Перемещаемся по файлу процедурой Seek. Подробности найдешь в хэлпе. 2. Работать с реестром виндовса не сложно. Вот тебе небольшой пример: uses
3. > Как пишется код и где? Оценка за ответ: 5. 3. [Отвечает: PVS (статус: Студент), 27.02.2006 9:56]: 1) Как при запуске ехе-шника сделать его доступным (если проблема только в атрибутах): SetFileAttributes( 2) По реестру пишет TRegistry. Вот пример из Help'a Delphi procedure TForm1.WMEndSession(var Message: TWMEndSession);
Кроме WriteString есть еще WriteBinaryData, WriteBool, WriteCurrency, WriteDate, WriteDateTime, WriteExpandString, WriteFloat, WriteInteger, WriteTime так что писать можно что угодно. 3) С писанием в exe-шник не так просто, но и не слишком сложнее. Алгоритм такой: после кода можно писать все что угодно, потому просто надо определить где кончается код. Проще всего написать сначала все, что касается чтения/записи из ДРУГОГО файла начиная с определенной позиции (ее запомнить в константу) и скомпилировать. Получится программа как раз той длинны, после которой МОЖНО писать свои данные. Подставляем полученое значение в константу, меняем название файла на имя exe-шника и перекомпилируем. Размер изменится не должен (как ни странно, но иногда он не меняется даже при добвлении нескольких компонент на форму). 4) Где писать код: где надо :-) . Если серьезно, то изменение атрибутов, наверное в начале проэкта или в OnCreate главной формы. Нсколько я понял, остальное - это анализ запускалась ли програма ранее и какая-то первоначальная инициализация. В таком случае ее - туда же. Оценка за ответ: 5. 4. [Отвечает: midav.land.ru (статус: Студент), 27.02.2006 11:24]: Официально делать запись в exe файл, который запущен нельзя. Это связано с особеностями работы ОС. Как варианты предлагали использовать автозагрузку, куда помещяется програмка, которая сделает все замены. Вариант два предполагает следующий ход. Программа сохраняет необходимые данные во временный файл. Потом запускает программу-спутник и завершает работу. Та, дождавшись завершения работы выаолняет нужные изменения и при необходимости перезапускает программу. Но есть одна военная хитрость, которая позволяет сделать всё проще. Для этого переименовываем exe-файл и делаем с ним всё что хотим. Только потом надо не забыть переименовать назад. Ну а если просто атрибут "только для чтения снять" (предупреждаю, в запущеного exe это делать запрещает операционная система), то тогда используем функцию SetFileAttributes(). Задаём ей два параметра: сначала имя файла, затем задаваемые атрибуты. Например, так можем файл сделать "только для чтения" SetFileAttributes('C:\file.txt', faReadOnly); Можно задавать следующие значения: faReadOnly,faHidden,faSysFile,faVolumeID,faDirectory,faArchive,faAnyFile Оценка за ответ: 5. Вопрос #244: 1. [Отвечает: Антон Трапезников (статус: Практикант), 26.02.2006 11:33]: Я, обычно, привожу обе сравниваемые строки к верхнему или нижнему регистру, а только потом сравниваю. Для этого есть соответствующие функции, например: function UpCase(Ch: Char): Char; Которые, увы, наотрез отказываются работать с русскими буквами, поэтому используйте эти аналоги. function UpCaseRus(ch: Char): Char; function LoCaseRus( ch : Char ) : Char; Или, если Вас не устраивает ассемблер, можете написать собственные функции перевода строк в верхний или нижний регистр. Удачи! Оценка за ответ: 5. 2. [Отвечает: Садовников Владимир (статус: Практикант), 26.02.2006 10:51]: Используй сравнение без регистра StrIComp, либо напиши свою функцию сравнения. В крайнем случае можешь обе строки преобразовать в один регистр и сравнить. Оценка за ответ: 4. 3. [Отвечает: Матвеев И.В. (статус: Практикант), 26.02.2006 21:41]: UpperCase - работает только для английского алфавита, поскольку во всех раскладках они расположенны одинаково, символы других языков могут располагаться в ASCII таблице где угодно. Чтобы "поднимались" русские и английские символы используйте вот это: function UppCase(Str: string): string;
Оценка за ответ: 5. 4. [Отвечает: Деревянко Евгений (статус: Эксперт: 6-ой класс), 26.02.2006 13:13]:
Попробуй функции преобразования регистра: Условие ниже будет истинным: UpperCase(QwErTy) = UpperCase(qWeRtY). Оценка за ответ: 5. 5. [Отвечает: PVS (статус: Студент), 27.02.2006 9:57]: if ANSIUpperCase(myStr='АБВГ') Then <чего-то сделать>; Оценка за ответ: 4. 6. [Отвечает: Alexey Lukyanenko (статус: Эксперт: 3-ий класс), 27.02.2006 10:05]:
Есть два варианта: Результат бужет одинаковый. В первом случае все буквы переводятся в верхний регистр, во втором - в нижний. P.S. для Unicode-строк нужно использовать те же функции, но вместо "Ansi" использовать приставку "Wide". Оценка за ответ: 5. 7. [Отвечает: midav.land.ru (статус: Студент), 27.02.2006 11:29]:
Не очень понятно, что именно вы хотели сказать, но думаю мои идеи
направят вас на нужный путь.
В 7 Делфи и старше есть функция SameText(s1,s2:string):boolean.
Она стравнивает две строки без учёта регистра.
Если же вам необходиммо самому реализовать что- то подобное, то это
делается так.
Первым долгом делают регистр буковок один у всех с помощью функций: Оценка за ответ: 5. 8. [Отвечает: Алекс Рыльков (статус: Эксперт: 2-ой класс), 28.02.2006 0:54]: Тут надо использовать функции стандартного модуля SysUtils: //uppercase
Но они работают только для английского алфавита. Если нужно использовать русский шрифт то можно написать что то вроде этого: function Upcaser(stroka:string):string;
Оценка за ответ: 5. 9. [Отвечает: mvp (статус: Студент), 28.02.2006 9:49]: Используй функции uppercase, lowercase. Первая приводит всё к верхнему регистру (большие буквы), вторая - к нижнему (маленькие). uppercase('абВг') даст АБВГ В программе все строки сравнивайте, применяя приведение к одному регистру. Оценка за ответ: 5. Вопрос #245: 1. [Отвечает: Dron (статус: Специалист), 26.02.2006 7:44]: Можно вот так например: function RebootOS: Boolean;
И дальше вызывать: RebootOS; Оценка за ответ: 5. 2. [Отвечает: Антон Трапезников (статус: Практикант), 26.02.2006 11:56]: В Windows есть функция ExitWindowsEx, ниже пример использования для ребута машины. Необходимо, также, добавить модуль ShellAPI. Во вложении полное описание этой функции. Для начала, опишите эту функцию: function MyExitWindows(RebootParam: Longword): Boolean;
А затем, для перезагрузки, вызывайте ее следующим образом: procedure TForm1.Button1Click(Sender: TObject);
// В MSDN это раздел "System Shutdown Functions" (прим. редактора) Оценка за ответ: 5. 3. [Отвечает: Садовников Владимир (статус: Практикант), 26.02.2006 10:56]: Похоже, такой вопрос уже был... Используй функцию ExitWindowsEx(flags,reserved). reserved=0 - всегда Оценка за ответ: 5. 4. [Отвечает: Матвеев И.В. (статус: Практикант), 26.02.2006 22:59]: Для этого существует отдельная функция: ExitWindowsEx(uFlags: UINT; dwReserved: DWORD); Ее параметр uFlags задает режим выхода (см. справку), а dwReserved=0. Например: ExitWindowsEx(EWX_FORCE or EWX_REBOOT, 0); Оценка за ответ: 5. 5. [Отвечает: Виктор Александрович Вдовиченко (статус: Эксперт: 3-ий класс), 26.02.2006 22:57]: Начну с самого простого и дойду до самого надёжного дауна и ребута. Ниже приведённые команды можно запускать в меню "Выполнить" (Run), кнопки Пуск <Win+R>. winexec(Pchar('XYZ'),sw_Show); Вы наверное догадались уже, что эти команды справедливы для окон семейства 9х. А как быть с окнами семейства NT? А если заглянуть в MSDN (база знаний Microsoft), там рекомендуют два способа: 1 способ: DWORD dwReserved, // reserved 2 способ: BOOL ExitWindowsEx( UINT uFlags, // shutdown operation А теперь по русски: Функция ExitWindows: Описание: Параметры: Возвращаемые Значения: Примеры использования: Функция ExitWindowsEx: Описание: Параметры: Возвращаемое значение: Пример использования: Дело в том, что, чтобы выполнить функциию в окнах семейства NT, нужно получить права на выполнение этой функции. Сделать это можно через AdjustTokenPriviligies. И снова лезем в MSDN BOOL AdjustTokenPrivileges( А теперь на Delphi: С помощью нижеприведённой функции можно получить любую привелегию, в т.ч. и привеленгию SeShutdownPrivilege, которая нужна для разрешения функции ExitWindows(Ex) Function SetPrivilege(aPrivilegeName: String; aEnabled: Boolean ): Boolean; Пример использования для среды NT: В том-же MSDN можно узнать о вида привилегий! Пользуйтесь этой базой знаний от мелко-мягких!!! Не стесняйтесь. Там всё есть, что касается окон. SE_ASSIGNPRIMARYTOKEN_NAME Required to assign the primary token of a process. И на последок хочу сказать, что Вы должны проверить версию окон и принять соответствующий метод дауна и ребута. Как узнать версию винды- это уже отдельная тема. Если нужно то расскажу. Как минимум, у меня имеется четыри метода и самый простой- это проверить наличие папки System32 которой нет в окнах семейства 9х Оценка за ответ: 5. 6. [Отвечает: PVS (статус: Студент), 27.02.2006 10:00]: Есть такая хорошая функция ExitWindowsEx - она и выключает и перегружает и зависшие проги при выключении/рестарте убивает. Оценка за ответ: 4. 7. [Отвечает: midav.land.ru (статус: Студент), 27.02.2006 11:30]: Вот вам два примерчика, предупреждаю сразу, вы должны иметь права на перегрузку. { **** UBPFD *********** by delphibase.endimus.com ****
>> Перезагрузка в WinNT (Убивает процессы)
Зависимости: Windows
Автор: DeMoN-777, DeMoN-777@yandex.ru, Санкт-Петербург
Copyright: @
Дата: 21 июня 2002 г.
***************************************************** }
Оценка за ответ: 5. 8. [Отвечает: Алекс Рыльков (статус: Эксперт: 2-ой класс), 28.02.2006 1:18]: Для совершения перезагрузки или выключения компьютера необходимо установить SeShutdownPrivilege. Для примера приведу следущий код: function SetPrivilege(aPrivilegeName : string; aEnabled : boolean ):
Оценка за ответ: 5. 9. [Отвечает: Лучников А.И. (статус: Студент), 28.02.2006 11:40]: Для этого есть ExitWindowsEx (uFlags:longint;dwReserved:Word); Посмотри в хелпе значения uFlags. Оценка за ответ: 4. Вопрос #246: 1. [Отвечает: Антон Трапезников (статус: Практикант), 26.02.2006 13:55]: Подключите модуль MMSystem, после чего Вы можете использовать некоторые Win32 API функции, например, функция waveOutGetNumDevs, возвращает количество звуковых карт, установленных в Вашей системе. Она описана следующим образом: UINT waveOutGetNumDevs(VOID); uses sndPlaySound('C:\wavefile.wav', SND_ASYNC); Помимо этого можно использовать функцию PlaySound: PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC); Подробное описание функций смотрите в msdn (Platform SDK), также посмотрите функции, начинающиеся на waveOutGet***. Оценка за ответ: 5. Вопрос #247: 1. [Отвечает: Alexey Lukyanenko (статус: Эксперт: 3-ий класс), 27.02.2006 10:31]: Судя по всему, Вы случайно положили не DataBand, а просто Band. Оценка за ответ: 5. Вопрос #250: 1. [Отвечает: Деревянко Евгений (статус: Эксперт: 6-ой класс), 26.02.2006 13:34]:
Недостаточно четкое описание вопроса. Если нужно найти последний автоматически
сгенерированный сервером ключ, то тут нужно воспользоваться функциями
SQL сервера. Для каждого сервера это по-своему. MySQL: Оценка за ответ: 5. 2. [Отвечает: PVS (статус: Студент), 27.02.2006 10:10]: Дело в том, что после добавления запись может "перепрыгнуть" соответственно сортировке или просто она может быть вставлена где-то посредине. Так что в любом случае надо искать максимальный ключ: MyQry.SQL.Text:='select max(id) from mytable';
Оценка за ответ: 5. 3. [Отвечает: midav.land.ru (статус: Студент), 27.02.2006 11:37]:
Так как в базах дата добавления записи обычно не указывается, а
порядок записей в файле никак не связаны с реальным временем
добавления то никак. Просто когда вы удуляете записб, то вместо неё в
файле как бы образуется "дырка". В эту дырку потом может добавиться
новая запись.
А вот на вторую часть вопроса ответить легко. Это реализовывается в
два SQL запроса. Если бы вы указали используемую СУБД, то можно было
бы оптимизировать.
Первый запрос вида Оценка за ответ: 5. Вопрос #251: 1. [Отвечает: PVS (статус: Студент), 27.02.2006 10:14]:
1) Перевести все в UNICODE. Оценка за ответ: 3. 2. [Отвечает: midav.land.ru (статус: Студент), 27.02.2006 11:39]: Юзать Indy. там есть компонент idHTTP. Там есть возможность работы с пост запросами. Оценка за ответ: 4. Все вопросы и ответы на них Вы всегда можете найти на нашем сайте в разделе "Delphi-Эксперт". |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Копирование файлов Автор: Ерёмин Андрей В данной статье показаны некоторые методы копирования файлов. Существуют и готовые функции - CopyFile(), CopyFileEx(), но порой они неприменимы. Например, при использовании функции CopyFile() с большими файлами мы не имеем доступа к процессу копирования, т.е. программа на некоторое время просто "зависает". Из методов, приведённых ниже, только первый позволяет контроллировать процесс копирования - можно добавить прогресс-индикатор выполнения или отображать объём скопированных данных. 1. Копирование методом Pascal. type
2. Копирование методом потока. procedure FileCopy(Const SourceFileName, TargetFileName: String);
3. Копирование методом LZExpand. uses LZExpand; 4. Копирование методами Windows. uses ShellApi;
Мной были сделаны некоторые эксперименты с данными функциями. Во всех случаях копировался один и тот же файл объёмом 122 Мб. Конечно, говорить о правильности результатов можно с трудом, ведь жёсткий диск работает по-разному - иногда быстрее, а иногда медленее. Но в любом случае, результаты есть:
Кажется, название функции FastFileCopy вполне оправдано. Впрочем, судить о том, какая из функций действительно работает быстрее, нужно по результатам экспериментов на большом числе компьютеров с разными конфигурациями. Но цель данной статьи была не выявить самый быстрый способ, а просто показать об этих способах. Использовать можно любой из методов, все они работоспособны. Присылайте свои статьи по адресу info@delphi.int.ru с темой 'Articles' (без кавычек), и они будут опубликованы в ближайших выпусках рассылки и на сайте. Также вы можете заполнить вот эту форму. Большая просьба: статью оформляйте в -txt или -doc формате и используйте -zip или -rar сжатие (без самораспаковки). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Из данного раздела Вы можете скачать различные файлы: компоненты, plug-in'ы для Delphi, документацию по программированию, программы, игры, написанные на Delphi и всё остальное... Вы можете добавить свои файлы в данный раздел. Чтобы сделать это, пожалуйста, заполните форму на сайте. К сожалению, новых файлов на сайте нет.
Чтобы перейти к разделу "Файловый архив" на сайте, нажмите на эту ссылку. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Здесь представлены ссылки на дружественные сайты. Обмен ссылками и баннерами всегда приветствуется. Здесь представлены самые последние ссылки:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Как известно, смертоносный вирус "Я люблю тебя" видоизменился, приняв новые обличия. :)) Если взять цветной бумаги, ручку, ножницы и клей, да еще чуть-чуть
отваги - можно сделать сто рублей... :)) Внимание! Вы изменили положение мыши. Для того, чтобы изменения вступили в силу, необходимо перезагрузить компьютер. :)) Фармацевтика - наука о форматировании диска C. :)) Сеть - это дырки, связанные веревками. :)) Bpaч дeлaeт oбхoд, гpaдycники y бoльных coбиpaeт, пpoпиcывaeт лeчeниe, пoдхoдит к кoйкe oднoгo бoльнoгo и cпpaшивaeт сecтpy: :)) "...Для продолжения установки Win'2000 вставьте 45234-ю дискету..." :)) - А чё UNIX, чё UNIX? - возмущался Вывоуз, - Малыш Билли ещё на Васике лопал, когда она уже была. Старушенция дряхлая! :)) Периоды зачатия инетчика: :)) Интернетчик пишет объявление в конференцию: :)) Из диалога в аське: :)) Разговор по аське: :)) Вопросы ламера: :)) Умный программист всегда сумеет занять компьютер глупой работой. Анекдоты прислал: bruder. Присылайте свои анекдоты по этой ссылке: info@delphi.int.ru и они обязательно будут опубликованы. Желательно на компьютерную тему. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Товарищи программисты! Проявляйте свою активность. Давайте помогать друг другу! Если вы не нашли ответа на свой вопрос, не отчаивайтесь! Количество подписчиков постоянно растёт и, наверняка, найдётся тот человек, который поможет вам! а сегодня всё. До встречи через неделю!
Ведущий рассылки, Ерёмин Андрей. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Наши реквизиты в системе WebMoney: R379291065219, Z165075684614. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Наш сайт: 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 |
В избранное | ||