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

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


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

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

Выпуск : № 33


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


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

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


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


Вопрос № 73 задаёт: exp-project Ответить  
Как в ХР программно перезагрузить и выключить компьютер?
Вопрос № 74 задаёт: Vitek Ответить
Учусь делать различные вычисления. В Console Application -всё получается. Но как сделать так, что-бы в обычных Application присваивать переменным число из поля ввода? И какой компонент лучше использовать для ввода чисел?
Вопрос № 75 задаёт: Ящик Ответить 
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
case Key of
'.',',':

// разделитель целой и дробной частей числа
begin
if Key <> DecimalSeparator
// если введенный не соответствует символу
//по умолчанию то во избежании ошибки заменяем на допустимый
then Key := DecimalSeparator; // заменить не получается. Ошибка:
//incompatible types string and char

Подскажите начинающему чайнику чё не так?

Ответы.

Вопрос № 45 задаёт: Алмаз Рафитович Ответить 
Как из своей программы запустить другую?
Отвечает: А.Б. Мартемьянов 
ShellExecute из модуля ShellApi32
Вопрос № 47 задаёт: sasha chepurin Ответить 
Здравствуйте! У меня есть вопрос и хотелось бы получить на него ответ.
Как можно остановить выполнение цыкла при нажатие на клавишу?
Примером может быть запуск и остановка секуномера, относительно графике: остановка движущегося объекта при нажатии, скажем, на клавишу управления курсором ("вверх", напимер,) VK_UP. Благодарен за ответ.
Отвечает: А.Б. Мартемьянов 
Внутри цикла ставишь Application.ProcessMessages и при событии типа KeyPress в цикле ставишь break. Выглядеть это будет примерно так:
Repeat

Application.ProcessMessages;

if KeyPressedFlag
then BREAK
Until false;
Вопрос № 68 задаёт: #One® Ответить 
Требуется, чтобы приложение узнало, когда Виндоус закрывается. Как это сделать?
Отвечает: Alexandr 
Сначала винда посылает запрос о возможности закрытия если вернуть 0 то винда не закроется отмениться
WM_QUERYENDSESSION
nSource = (UINT) wParam; // source of end-session request
fLogOff = lParam // logoff flag

Когда винда начала процесс закрытия то посылается
WM_ENDSESSION
fEndSession = (BOOL) wParam; // end-session flag
fLogOff = lParam // logoff flag

Вопрос № 70 задаёт: Владимир Ответить 
Где можно наиболее полно получить информацию о программировании,компонентах Delphi 6, Delphi 2005, для программирования приложений с Internet, конкретно- с прототколами POP3,SMTP?
Отвечает: Shade 
В вузе, интернете, книгах, различных курсах см. в конце рассылки.
Есть две хороших книги: "Delphi глазами хакера" и "Delphi в шутку и всерьёз" автор Флёнов. Здесь хорошо описывается программирование для сети.
Вопрос № 71 задаёт: Новиков Олег Ответить 
Подскажите пожалуйста, как изменить дату создания каталога?
Отвечает: Евгений   http://decoding.narod.ru
// Способ первый
function SetDirTime( const Dir: string;
  Year, Month, Day, Hour, Minute, Second: Word): boolean;
var
  H: integer;
  F: TFileTime;
  S: TSystemTime;
begin
   H := CreateFile( PChar( Dir ), $0100, 0, nil, OPEN_EXISTING,
                    FILE_FLAG_BACKUP_SEMANTICS, 0 );
   if H <> -1 then
   begin
      S.wYear := Year;
      S.wMonth := Month;
      S.wDay := Day;
      S.wHour := Hour;
      S.wMinute := Minute;
      S.wSecond := Second;
      SystemTimeToFileTime( S, F );
      LocalFileTimeToFileTime( F, F );
      Result := Boolean( SetFileTime( H, @F, @F, @F ) );
      CloseHandle( H );
   end
   else
      Result := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if not SetDirTime( 'c:\Test', 2004, 1, 1, 12, 0, 0 ) then
      ShowMessage( 'Произошла ошибка' );
end;

// Способ второй
function SetDirTime( const Dir: string; DateTime: TDateTime ): boolean;
var
  H: integer;
  F: TFileTime;
  S: TSystemTime;
