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

Интернет для Delphi-программиста


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

Интернет для Delphi программиста.

Выпуск : № 25


Здравствуйте уважаемые подписчики рассылки "Интернет для Delphi программиста". Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы... Изучайте Delphi один из лучших языков программирования!!!


ЗАДАТЬ ВОПРОС :

Правила рассылки: 
1. Не присылайте ответов на вопросы типа "да, нет".  
2. Если отвечаешь на вопрос - то отвечай подробно с примерами (желательно с исходником примера).
3. Тема вопросов - программирование на Delphi.
Внимание авторам: - Я не указываю ваши адреса из-за спама, но кто хочет, чтобы его email был - пишите, иначе только имя.
Отправить вопрос


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


Вопрос № 44 задаёт: Vadim Ответить
Имеются исходники гигантского проекта на C++Builder Version5.0 Update Pack 1. На сколько реально конвертировать их в Delphi Version5.0 Update Pack 1, какие есть средства для этого и где их взять?
Вопрос № 45 задаёт: Алмаз Рафитович Ответить
Как из своей программы запустить другую?
Вопрос № 46 задаёт: Алмаз Рафитович Ответить
В Delphi 7 был компонент, который делает интерфейс программы XPшным. Теперь у меня Delphi 5, как мне найти выход из ситуации?
Вопрос № 47 задаёт: sasha chepurin Ответить
Здравствуйте! У меня есть вопрос и хотелось бы получить на него ответ.
Как можно остановить выполнение цыкла при нажатие на клавишу?
Примером может быть запуск и остановка секуномера, относительно графике: остановка движущегося объекта при нажатии, скажем, на клавишу управления курсором ("вверх", напимер,) VK_UP. Благодарен за ответ.

Ответы.

Вопрос № 36 задаёт:Ярошук Юрий Ответить
Подскажите как из TMemo передать в Excel с полным оформлением по (столбикам и строкам)
Отвечает: Архангельский Андрей
Для работы с Excel есть хороший компонент XLSReadWrite, разработанный фирмой Axolot (http://www.axolot.com) работает с Excelевскими напрямую, при этом позволяет указывать версию Excel начиная с 5, соответственно не требует присутствия на компютере Excel.
Все способы работы через OLE (т.е. то что предлагает Delphi требуют присутствия на компютере пользователя соответствующей программы, да еще и конкретной версии)
Вопрос № 37 задаёт: Eugene Ответить
Надо сделать прогу-тест. У меня на форме несколько RadioButton'ов и Кнопка. Дан вопрос и 4 варианта ответов - один из них правильный ответ, 3 соотв. непр. (4 RadioButton'ов). Как сделать, чтобы когда я выбираю один из RadioButton'ов(правильный) и кликаю по кнопке, должно выйти сообщение "Правильно". Подскажите, как это осуществить?
Отвечает: SHKoder
Сорокин Глеб
:)
а не проще ли

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0..1, 3: Application.MessageBox('Не правильно','Msg');
2: Application.MessageBox('правильно','Msg');
end;
end;
Вопрос № 40 задаёт: Дмитрий Ответить
У меня вопрос! Как можно построить график в делфи, задавая его формулу не в исходнике, а именно в поле запущенной программы?
Отвечает: oli266
Попробуй использовать parser, например из библиотеки RX275
Вопрос № 42 задаёт: Nikan Ответить
Привет Всем!
Помогите, пожалуйста, разобраться!
Есть Memo, в которое загружаю текст (список людей с порядковыми номерами, среди которых есть несколько с однаковыми - 888). Нужно из этого текста вирезать всё и оставить только те строки, которые начитаються с 888. А потом из каждой такой строки вырезать фамилию, имя, отчество и сделать DBF с такими же полями.???
Может кто знает как это сделать, помогите?
Отвечает: SHKoder
ну, как вариант вставь все в эксель мягкотелых, там ты получишь таблицу тебе нужную
выбираешь весь столбец и сортируешь его по имени
1
2
3
...
887
888
888
888
888
889
...
вырезаешь то что тебе нужно, остальное выкидываешь

а вот с вырезанием фамилии имени и отчества я врядли помогу, потому как я это делал на процессоре MSDE средствами SQL функциями
charindex
patindex
substring

а в дбф можно сохранить средствами опять того же ексцеля :)

Вопрос № 43 задаёт: webmail Ответить
Здравствуйте, где можно найти исходник почтовой программы для получения почты, с сохранением аттачмента письма в определенной папке, или у кого может есть, прошу поделится. webmail#mail.kz
Отвечает: SHKoder
www.narod.delphiworld.ru
там наверняка есть

ya.ru с параметрами - "исходник почта"


Статья:   Шутки в Delphi. Автор: Delist. Сайт: http://www.noil.pri.ee/
Язык Delphi довольно мощный язык программирования. С его помощью можно создавать приложения различной сложности. Начиная от простейших текстовых редакторов заканчивая сложными 3d-играми. Но сейчас речь пойдёт не совсем об этом, постараемся рассмотреть разные возможности Delphi. В этой статье мы взглянем на несколько различных примеров, которые нельзя отнести не к одной из отдельных тем программирования. Однако, от этого эти они не станут хуже или лучше, а просто рассмотрим темы, на которые довольно редко пишут статьи. Возможны вы даже получите больше полезной информации, чем при прочтении статьи на конкретной тему.

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

Ну что ж, от слов перейдём к делу.

Шутки при помощи системного реестра.


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

И первой шуткой которую мы рассмотрим будет пример, который я назвал Не выключаемая Винда".

Не выключаемая Винда"

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

Итак, для того что лишить лучшего друга или подругу возможности выключить любимый windows достаточно добавить всего одну или две записи записи (на ваше усмотрение) в системный реестр по адресу HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer. Если добавить туда параметр NoClose равный единице, то пользователь лишиться возможности выключить компьютер, а запись NoLogoff (тоже равная 1) не даст пользователю сменить профиль, однако последний параметр не работает в XP.

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

procedure TForm1.NoCloseClick(Sender: TObject);
var
  Reg: TRegistry;
begin
Reg:=TRegIniFile.Create();
Reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', true);
reg.WriteInteger('NoClose', 1);
reg.WriteInteger('NoLogoff', 1);
reg.Free;
end;


Для того что бы код заработал нормально нам понадобиться в разделе uses добавить модуль Registry и поставить на форму всего одну кнопку (я назвал её NoClose). После чего создать обработчик события onClick для этой кнопки и написать туда приведённый выше код.

Вначале мы объявляем переменную Reg типа Tregistry именно её мы будет использовать для доступа к реестру. Далее мы её инициализируем. Это значит что мы выделяем память под объект. Следующей строкой мы меняем ключевую ветку регистра на HKEY_CURRENT_USER; по умолчанию параметр RootKey равен HKEY_LOCAL_MACHINE. Далее следует участок кода:

reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',
true);
reg.WriteInteger('NoClose', 1);
reg.WriteInteger('NoLogoff', 1);


Здесь мы открываем ключ 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' и если такой ключ ещё не создан в реестре, что маловероятно, то создаём его. И после чего добавляем две записи NoClose и NoLogoff, о которых уже говорилось выше.

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

Отключаем Alt+Ctrl+Del.

Для того что бы быть уверенным в том что пользователь не отключить вашу шуточную программу при помощи клавиш Alt+Ctrl+Del. необходимо хорошо спрятать приложение или... отключить диспетчер задач. Тем более, что отключить его намного проще чем полностью скрыться от "всевидящей" программы и делается это ни чуть не сложнее, чем в прошлом примере.

За активность TaskManager'a отвечает параметр DisableTaskMgr, который находиться в ключе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System. Если он равен единице, то вместо Диспетчера задач, при нажатии Alt+Ctrl+Del увидят сообщение о том что "Всемогущая утилита" отключена их администратором.

А теперь покажу как реализовать это на Delphi, хотя вы наверно и сами догадались:

procedure TForm1.DisableAltCtrlDelClick(Sender: TObject);
var
  Reg: TRegistry;
begin
Reg:=TRegIniFile.Create();
Reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', true);
reg.WriteInteger('DisableTaskMgr', 1);
reg.Free;
end;


Работает этот код точно также как и в предыдущем случае.

Сейчас мы рассмотрели два вида запретов, однако их несколько больше. Список того, что известно мне перечислен ниже.

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer

Меню "Пуск"

NoRecentDocsMenu - Скрыть "Документы"
NoFavoritesMenu - Скрыть "Избранное"
NoFind Скрыть - "Hайти"
NoHelp Скрыть - "Справка"
NoRun Скрыть - "Выполнить"
NoClose Скрыть - "Завершение работы"
NoLogoff Скрыть - "Завершение сеанса"
NoWindowsUpdate - скрыть "Windows Update"
NoStartMenuSubfolders - скрыть подкаталоги
NoSetFolders - скрыть "Hастройка"
NoCommonGroups - скрыть "Программы"
NoChangeStartMenu - запретить контекстное меню в меню "Пуск"
NoTrayContextMeny - запретить контекстное меню для панели задач
NoSetTaskbar - запретить настройку Панели задач

Меню "Пуск", подменю "Hастройка"

NoSetActiveDesktop - Скрыть Рабочий стол Active Desktop
NoSetFolders - скрыть "Принтеры" и "Панель управления"
NoSetTaskbar - скрыть Панель задач и меню "Пуск"
NoNetworkConnections - скрыть "Удаленный доступ к сети"

Меню "Пуск", подменю "Документы"

NoRecentDocsHistory - не помнить недавно открытых документов
MaxRecentDocs - количество недавно открытых документов
ClearRecentDocsOnExit - Очистить список недавно открытых документов при выходе
NoSMDocs - скрыть "Мои документы"
NoSMMyPictures - скрыть "Мои рисунки"

Меню "Пуск", подменю "Hастройка", пункт "Принтеры"

NoPrinterTabs - скрыть некоторые вкладки в диалоге "Свойства": принтер
NoDeletePrinter - запретить удаление принтера.
NoAddPrinter - запретить добавление принтера.

Рабочий стол

NoDesktop - Отключить Рабочий стол
ClassicShell - Сделать вид похожим на Win 95
NoInternetIcon - Скрыть значок "Интернет"
NoNetHood - Скрыть "Сетевое Окружение"
NoStartBanner - Отключить "Hачните работу с нажатия этой кнопки"
NoActiveDesktop - Отключить Active Desktop
NoActiveDesktopChanges - Запретить изменения на Active Desktop

Разное

NoSaveSettings Запретить сохранение установок
NoDrives Скрыть все диски в Мой компьютер (FF FF FF FF). В зависимости от
значения скрываются разные буквы
дисков, 00 00 00 00 - не скрыт ни один.

Панель управления, диалог Сеть
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Network

NoNetSetup - Диалог Сеть недоступен.
NoNeSetupIDPage - Вкладка Идентификация недоступна.
NoNetSetupSecurityPage - Вкладка Управление доступом недоступна.

NoEntireNetwork - Скрыть Вся сеть
NoWorkgroupsContents - Скрыть содержимое сети

Панель управления, диалог Пароли
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

NoSecCPL - Диалог Пароли недоступен.
NoPwdPAGE - Вкладка Смена паролей недоступна.
NoAdminPage - Вкладка Удалённое администрирование недоступна.
NoProfilPage - Вкладка Профили пользователей недоступна.

Панель управления, диалог Система

NoDevMgrPage Вкладка Устройства недоступна.
NoConfigPage Вкладка Профили оборудования недоступна.
NoFileSysPage Кнопка Файловая система на вкладке Быстродействие
недоступна.
NoVirtPage Кнопка Виртуальная память на вкладке Быстродействие недоступна.

Панель управления, диалог Экран