begin
    H := CreateFile( PChar( Dir ), $0100, 0, nil, OPEN_EXISTING,
                     FILE_FLAG_BACKUP_SEMANTICS, 0 );
    if H <> -1 then
    begin
       DateTimeToSystemTime( DateTime, S );
       SystemTimeToFileTime( S, F );
       LocalFileTimeToFileTime( F, F );
       Result := Boolean( SetFileTime( H, @F, @F, @F ) );
       CloseHandle( H );
   end
   else
      Result := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if not SetDirTime( 'c:\Test', StrToDateTime( '01.01.2004 15:00' ) ) then
      ShowMessage( 'Произошла ошибка' );
end;
Вопрос № 72 задаёт: KenBurg Ответить 
Hello всем!!!
Это фрагмент кода для чтения текст/файла по строкам:

AssignFile(f,fname);
Reset(f);


Readln(f,buf);
Form1.RichEdit1.Text := buf;
Readln(f,buf) ;
Form1.RadioButton1.Caption := buf;
Readln(f,buf);
Form1.RadioButton1.Tag := StrToInt(buf);
Readln(f,buf);
Form1.RadioButton2.Caption := buf;
Readln(f,buf) ;
Form1.RadioButton2.Tag := StrToInt(buf);
Readln(f,buf) ;
Form1.RadioButton3.Caption := buf;
Readln(f,buf) ;
Form1.RadioButton3.Tag := StrToInt(buf);


а это текст файл:

Вопрос1.
Ответ1.
0
Ответ2.
1 // правильный ответ
Ответ3.
0
Вопрос2.
Ответ1.
1 // правильный ответ
Ответ2.
0
Ответ3.
0

и.т.д.
т.е. читает строки последовательно 1, 2, 3 ...
Вопрос: как читать не последовательно а N строку (напр. 8, 50 или 99) т.е. сразу перейти на нужную?
Если можно фрагмент кода, плз.
Заранее благодарю всех и удачи в программировании!!!
Отвечает: Евгений   http://decoding.narod.ru 
Проще всего это сделать, если загнать текстовый файл в StringList. Например так:

var
  Form1: TForm1;
  SL: TStringList;
  FS: TFileStream;

procedure TForm1.FormCreate(Sender: TObject);
begin
   SL := TStringList.Create;
   FS := TFileStream.Create( 'c:\имя файла.txt', fmOpenRead );
   SL.LoadFromStream( FS );
   FS.Free;
end;

Теперь напишем процедуру, выводящую нужную строку (только помни, нумерация строк начинается с нуля).

procedure ReadLineNumber( Number: integer );
begin
   Form1.Caption := SL.Strings[Number];
end;

А вот так мы теперь можем прочесть третью строку:

procedure TForm1.Button1Click(Sender: TObject);
begin
   ReadLineNumber( 2 );
end;

Перед выходом не забываем отчистить память:

procedure TForm1.FormDestroy(Sender: TObject);
begin
   SL.Free;
end;
Отвечает: Alexandr 
Используй объект TStringList и метод LoadFromFile
TStringList.LoadFromFile(fname);
А далее доступ к строке через свойство Strings[N];
Отвечает: Андрей Кудрявцев aka Andrick 
Ну, поскольку стандартных функций для текстовых файлов на чтение в произвольном порядке никто не придумал, остается только писать собственную функцию, которая считывает от начала нужное число строк и выводит ответ. Больше никак не получается. Или разработать собственный формат
Отвечает: Трифонов Владимир 
Вообщемто предлагаю использовать структуированный файл (кстати, проще было б использовать БД) вообщемто :

описываем тип:

type f_rec=record
vp:string[200];//Вопрос
ot1:string[200];//Ответ1
pr1:integer;//Правильность ответа 1
ot1:string[200];//Ответ2
pr1:integer;//Правильность ответа 2
ot1:string[200];//Ответ3
pr1:integer;//Правильность ответа 3
end;


Var rec:f_rec;
fl:file of f_rec;


Сообственно текст загрузки:

AssignFile(fl,fname);
Reset(fl);
Read(fl,rec);
Form1.RichEdit1.Text :=rec.vp;
Form1.RadioButton1.Caption := rec.ot1;
Form1.RadioButton1.Tag := rec.pr1;
Form1.RadioButton2.Caption := rec.ot2;
Form1.RadioButton2.Tag := rec.pr2;
Form1.RadioButton3.Caption := rec.ot3;
Form1.RadioButton3.Tag := rec.pr3;


(Запись (создание файла) делается аналогично загрузки)

вообщем для того что бы передвинуть указатель на нужную запись (8,16,32) теперь просто можно написать seek(fl,nrec); (где nrec=номер записи (записи начинаются с 0 ))