NoDispCPL - Диалог Экран недоступен
NoDispAppearancePage - Вкладка Оформление недоступна
NoDispBackgroundPage - Вкладка Фон недоступна
NoDispScrSavePage - Вкладка Заставка недоступна
NoDispSettingsPage - Вкладка Hастройка недоступна

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

Windows который хочет всё время чего-то удалить"

Наверно каждый пользователь Windows видел и пользовался атлетом Установка и удаление программ", но далеко не каждый задумывался откуда эти данные берутся. Дак, вот они тоже охраняться в реестре в ключеHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. В этом ключе располагаются дочерние узлы в которых и находятся данные о установленных программах. В том числе и путь к деинсталлятору программы. Сейчас я покажу как получить эти данные, а потом от лица Windows предложить пользователю удалить какую-либо программку.

Как обычно сначала код, а потом его объяснение:

procedure TForm1.DeleteAhyProgClick(Sender: TObject);
var
  i: Integer;
  buf: array[0..1000] of char;
  KeyHandle: HKEY;
begin
Timer1.Enabled:=true;
keys:=TStringList.Create;
if RegOpenKey(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
KeyHandle)=ERROR_SUCCESS then begin
  i:=0;
  while RegEnumKey(KeyHandle, i, buf, SizeOf(buf))=ERROR_SUCCESS do begin
    keys.Add(StrPas(buf));
    i:=i+1;
    end;
  end;
end;


Здесь я решил немного разнообразить нашу жизнь и использовал методы WinApi, они не намного сложней, зато работать с ними куда интересней. Но предварительно я объявил глобальную переменную keys типа TstringList и инициализировал её в самом начале и локальную переменную KeyHandle типа HKEY, где будет храниться указатель на открытый ключ реестра.

Первая WinApi функция, которую будем вызывать есть RegOpenKey, в неё надо передать три параметра:
1)Ветка регистра, в которой будем открывать нужный нам ключ, передаём туда
HKEY_LOCAL_MACHINE;
2)Ключ который будем открывать
3)Указатель на открытый ключ

Функция вернёт ERROR_SUCCESS, если ключ открыт успешно. Довольно странно, что константу назвали таким образом, по-началу это меня смущало, но потом быстро привык. Далее запускаем цикл пока есть не обработанные элементы в открытом ключе. Для этого используем функцию RegEnumKey и опять возвращаемый результат сравниваем с ERROR_SUCCESS, как только переберем все дочерние ключи функция вернёт другое значение и цикл остановиться.

Сама функция имеет четыре параметра:
1)Указатель на открытый ключ. Его мы получили при использовании функции RegOpenKey и находиться он в переменной KeyHandle
2)Номер дочернего ключа
3)Переменная куда будет записано название дочернего ключа
4)Размер переменной buf, куда запишем результат

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

Ещё поставил на форму один таймер по которому будет происходить вызов программы удаления, свойству Time присвоил 120000мс или 2 минуты и для события onTimer написал следующий код:

var
  reg: TRegistry;
  key: &string;
  index: Integer;