Удачи.
Отвечает: turusov 
Советую воспользоваться TIniFile или TMemo, это гораздо проще.
  Типа
  IniFile:= TIniFile.Create(fileProject);
  try
    with IniFile do begin
      RichEdit1.Text:= ReadString('Project','question1','');
      ...
      if то-то then begin
        k:= 88;
        RichEdit1.Text:= ReadString('Project','question'+IntToStr(k),'');


Статья:   Создание поля для ввода текста на Win API. http://decoding.narod.ru/api/edit/edit.html

Сегодня мы добавим в наше приложение поле для ввода текста. Если провести аналогию с VCL, то у нас получится TEdit. Мы узнаем, как отреагировать на изменение содержимого в этом поле (аналогично событию OnChange), и каким образом можно работать с текстом в окне. Для этого текст, который мы будем вводить в наше поле, будет также отображаться в другом поле, аналогичном TLabel в VCL.

Начнем с объявления констант и переменных, необходимых для работы с этими полями.


const
  EditID = 1;
  StaticID = 2;

var
  Edit: HWND;
  Static: HWND;

Переходим непосредственно к созданию полей.


// Создаем текстовое поле (аналог TEdit)
Edit := CreateWindowEx( WS_EX_CLIENTEDGE, 'Edit', '',
                        ES_AUTOHSCROLL or WS_CHILD or WS_VISIBLE,
                        10, 10, 270, 20, Wnd, EditID, hInstance, nil );
SendMessage( Edit, WM_SETFONT, GetStockObject( ANSI_VAR_FONT ), 0 );

// Создаем текстовое поле (аналог TLabel)
Static := CreateWindowEx( 0, 'Static', '', WS_CHILD or WS_VISIBLE,
                          10, 46, 270, 20, Wnd, StaticID, hInstance, nil );
SendMessage( Static, WM_SETFONT, GetStockObject( ANSI_VAR_FONT ), 0 );

Эти функции нам уже знакомы, посмотрим, что же в них изменилось. Первое, на что надо обратить внимание, это имя класса создаваемого окна. В первом случае это 'Edit', а во втором 'Static'. Текстовое поле имеет расширенный стиль, а именно, бордюр. Этого мы добились, используя флаг WS_EX_CLIENTEDGE. Отсутствие этого флага привело бы к созданию "плоского" (Flat) поля (такой эффект мы можем наблюдать у поля Static). Также обратим внимание на флаг ES_AUTOHSCROLL при задании стиля окна. Благодаря этому, текст в окне будет автоматически прокручиваться, если его ширина превысит ширину текстового поля (на поле Static этот флаг не действует).

Теперь посмотрим, как нужно работать с этим полем.


function WindowProc( Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM ): LRESULT; stdcall;
var
  p: PChar;
  n: integer;
begin
   case Msg of
      WM_DESTROY: begin
         PostQuitMessage( 0 );
         Result := 0;
         Exit;
      end;
      WM_SETFOCUS: SetFocus( Edit );
      WM_COMMAND: begin
         case LoWord( wParam ) of
            EditID:
               case HiWord( wParam ) of
                  EN_CHANGE: begin
                     n := GetWindowTextLength( lParam ) + 1;
                     GetMem( p, n );
                     GetWindowText( lParam, p, n );
                     SetWindowText( Static, p );
                     FreeMem( p, n );
                  end;
               end;
         end;
      end;
      else
         Result := DefWindowProc( Wnd, Msg, wParam, lParam );
   end;
end;

Обработка сообщения WM_SETFOCUS сделана для того, чтобы передавать фокус ввода текстовому полю каждый раз, когда форма становится активной. С сообщением WM_COMMAND мы уже знакомы. Если наше текстовое поле (LoWord(wParam)=EditID) послало сообщение, что его содержимое изменилось (HiWord(wParam)=EN_CHANGE), то мы отображаем этот текст в поле Static. Используя функцию GetWindowTextLength, мы узнаем длину текста в окне (handle окна передается в функцию в качестве параметра). Эта функция возвpащает длину текста в байтах, но не включает пустой символ окончания. По этому мы делаем +1. Далее выделяем память, и, воспользовавшись функцией GetWindowText, получаем текст окна. Аналогично, функцией SetWindowText, вставляем полученный текст в нужное окно. И в конце не забываем отчистить память.

На этом все. Удачи в программировании.

.: Пример к данной статье :.
Компоненты:   

Elegant MDI Interface v.4.0

Этот компонент - это новая элегантная реализация старого MDI-интерфейса. Все окна (MDIChild) представляются как кнопки на автоскрівающейся панели. Пользователь может легко переключаться между окнами. Это выглядит очень эффективно.

TmxStatusbar v.1.12

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

ARMenu ToolBar v.1.0

Компонент, похожий на Tool Bar, который отображает ListView со всеми эдементами меню, к которым Вы хотите иметь быстрый доступ при огромных меню.

JRFreeCheckBox v1.0

Множество потомков TCheckBox с различными улучшениями. TJRCheckBox: flat style, многострочный заголовок, OnEnterTextFont; TJRDBCheckBox: flat style, многострочный заголовок, OnEnterTextFont; TJRDBCheckBoxMySQL: мы конвертировали все наши приложения, написанные на Delphi5 для Paradox в MySQL используя Zeos(www.zeoslib.net) компоненты доступа к БД - так как через ODBC/BDE медленно. Единственная проблема "MySQL doesn't have a Boolean/Logical DataType"(в MySQL нет типа Boolean/Logical), в результате мы создали собственный TDBCheckBox компонент работающий с TinyInt или Integer полем, и эмулирует тип Boolean! Использование данного компонента совершенно бесплатно, даже для коммерческих приложений.

ElTree Lite v.3.20

ElTree - уникальная замена стандартных TTreeView, TListView (в режиме Report), CheckListBox и некоторых Grid'ов. ElTree поддерживает множественный выбор столбцов с возможностью переупорядочивания, авторазмер столбцов, мультивыбор, уникод, показывает скрытые и заблокированные элементы, собственные подсказки для каждой ячейки, настраиваемая визуализация для drag-n-drop, полувиртуальный режим и т.д...

TRegCheckBox v.0.1

Потомок TCheckBox. Чтение/запись ключей из/в реестр Windows. Имеет возможность создавать условия, если соответствующие значения (string, integer) были найдены в реестре при чтении.

TNRegView v.1.0

TNRegView - это наследник TTreeView, с помощью которого можно просмотреть реестр Windows, ключи и значения ключей. Использует для поиска рекурсивную процедуру.

MiniReg v.1.03

"Легкая" замена TRegistry - не использует классы и SysUtils. Предназначена для небольших приложений, где не нужна полная функциональность TRegistry (например, для быстрого получения строки или записи простой величины). Поддерживает все типы (REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD и REG_BINARY), добавлены функции Remote Registry и RegEnumKeys(), RegEnumValues(), RegGetAnyString() и RegSetAnyString(), а также поддержка строк по умолчанию.

TLExcel v.1.16

Требуется сделать отчет по данным имеющимся в DBGdid, написав при этом минимум кода? Воспользуйтесь TLExcel - он позволит Вам передать данные из DBGrid в MS Excel ориентируясь на видимые столбцы и сохраняя названия заголовков. После создания отчета компонент вернет Вам OLEVariant с объектом WorkSheet.

EK RTF Report for Delphi v.2.01

EK RTF Report даёт возможность использовать всю мощь MS Word или других редакторов RTF для создания, предосмотра, редактирования и печати отчётов из приложений Delphi. Использование: создаётся шаблон отчёта сохраняется в RTF-формате подготавливаются данные генерируется отчёт путём использования TEkRTF. Основные особенности: визуальный дизайнер шаблонов с использованием всех особенностей MS Word; работа с любыми типами данных.

FlexCel Component Suite v.2.5.2

Компонент для формирования отчетов в виде Excel-файлов на основе шаблонов из БД или переменных. Содержит встроенный API для непосредственного доступа к файлам Excel. Возможности: Создает xls-файлы собственными методами без использования OLE и dll-файлов, либо посредством OLE-автоматизации. В случае создания файлов собственными методами шаблон может храниться в exe-файле, что исключает необходимость в дополнительных файлах в дистрибутиве. Поддерживается запись изображений/комментариев/диаграмм и почти полностью все возможности Excel 2000 в native и OLE режимах. (Запись изображений не поддерживается в OLE, но зато можно включить любое их кол-во в шаблон.) Сохранение в HTML-файле (только в OLE режиме).


Исходники:   

VoiceCommander v1.0