begin
Randomize;
reg:=TRegIniFile.Create();
reg.RootKey:=HKEY_LOCAL_MACHINE;
index:=Random(keys.Count+1);
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+keys[index],
true);
key:=reg.ReadString('UninstallString');
if key<>''then begin
  MessageBox(0, 'Do you want to delete any programm?''MS Windows',
MB_OK+MB_ICONQUESTION);
  ShellExecute(0, 'Open', Pchar(key), '''', SW_SHOWNORMAL);
  end;


Начнём его Разбор с переменной index, где храниться случайное число в промежутке от 0 до keys.Count, с его помощью мы будем получать полный путь к любому из множества доступных нам ключей. Потом в открытом ключе читаем параметр UninstallString и записываем результат в key. Теперь там должен быть путь к деинсталлятору, осталось только запустить его, но если какой-то нерадивый программист не указал этот параметр то он будет равен пустой строке и поэтому необходимо переменную key, что мы и сделали.

Меняем заголовки стандартных программ Windows.

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

Рассмотрим пример со всеми известной программой Windows Media Player. Для этого надо открыть ключ HKEY_CURRENT_USER\Software\Policies\Microsoft и создать в нём дочерний ключ WindowsMediaPlayer, после чего в нём создать текстовый параметр TitleBar и в него записать всё что вам хочется. Для примера, я внёс туда адрес своего сайта и запустив программу заголовок проигрывателя был следующий: Windows Media Player provided by Noil.pri.ee".

Хоть это и не трудно, но реализацию всего вышесказанного всё-таки приведу.

procedure TForm1.ChangeWMPCaptionClick(Sender: TObject);
var
  Reg: TRegistry;
begin
Reg:=TRegIniFile.Create();
Reg.RootKey:=HKEY_CURRENT_USER;
reg.OpenKey('Software\Policies\Microsoft\WindowsMediaPlayer', true);
reg.WriteString('TitleBar', WMPCaption.Text);
reg.Free;
end;

Шутки с мышкой.


Неуправляемая мышь.

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

procedure TForm1.Timer2Timer(Sender: TObject);
const
  cursors: array[0..15] of integer=(OCR_NORMAL, OCR_IBEAM, OCR_WAIT, OCR_CROSS,
 OCR_UP, OCR_SIZE, OCR_ICON,OCR_SIZENWSE, OCR_SIZENESW,
 OCR_SIZEWE, OCR_SIZENS, OCR_SIZEALL, OCR_ICOCUR, OCR_NO,
 OCR_HAND, OCR_APPSTARTING);
begin
Randomize;
SetSystemCursor(GetCursor,cursors[random(High(cursors)+1)]);
SetCursorPos(Random(Screen.Width), Random(Screen.Height));
end;


В самом начале объявлен массив из указателей на все системные курсоры Windows. Сам код написан для события onTimer таймера и поэтому будет выполняться периодически. Всю смысловую нагрузку несут две простых функции: SetSystemCursor меняет один курсор на другой. Второй курсор мы случайно выбираем из ранее созданного массива, a SetCursorPos определяет новой положений курсора.

Падающая мышь.

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

procedure TForm1.DownMouseClick(Sender: TObject);
var
  MPos: TPoint;
  index: Double;
  h: HWND;
begin
b:=true;
h:=CreateEvent(nil, true, false, 'ut');
index:=1;
while b do begin
  GetCursorPos(MPos);
  if MPos.Y>=Screen.Height-20 then begin
     WaitForSingleObject(h, 5000);
     index:=1;
     GetCursorPos(MPos);
     end;
  index:=index+index/30;
  MPos.Y:=MPos.Y+round(index);
  SetCursorPos(MPos.X, mpos.Y);
  Application.ProcessMessages;
  WaitForSingleObject(h, 10);
  end;
end;


Логическая переменная b объявлена глобальной и используется для того, чтобы остановить выполнение кода в нужный момент, присвоив ей значение False.

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

Шутки с монитором.


Пишем прямо на мониторе.

Есть два способа нарисовать или написать на мониторе, первый это использовать функции WinApi или связать указатель на холст" монитор с объектом Tcanvas. И то и другое довольно просто. Рассмотрим сейчас поподробней второй способ.

procedure TForm1.Button1Click(Sender: TObject);
var
    scr: TCanvas;
begin
scr:=TCanvas.Create;
with scr do begin
  Handle:=GetDC(0);
  Brush.Color:=clblue;
  Font.Color:=clred;
  Font.Size:=16;
  TextOut(round(Screen.Width/2)-Round(TextWidth(DplCaption.Text)/2),
          round(Screen.Height/2)-Round(TextHeight(DplCaption.Text)/2),
          DplCaption.Text);
  free;
  end;
end;


Самое интересное в этой процедуре - это функция GetDC, которая может вернуть контент рисования любого окна. Если мы передадим в неё 0, то получим результатом как раз и будет контент монитора. Теперь остаются присвоить полученное значение свойству Handle у созданного объекта типа Tcanvas. Любой примитив нарисованный на неё будет мгновенно отображаться на мониторе поверх всех окон.

В приведённом примере, по середине экрана выводиться надпись из компонента типа Tedit, расположенного на форме. У меня он носит название DplCaption.

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

Заключение.


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

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

Исходный код программы которая умеет " шутить" все эти шутки можете скачать с моего сайта, перейдя по этой ссылке.
Книги  

100 компонентов общего назначения библиотеки Delphi 5

В книге рассмотрено 100 компонентов и классов Delphi 5 - т.е. практически все компоненты общего назначения, кроме специализированных компонентов, связанных с данными, и компонентов для работы с Интернет, которые требуют отдельного рассмотрения. Проведен сравнительный анализ функций и возможностей компонентов, даны рекомендации по их применению. Приводятся многочисленные примеры. Книга рассчитана на пользователей любой квалификации: от начинающих до опытных разработчиков.
Автор А. Я. Архангельский.

OpenGL. Графика в проектах Delphi

Книга посвящена использованию стандартной графической библиотеки OpenGL в проектах Delphi. Начиная с самой минимальной программы, последовательно и подробно рассматриваются все основные принципы программирования компьютерной графики: двухмерные и трехмерные построения, анимация, работа с текстурой, визуальные эффекты и др. Большое внимание уделяется вопросам оптимизации и ускорения приложений. Изложение построено на многочисленных примерах, среди которых есть и такие сложные, как многофункциональный графический редактор и CAD система визуализации работы робототехнической установки, что облегчает усвоение материала и прививает хороший стиль программирования.
Автор М. Краснов
Формат Книги DJVU. Ознакомиться с ним можно, перейдя по ссылке.

Delphi и технология Com

Книга посвящена использованию технологии Component Object Model (COM) в приложениях, созданных с помощью Delphi. Освещаются вопросы, связанные с принципами модели СОМ, разработкой элементов управления ActiveX, серверов и контроллеров автоматизации, применением OLE-документов в приложениях, а также с использованием программного обеспечения СОМ и СОМ+ для организации распределенных вычислений.
Книга предназначена для опытных программистов, имеющих опыт разработки приложений с помощью Delphi и интересующихся вопросами применения СОМ-технологии и созданием распределенных приложений на ее основе.
Авторы: Н. Елманова, С. Трепалин, А. Тенцер


Исходники  

FTP Client Server (31.01.2005) - исходник программы, который содержит в себе исходный код клиента и сервера, для работы с FTP ресурсами - Автор Team Coherence.
Скачать | Скриншот

E-Mail (21.12.2004) - исходник программы, предназначенной для приема и отправки электронной почты. Для приема/отправки электронной почты в программе имеется поддержка протоколов POP3 и IMAP4 .
Скачать | Скриншот

Курс валют/погода (23.11.2004) - исходник программы, предназначенной для просмотра текущего курса валюты и погоды на текущий день (при этом Ваш компьютер должен быть подключен к сети Интернет).
   Принцип работы: программа соединяется по Интернет с сервером "http://www.rbc.ru/" и заносит все нужные данные в свое окно.
Скачать | Скриншот

Network Traffic Monitor (03.06.2004) - исходник программы, которая предназначена для анализа и подсчета трафика передающегося по локальной сети (LAN) и при соединении с Интернет (Internet) - Автор Zarko Gajic.
Скачать | Скриншот

Domen Name IP (11.02.2004) - исходник программы, позволяющей получить имя домена по его IP-адресу, узнать IP-адрес домена по его имени, узнать IP-адрес компьютера по его имени, узнать имя компьютера по его IP-адресу, перевести IP-адрес компьютера в числовой формат.
Скачать | Скриншот


Интересные и полезные сайты по Delphi: Если Вы хотите, чтобы Ваш сайт был в этом разделе пишите.

http://www.noil.pri.ee/ - Здесь вы можете почитать статьи, скачать исходники и компоненты, пообщаться на форуме.


Немного юмора:  :))

Сидит психиатр (П) у себя в кабинете — скучает...... пациенты не идут. Тут тихонько так приоткрывается дверь и к нему на карачках заползает человек (Ч) сжимая что-то в зубах, руках и т.д. плюс что-то еще волочится сзади.

П: — Ой кто это к нам тут ползет!!! Это наверное маленькая змейка. Заползай змейка, заползай маленькая, доктор тебе поможет.

Человек отрицательно машет головой.

П: — А-А-А. это наверное черепашка к нам в гости пожаловала. Заползай черепашка в кресло и расскажи дяде доктору что с тобой случилось....

Человек отрицательно машет головой.

П: Так кто же это у нас — наверное маленький червячок??

Ч: ДОКТОР, ИДИТЕ НА ХЕР, Я СИСАДМИН, ВАМ СЕТЬ ПРОКЛАДЫВАЮ!!!


Задачка, которую хороший программист решит за пару минут, а хороший физик сойдёт с ума: Ася весит 4,2 метра. За сколько времени она скачается, если ширина канала - 5 кило в секунду?


Windows отдыхает, попробуйте включить комп позднее!


Нечего на железо пенять, коли виндовс крива.


Install Windows: Все, что вы сейчас сделаете будет использовано против вас!


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

Рассылки Subscribe.Ru
Программирование на Delphi.
Всё о Delphi



Все кто хочет изучить Delphi и реально научиться писать свои программы, ЦПИ "Эверест" поможет Вам.
Всё, что Вам нужно это компьютер и доступ к интернету - для получения уроков.

10 причин в пользу платного обучения в ЦПИ "Эверест"…

1. Когда Вы платите деньги- появляется дополнительный стимул против лени: надо учиться, ведь деньги уже уплачены….
2. Учась платно, получаете удобный для Вас график работы.
3. Весь необходимый справочный материал Вы получите в свое время и на русском языке.
4. Используя интернет в качестве бесплатной библиотеки, Вы получаете все ее минусы:

  • трата времени на поиск необходимого материала (а это потерянные деньги и время). А у Вас есть лишние время и деньги?;
  • отсутствие гарантии, что Вы "осилите" данный материал, ведь пишут его, в основном, не педагоги- профессионалы, а программисты- профессионалы, а они пишут для таких же, как они. А Вы программист- профессионал?
  • отсутствие системности в скачиваемом материале (ведь человек, писавший для Вас материал, не знает, чем Вы владеете). А Вы обладаете системой знаний по Delphi?;

5. Стоимость обучения одного месяца в ЦПИ "Эверест" сравнима с ценой хорошей книги. Но часто ли Вам попадались книги, рассчитанные именно на Вас. Мы же работаем индивидуально.
6. Автор книги или магазин не несет никакой ответственности за то, поняли ли Вы материал или нет, мы же закрепляем за каждым курсантом преподавателя, курирующего Вас.
7. Освоив программирование в Delphi - Вы освоите:

  • основы настоящего программирования- структурного и процедурного программирования ;
  • систему работы с базами данных и SQL- запросами, а это одно из самых перспективных направлений в программировании;
  • язык программирования ObjectPascal, что позволит Вам легко перейти, при желании, на С или Паскаль;
  • работу с компьютерной графикой;
  • при желании - основы низкоуровневого программирования ( Ассемблер).

8. А это значит, что …Мы предлагаем получить "высшее образование" - профессию программиста всего за 1 год и 144 доллара, любой ВУЗ попросит в 3 раза больше за один только семестр.
9. Вы получаете самый практический курс в сети, поскольку теория дается только тогда, когда она действительно необходима…
10. Учиться у нас легко и просто. Весь материал доступен и простым людям, не имеющим никогда дел с программированием….


По всем вопросам обращайтесь ко мне.

Если вы встретили в интернете интересный сайт или статью, да и вообще, что угодно связанное с Delphi, поделитесь ссылкой.
Если можете написать статью связанную с Delphi - присылайте с радостью выложу.
Давайте поможем друг другу!  Архив рассылки.

Предложения, критику и пожелания пишите на e-mail.


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

В избранное