VoiceCommander v1.0 - это программка, предназначенная для открытия файлов, папок, сайтов при помощи голоса, для этого вам конечно же понадобиться микрофон. Алгоритм распознавания основывается на функции Левенштейна. Программа была создана еще в 2004 году, поэтому для ознакомления была выложена на сайт, новую же версию со значительными изменениями и улучшениями (в частности алгоритм распознавания) можно получить по адресу: sgcompany@mail.ru. Вообщем качайте, пользуйтесь улучшайте, ну и не забывайте присылать свои вопросы на мой ящик.

Winhider

Программа позволяет прятать и отображать все видимые (невидимые) окна, защищать паролем их отображение (по надобности). Есть поддержка горячих клавиш (скрытие активного окна, скрытие значка Winhider из трея и т.д.). Написано на WinApi. Полезно когда играешь в Героев и "раптом заходе ШЕФ!" :) А также когда нужно спрятать что-то , что другим видеть не положено.

Финансовый калькулятор

Пример финансового калькулятора

Калькулятор

Пример простого калькулятора

DelMe

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


Книги:  

Delphi 5. Руководство разработчика

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

Программирование в Delphi глазами хакера  размер файла 4.2 мб

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

Книги Кнута

Искусство программирования. Том 1. Основные алгоритмы

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

Искусство программирования. Том 2. Получисленные алгоритмы.

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

Искусство программирования. Том 3. Сортировка и поиск.

В третьем издании третьего тома содержится полный обзор классических алгоритмов сортировки и поиска. Представленная в нем информация дополняет приведенное в первом томе обсуждение структур данных. Автор рассматривает принципы построения больших и малых баз данных, а также внутренней и внешней памяти. В книге приведена подборка тщательно проверенных компьютерных алгоритмов и представлен анализ их эффективности. Кроме того, специальный раздел посвящен методам оптимальной сортировки и описанию новой теории перестановки и универсального хэширования. По замыслу автора в новую серию книг `Искусство программирования` должно входить 7 томов, на написание которых потребуется порядка 20 - ти лет. Первые три тома этой серии вышли в 1998 году в издательстве Addison Wesley Longman. Их мы и предлагаем вашему вниманию.

Книга для online чтения:

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


Справочники:   

Большой Faq по Delphi

"Советы по Delphi" - коллекция ответов на нетрадиционные вопросы программирования на Delphi, нестандартных решений, хитростей и интересных идей. Для практической пользы дела приведены конкретные примеры кода, позволяющие донести идею или полностью ответить на заданный вопрос.

Сборник советов по Delphi для начинающих

60 вопросов по Delphi

Коды ошибок BDE

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

Коллекции статей

Соборник статей 1   Соборник статей 2   Соборник статей 3

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


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

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


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

Сенсационное известие! Windows спасает мир! Как сообщил режиссер "День независимости": главный герой установил на компьютер инопланетян...WINDOWS-98 SE!


- Как зовут собаку Гейтса? 
- Собаку Гейтса зовут БИЛЛ!!!


- Сколько нужно сотрудников службы поддержки компании MicroSoft, чтобы заменить лампочку?
- Четыре.
1й - чтобы узнать регистрационный номер лампочки.
2й - чтобы спросить: "А вы перезагрузиться пробовали?"
(поясняю: выключатель включить/выключить)
3й - чтобы спросить: "А вы пробовали ее переустановить?"
и 4й, чтобы сказать: "Это у вас что-то с железом. У нас в офисе лампочка работает отлично!"


Молодая жена Билла Гейтса говорит ему после первой брачной ночи: 
- Теперь я знаю, почему ты назвал свою фирму Microsoft!


Новый русский пришел в компьютерную фирму - надо к Инету подключится. Ему продали компьютер, модем, и.т.д... и говорят, мол, как все установите - звоните провайдеру - и все... На следующий день в фирму влавливается НР и куча головорезов: 
- Где тут провайдер??? 
- А в чем дело? (испуганно) 
- Да мы с братвой все сделали, звоним этой падле, провайдеру, а он: - шшшшш-ссс-сщ-щщщщ....


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


- Это у вас струйный принтер? 
- Да. 
- А сколько у него струй? 


Идёт геймер мимо дома. 
Сверху вдруг падает кирпич. 
- Тетрис! - подумал он и пошел себе дальше. 


Hаpодная пpимета: Если пpогpаммист в pабочее вpемя игpает, значит - либо y него мало pаботы и большая заpплата, либо y него много pаботы и маленькая заpплата. 



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

Рассылки Subscribe.Ru
Программирование на 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
Отписаться
Вспомнить пароль

В избранное