Базовые навыки разработки DELPHI от наших предков
Сборник: Арендаторы Источник: Монополия Форум
◇[DELPHI] Копирование файлов из сетевого окружения
использует шеллапи;
copyfile(pchar('newfile.txt'),pchar('//имя компьютера/направление/targer.txt'),false);
◇[DELPHI] создает эффект перетаскивания мышью.
Реализуется через событие MouseMove, событие DragOver, событие EndDrag, например LABEL на PANEL:
вар xpanel, ypanel, xlabel, ylabel: целое число;
Событие MouseMove PANEL: xpanel:=x;ypanel:=y;
Событие PANEL DragOver: xpanel:=x;ypanel:=y;
Событие MouseMove LABEL: xlabel:=x;ylabel:=y;
Событие EndDrag LABEL: label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;
◇[DELPHI] Получить каталог WINDOWS
использует шеллапи;
var Windir: массив [0..255] символов;
getwindowsdirectory(windir,sizeof(windir));
Или прочитайте из реестра, расположение:
HKEY_LOCAL_MACHINE/Программное обеспечение/Microsoft/Windows/CurrentVersion
Ключ SystemRoot, полученный как: C:/WINDOWS.
◇[DELPHI] Рисование линий в FORM или других контейнерах.
var x,y:массив [0..50] целых чисел;
Canvas.pen.color:=clred;
Canvas.pen.style:=PSDash;
form1.canvas.moveto(trunc(x[i]),trunc(y[i]));
form1.canvas.lineto(trunc(x[j]),trunc(y[j]));
◇[DELPHI] использование списка строк
вар советы: tstringlist;
советы:=tstringlist.create;
подсказки.loadfromfile('filename.txt');
edit1.text:=советы[0];
Tips.add('строка добавления последней строки');
подсказки.insert(1,'вставьте строку в строку № 2');
советы.savetofile('newfile.txt');
советы.бесплатно;
◇[DELPHI]Простое управление буфером обмена
richedit1.selectall;
richedit1.copytoclipboard;
richedit1.cuttoclipboard;
edit1.pastefromclipboard;
◇[DELPHI] Об операциях с файлами и каталогами
Chdir('c:/abcdir');Перейти в каталог
Mkdir('dirname');Создать каталог
Rmdir('имя_каталога');
GetCurrentDir;//Получить имя текущего каталога без '/'
Getdir(0,s);//Получаем имя рабочего каталога s:='c:/abcdir';
Deletfile('abc.txt');//Удалить файл
Renamefile('old.txt','new.txt'); //переименование файла
ExtractFilename(filelistbox1.filename);//Получаем имя файла
ExtractFileExt(filelistbox1.filename);//Получаем суффикс файла
◇[DELPHI] Обработка атрибутов файла
attr:=filegetattr(filelistbox1.filename);
if (attr и faReadonly)=faReadonly then ... //только чтение
if (attr и faSysfile)=faSysfile then ... //система
if (attr и faArchive)=faArchive then ... //Архивировать
if (attr и faHidden)=faHidden then ... //Скрыть
◇[DELPHI]Выполнение файлов вне программы
WINEXEC//Вызов исполняемого файла
Winexec('command.com /c copy *.* c:/',SW_Normal);
Winexec('запустить abc.txt');
ShellExecute или ShellExecuteEx//Запуск программы ассоциации файлов
функция выполнения файла (константное имя файла, параметры, defaultDir: строка; showCmd: целое число): THandle;
ExecuteFile('C:/abc/a.txt','x.abc','c:/abc/',0);
ExecuteFile('http://tingweb.yeah.net','','',0);
ExecuteFile('mailto:[email protected]','','',0);
◇[DELPHI] Получите имя процесса, запущенного в системе.
var hCurrentWindow:HWnd;szText:array[0..254] of char;
начинать
hCurrentWindow:=Getwindow(дескриптор,GW_HWndFrist);
пока hCurrentWindow <> 0 делаю
начинать
если Getwindowtext(hcurrnetwindow,@sztext,255)>0, то listbox1.items.add(strpas(@sztext));
hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext);
конец;
конец;
◇[DELPHI]О встраивании сборок
Асм Энд;
EAX, ECX и EDX могут быть изменены по желанию; ESI, EDI, ESP, EBP и EBX не могут быть изменены.
◇[DELPHI]О функции преобразования типов
FloatToStr//Из числа с плавающей запятой в строку
FloatToStrF//Отформатировал плавающую точку в строку
IntToHex//Целое число в шестнадцатеричное
ТаймеТоСтр
Датетостр
Датетиметостр
FmtStr//Вывести строку в указанном формате
FormatDateTime('ГГГГ-ММ-ДД,чч-мм-сс',ДАТА);
◇[DELPHI]Строковые процедуры и функции
Insert(obj,target,pos);//Цель строки вставляется в позицию pos. Если результат вставки превышает максимальную длину цели, лишние символы будут обрезаны. Если Pos находится за пределами 255, произойдет ошибка времени выполнения. Например, st:='Brian', а затем Insert('OK',st,2) превратит st в 'BrOKian'.
Delete(st,pos,Num);//Удалить подстроку из Num (целых) символов, начиная с позиции pos (целого числа) в строке st. Например, st:='Brian', тогда Delete(st,3,2) станет Brn.
Str(value,st);//Преобразуем числовое значение (целое или вещественное) в строку и помещаем его в st. Например, когда a=2,5E4, str(a:10,st) сделает значение st равным «25000».
Val(st,var,code);//Преобразуем строковое выражение st в соответствующее целое или действительное значение и сохраняем его в var. St должна быть строкой, представляющей числовое значение и соответствовать правилам для числовых констант. В процессе преобразования, если ошибка не обнаружена, код переменной устанавливается в 0, в противном случае ему присваивается позиция первого символа ошибки. Например, st:=25.4E3, x — действительная переменная, тогда val(st,x,code) сделает значение X 25400, а значение кода — 0.
Copy(st.pos.num);//Возвращает подстроку, начинающуюся с позиции pos (целое число) в строке st и содержащую число (целое число) символов. Если pos больше длины строки st, будет возвращена пустая строка. Если pos находится за пределами 255, произойдет ошибка времени выполнения. Например, st:='Brian', а затем Copy(st,2,2) возвращает 'ri'.
Concat(st1,st2,st3...,stn);//Объединяем строки, представленные всеми независимыми переменными в заданном порядке, и возвращаем объединенное значение. Если длина результата равна 255, произойдет ошибка времени выполнения. Например, st1:='Брайан',st2:=' ',st3:='Уилфред', тогда Concat(st1,st2,st3) возвращает 'Брайан Уилфред'.
Длина(st);//Возвращает длину строкового выражения st. Например, st:='Brian', возвращаемое значение длины(st) равно 5.
Pos(obj,target);//Возвращает позицию, где строка obj впервые появляется в целевой строке target. Если у цели нет соответствующей строки, возвращаемое значение функции Pos равно 0. Например, target:='Brian Wilfred', тогда возвращаемое значение Pos('Wil',target) равно 7, а возвращаемое значение Pos('hurbet',target) равно 0.
◇[DELPHI]Об работе с реестром
использует реестр;
вар reg:Tregistry;
reg:=Tregistry.create;
reg.rootkey:='HKey_Current_User';
reg.openkey('Панель управления/Рабочий стол',false);
reg.WriteString('Название обоев','0');
reg.writeString('Обои',filelistbox1.filename);
reg.closereg;
рег.бесплатно;
◇[DELPHI]Об именах констант клавиатуры
VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE
/VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN
F1--F12: 70(112)-7 миллиардов долларов(123)
Аризона: 41 доллар США (65) -- 5 долларов США (90 долларов США).
0-9: 30 долларов США (48) -- 39 долларов США (57)
◇[DELPHI]Предварительно определите родной язык программы
Подсказка DOS программного обеспечения DELPHI: Эту программу необходимо запускать под Win32.
Подсказка DOS для программного обеспечения VC++: Эту программу невозможно запустить в режиме DOS.
◇[DELPHI]Рабочие файлы cookie
response.cookies("имя").domain:='http://www.086net.com';
с помощью response.cookies.add сделайте
начинать
имя:='имя пользователя';
значение: = 'имя пользователя';
конец
◇[DELPHI] добавлен в ссылку меню документа.
использует шеллапи, shlOBJ;
shAddToRecentDocs(shArd_path,pchar(filepath));//Добавляем соединение
shAddToRecentDocs(shArd_path,nil);//Очистить
◇[Разное] Резервное копирование интеллектуального словаря методов ввода ABC
окна/система/user.rem
окна/система/tmmr.rem
◇[DELPHI] Определение кнопок мыши
if GetAsyncKeyState(VK_LButton)<>0 then ... //Кнопка влево
если GetAsyncKeyState(VK_MButton)<>0, то ... //средний ключ
если GetAsyncKeyState(VK_RButton)<>0, то ... //щелкните правой кнопкой мыши
◇[DELPHI]Установить максимальное отображение формы
событие onFormCreate
self.width:=screen.width;
self.height:=screen.height;
◇Кнопка [DELPHI] для приема сообщений
Обрабатывается в событии OnCreate: application.OnMessage:=MyOnMessage;
процедура TForm1.MyOnMessage(var MSG:TMSG;var Handle:Boolean);
начинать
если msg.message=256, то ... //ЛЮБОЙ ключ
если msg.message=112, то ... //F1
если msg.message=113, то ... //F2
конец;
◇[Разное]Скрыть общие папки
Эффект совместного использования: доступен, но невидим (в управлении ресурсами, Network Neighborhood)
Назовите акцию: направление$
Посетите: //компьютер/направление/
◇[java Script] Часто используемые эффекты на веб-страницах Java Script.
Веб-страница будет закрыта через 60 секунд.
<script Language="Java script"><!--
settimeout('window.close();',60000)
--></скрипт>
закрыть окно
<a href="/" onclick="Javascript:window.close();return false;">Закрыть</a>
Передача URL по расписанию
<meta http-equiv="refresh" content="40;url=http://www.086net.com">
Сделать домашней страницей
<a onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://086net.com');"href="#">Установить в качестве домашней страницы</a>
Добавить этот сайт в закладки
<a href="javascript:window.external.addfavorite('http://086net.com','[无名pier]')">Добавить этот сайт в избранное</a>
Присоединиться к каналу
<a href="javascript:window.external.addchannel('http://086net.com')">Добавить канал</a>
◇[DELPHI]Редактирование текста
checkbox1.checked:=не checkbox1.checked;
если checkbox1.checked, то richedit1.font.style:=richedit1.font.style+[fsBold] else richedit1.font.style:=richedit1.font.style-[fsBold]//bold
если checkbox1.checked, то richedit1.font.style:=richedit1.font.style+[fsItalic] else richedit1.font.style:=richedit1.font.style-[fsItalic]//italic
если checkbox1.checked, то richedit1.font.style:=richedit1.font.style+[fsUnderline] else richedit1.font.style:=richedit1.font.style-[fsUnderline]//подчеркивание
memo1.alignment:=taLeftJustify;//Влево
memo1.alignment:=taRightJustify;//право
memo1.alignment:=taCenter;//По центру
◇[DELPHI] Генерация цвета текста случайным образом.
рандомизировать;//случайное начальное число
memo1.font.color:=rgb(случайный(255),случайный(255),случайный(255));
◇[DELPHI]Серийный номер патча обновления DELPHI5 UPDATE
1000003185
90X25fx0
◇[DELPHI]Недопустимая фильтрация символов в именах файлов.
для i:=1 до длины (длин) сделайте
если s[i] в ['/','/',':','*','?','<','>','|'] тогда
◇[DELPHI]Определение и описание функции преобразования.
datetimetofiledate (datetime:Tdatetime):longint Преобразует значение даты и времени в формате Tdatetime в значение даты и времени в формате DOS;
datetimetostr (datetime:Tdatetime):string; Преобразуйте переменную формата Tdatatime в строку. Если параметр datetime не содержит значения даты, возвращаемая строка будет отображаться как 00/00/00. параметр datetime, возвращаемая строка будет: Часть времени отображается как 00:00:00 AM.
datetimetostring (строка результата var;
константный формат: строка;
datetime:Tdatetime); Преобразование значений времени и даты в соответствии с заданной строкой формата, результатом является строка результата, форматом является строка формата преобразования, datetime — значение даты и времени.
datetostr (date:Tdatetime) использует строку формата, определенную глобальной переменной shortdateformat, для преобразования параметра даты в соответствующую строку.
floattodecimal (результат var: Tfloatrec; значение:
расширенный; точность, десятичные числа:
целое число); Преобразовать число с плавающей запятой в десятичное представление.
floattostr (value:extended):string Преобразует значение с плавающей запятой в строковый формат. При этом преобразовании используется обычный числовой формат, а эффективное количество преобразованных цифр равно 15.
floattotext (буфер:pchar;значение:расширенное;
формат:Tfloatformat;точность,
digits:integer):integer; Используйте заданный формат, точность и десятичное число для преобразования значения значения с плавающей запятой в десятичное представление. Результат преобразования сохраняется в параметре буфера. Возвращаемое значение функции — это количество символов, хранящихся в буфере. Буфер не является строковым буфером с нулевыми результатами.
floattotextfmt (буфер:pchar;значение:расширенное;
format:pchar):integer Используйте данный формат для преобразования значения с плавающей запятой в десятичное представление. Результат преобразования сохраняется в параметре буфера. Возвращаемое значение функции — это количество символов, хранящихся в буфере.
intttohex (значение: longint; цифры: целое число):
строка Преобразует заданное числовое значение в шестнадцатеричную строку; Параметр digits указывает количество цифр, содержащихся в строке результата преобразования.
inttostr (value:longint):string преобразует целое число в десятичную строку.
strtodate (const S:string):Tdatetime Преобразует строку в значение даты. S должно содержать строку даты допустимого формата.
strtodatetime (const S:string):Tdatetime Преобразует строку S в формат даты и времени, S должен иметь формат ММ/ДД/ГГ ЧЧ:ММ:СС[AM|PM], где разделители даты и времени такие же, как системный период. Постоянная времени Связана с настройкой. Если информация AM или PM не указана, используется 24-часовой формат времени.
strtofloat (const S:string):extended; Преобразуйте данную строку в число с плавающей запятой. Строка имеет следующий формат:
[+|-]ннн…[.]ннн…[<+|-><E|e><+|->нннн]
strtoint (const S:string):longint Преобразует числовую строку в целое число. Строка может быть в десятичном или шестнадцатеричном формате. Если строка не является допустимой числовой строкой, система сгенерирует исключение ECONVERTERROR.
strtointdef (const S:string;по умолчанию:
longint):longint; Преобразуйте строку S в число. Если S не удается преобразовать в число, функция strtointdef возвращает значение параметра по умолчанию.
strtotime (const S:string):Tdatetime Преобразует строку S в значение TDATETIME. S имеет формат HH:MM:SS[AM|PM].
timetostr (time:Tdatetime):string; Преобразовать параметр TIME в строку. Формат строки результата преобразования связан с настройкой системных констант, связанных со временем.
◇Программа [DELPHI] не отображается при нажатии ALT+CTRL+DEL.
Добавьте декларацию после реализации:
функция RegisterServiceProcess (dwProcessID, dwType: Integer): Integer external 'KERNEL32.DLL';
RegisterServiceProcess(GetCurrentProcessID, 1);//Скрыть
RegisterServiceProcess(GetCurrentProcessID, 0);//Отображение
Невидимый с ALT+DEL+CTRL
◇Программа [DELPHI] не отображается на панели задач
использует окна
вар
Расширенный стиль: целое число;
начинать
Приложение.Инициализировать;
//============================================== ==============
ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle ИЛИ WS_EX_TOOLWINDOW
И НЕ WS_EX_APPWINDOW);
//============================================== ===============
Приложение.CreateForm(TForm1, Form1);
Приложение.Выполнить;
конец.
◇[DELPHI]Как определить, включена или выключена коммутируемая сеть
если GetSystemMetrics(SM_NETWORK) И $01 = $01, то
showmessage('Онлайн!')
else showmessage('Не онлайн!');
◇[DELPHI]Преобразовать IP в доменное имя
функция GetDomainName(Ip:string):string;
вар
pH:PHostent;
данные: twsadata;
ii: dWord;
начинать
WSAStartup($101, Данные);
ii:=inet_addr(pchar(ip));
pH:=gethostbyaddr(@ii,sizeof(ii),PF_INET);
если (ph<>nil), то
результат:=pH.h_name
еще
результат:='';
ВСАКлеануп;
конец;
◇[DELPHI] Как бороться с «меню, вызываемым правой кнопкой мыши»
вар
рег: TRegistry;
начинать
reg:= TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('*/shell/check/command', true);
reg.WriteString('', '"' + application.ExeName + '" "%1"');
reg.CloseKey;
reg.OpenKey('*/shell/diary', false);
reg.WriteString('', 'Операция(&C)');
reg.CloseKey;
рег.Бесплатно;
showmessage('ГОТОВО!');
конец;
◇[DELPHI]Отправить значение виртуального ключа ctrl V
процедура отправки;
начинать
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0);
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), 0, 0);
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0);
конец;
◇[DELPHI]Буква текущего оптического привода.
процедура getcdrom(var cd:char);
вар
ул: строка;
драйверы: целое число;
драйвер: char;
я, темп: целое число;
начинать
драйверы:=getologicdrives;
temp:=(1 и драйверы);
для i:= от 0 до 26 сделать
начинать
если температура=1, то
начинать
драйвер:=char(i+integer('a'));
ул:=драйвер+':';
если getdrivetype(pchar(str))=drive_cdrom, то
начинать
компакт-диск: = драйвер;
Выход;
конец;
конец;
драйверы:=(драйверы шр 1);
temp:=(1 и драйверы);
конец;
конец;
◇[DELPHI]Шифрование и расшифровка символов
функция cryptstr(const s:string; stype: dword):string;
вар
я: целое число;
fkey: целое число;
начинать
результат:='';
тип корпуса
0: установить пропуск;
начинать
рандомизировать;
fkey:= случайный($ff);
для i:=1 до длины (длин) сделайте
результат:= результат+chr( ord(s[i]) xor i xor fkey);
результат: = результат + символ (fkey);
конец;
1: получить пропуск
начинать
fkey := ord(s[длина(ы)]);
для i:=1 до длины (длин) - 1 сделать
результат:= результат+chr( ord(s[i]) xor i xor fkey);
конец;
конец;
□◇[DELPHI] Отправка смоделированных ключей в другие приложения.
вар
ч:ТРучка;
начинать
h := FindWindow(nil, 'Название приложения');
PostMessage(h, WM_KEYDOWN, VK_F9, 0);//Отправить клавишу F9
конец;
□◇[DELPHI] Формат данных DAO, поддерживаемый DELPHI.
td.Fields.Append(td.CreateField('dbBoolean',dbBoolean,0));
td.Fields.Append(td.CreateField('dbByte',dbByte,0));
td.Fields.Append(td.CreateField('dbInteger',dbInteger,0));
td.Fields.Append(td.CreateField('dbLong',dbLong,0));
td.Fields.Append(td.CreateField('dbCurrency',dbCurrency,0));
td.Fields.Append(td.CreateField('dbSingle',dbSingle,0));
td.Fields.Append(td.CreateField('dbDouble',dbDouble,0));
td.Fields.Append(td.CreateField('dbDate',dbDate,0));
td.Fields.Append(td.CreateField('dbBinary',dbBinary,0));
td.Fields.Append(td.CreateField('dbText',dbText,0));
td.Fields.Append(td.CreateField('dbLongBinary',dbLongBinary,0));
td.Fields.Append(td.CreateField('dbMemo',dbMemo,0));
td.Fields['ID'].Set_Attributes(dbAutoIncrField);//Поле автоинкремента
□◇[DELPHI]DELPHI настройка MS SQL 7 и шагов BDE
Первым шагом является настройка ODBC:
Сначала настройте источник данных в ODBC. После установки SQL Server7.0 в «Системном DSN» в ODBC должно быть два элемента.
Источники данных: один — MQIS, другой — LocalSever. Выберите любой и нажмите кнопку «Настроить». Я не знаю ваш SQL7.0.
Установлен ли он на локальном компьютере? Если да, переходите непосредственно к следующему шагу. Если нет, заполните столбец «Сервер».
Сервер, затем перейдите к следующему шагу и введите идентификатор входа и пароль (идентификатор входа и пароль являются параметрами пользователя в SQL7.0).
расположен в центре).
Второй шаг — настройка BDE:
Откройте BDE Delphi и нажмите MQIS или LocalServer. Вам будет предложено ввести имя пользователя и пароль. Это то же самое, что и.
Имя пользователя и пароль ODBC одинаковы, просто введите их.
Третий шаг — настройка программы:
Если вы используете TTable, выберите MQIS или LocalServer в поле DatabaseName TTable, а затем
Просто выберите «Продажа» в «Имя таблицы», затем измените «Активный» на «Истина», после чего появится диалоговое окно с подсказкой и введите имя пользователя.
имя и пароль.
Если вы используете TQuery, щелкните правой кнопкой мыши TQuery и выберите «SQL Builder». Это настраивается через интерфейс.
Оператор SQL или заполните оператор SQL в SQL TQuery. Наконец, не забудьте изменить Active на True.
Также можно настроить TQuery во время работы, подробности см. в справке Delphi.
□◇[DELPHI] Получить значение RGB определенной точки изображения.
процедура TForm1.Image1MouseDown(Отправитель: TObject; Кнопка: TMouseButton;
Сдвиг: TShiftState; X, Y: целое число);
вар
красный, зеленый, синий: байт;
я: целое число;
начинать
я:= image1.Canvas.Pixels[x,y];
Синий: = GetBValue(i);
Зеленый:= GetGValue(i):
Красный: = GetRValue(i);
Label1.Caption:=inttostr(Red);
Label2.Caption:=inttostr(Зеленый);
Label3.Caption:=inttostr(Blue);
конец;
□◇[DELPHI]О разложении и преобразовании формата даты
вар год, месяц, день: слово; now2: Tdatatime;
now2:=дата();
decodedate(сейчас2,год,месяц,день);
lable1.Text :=inttostr(год)+'год'+inttostr(месяц)+'месяц'+inttostr(день)+'день';
◇[DELPHI]Как определить текущий режим сетевого подключения
Результатом определения является режим МОДЕМа, локальной сети или прокси-сервера.
использует Wininet;
Функция ConnectionKind :boolean;
флаги вар: dword;
начинать
Результат:= InternetGetConnectedState(@flags, 0);
если Результат, то
начинать
если (флаги и INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM, то
начинать
showmessage('Модем');
конец;
если (флаги и INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN, то
начинать
showmessage('LAN');
конец;
если (флаги и INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY, то
начинать
showmessage('Прокси');
конец;
если (флаги и INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY, то
начинать
showmessage('Модем занят');
конец;
конец;
конец;
◇[DELPHI]Как определить, является ли строка действительным адресом EMAIL
функция IsEMail(EMail: String): логическое значение;
var s: String;ETpos: Integer;
начинать
ETpos:= pos('@', EMail);
если ETpos > 1, то
начинать
s:= copy(EMail,ETpos+1,Length(EMail));
если (pos('.', s) > 1) и (pos('.', s) < длина(s)) то
Результат:= true else Результат:= false;
конец
еще
Результат: = ложь;
конец;
◇[DELPHI] Определить, подключена ли система к ИНТЕРНЕТУ.
Необходимо добавить функцию InetIsOffline в URL.DLL.
Объявление функции:
функция InetIsOffline (флаг: целое число): логическое значение stdcall; внешний 'URL.DLL';
Затем вы можете вызвать функцию, чтобы определить, подключена ли система к ИНТЕРНЕТУ.
если InetIsOffline(0), то ShowMessage('не подключено!')
еще ShowMessage('подключено!');
Эта функция возвращает TRUE, если локальная система не подключена к ИНТЕРНЕТУ.
Прикрепил:
В большинстве систем с IE или OFFICE97 эта DLL доступна для вызова.
InetIsOffline
BOOL InetIsOffline(
DWORD dwFlags,
);
◇[DELPHI]Легкое воспроизведение и приостановка файлов WAV.
использует ммсистему;
функция PlayWav(const FileName: string): Boolean;
начинать
Результат: = PlaySound(PChar(FileName), 0, SND_ASYNC);
конец;
процедура StopWav;
вар
буфер: массив [0..2] символов;
начинать
буфер[0] := #0;
PlaySound (Буфер, 0, SND_PURGE);
конец;
◇[DELPHI] Получить информацию о BIOS машины
с Memo1.Lines сделать
начинать
Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061))));
Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091))));
Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5))));
Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71))));
конец;
◇[DELPHI] Загрузка файлов из Интернета
использует UrlMon;
функция DownloadFile(Источник, Назначение: строка): Boolean;
начинать
пытаться
Результат: = UrlDownloadToFile(ноль, PChar(источник), PChar(Dest), 0, ноль) = 0;
кроме
Результат: = Ложь;
конец;
конец;
если DownloadFile('http://www.borland.com/delphi6.zip, 'c:/kylix.zip'), то
ShowMessage('Загрузка успешна')
else ShowMessage('Загрузка не удалась')
◇[DELPHI]Определить IP-адрес сервера
использует WinSock
функция IPAddrToName(IPAddr: String): String;
вар
СокАддрИн: TSockAddrIn;
ХостEnt: PHostEnt;
ВСАДата: TWSAData;
начинать
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
если HostEnt<>nil, то result:=StrPas(Hostent^.h_name) else result:='';
конец;
◇[DELPHI] Получите соединение с помощью ярлыка
функция ExeFromLink(const linkname: string): строка;
вар
ФДир,
Имя,
ExeName: PChar;
г: целое число;
начинать
ExeName:= StrAlloc(MAX_PATH);
FName:= StrAlloc(MAX_PATH);
FDir:= StrAlloc(MAX_PATH);
StrPCopy(FName, ExtractFileName(имя ссылки));
StrPCopy(FDir, ExtractFilePath(имя ссылки));
z:= FindExecutable(FName, FDir, ExeName);
если z > 32, то
Результат: = StrPas(ExeName)
еще
Результат:= '';
StrDispose(FDir);
StrDispose(FName);
StrDispose(ExeName);
конец;
◇[DELPHI]Управление автоматическим завершением TCombobox
{Свойству TCombobox 'Sorted' присвоено значение true }
вар LastKey: Word; // глобальная переменная;
//Событие OnChange TCombobox
процедура TForm1.AutoCompleteChange(Отправитель: TObject);
вар
ПоискСтрока: строка;
ретвал: целое число;
начинать
SearchStr := (Отправитель как TCombobox).Text;
если LastKey <> VK_BACK, то // возврат: VK_BACK или $08
начинать
retVal := (Отправитель как TCombobox).Perform(CB_FINDSTRING, -1, LongInt(PChar(SearchStr)));
если retVal > CB_Err, то
начинать
(Отправитель как TCombobox).ItemIndex := retVal;
(Отправитель как TCombobox).SelStart := Длина(SearchStr);
(Отправитель как TCombobox).SelLength :=
(Длина((Отправитель как TCombobox).Text) - Длина(SearchStr));
конец // retVal > CB_Err;
конец // LastKey <> VK_BACK;
LastKey := 0 // сброс последнего ключа;
конец;
//Событие OnKeyDown TCombobox
процедура TForm1.AutoCompleteKeyDown (Отправитель: TObject; Ключ var: Word;
Сдвиг: TShiftState);
начинать
последнийКей := Ключ;
конец;
◇[DELPHI]Как очистить каталог
функция EmptyDirectory(TheDirectory:String; Recursive: Boolean):
логическое значение;
вар
Поискрек: TSearchRec;
Рез: целое число;
начинать
Результат: = Ложь;
TheDirectory := NormalDir(TheDirectory);
Res := FindFirst(TheDirectory + '*.*', faAnyFile, SearchRec);
пытаться
пока Res = 0, делайте
начинать
если (SearchRec.Name <> '.') и (SearchRec.Name <> '..'), то
начинать
if ((SearchRec.Attr и faDirectory) > 0) и рекурсивный
тогда начни
EmptyDirectory(TheDirectory + SearchRec.Name, True);
RemoveDirectory(PChar(TheDirectory + SearchRec.Name));
конец
еще начать
УдалитьФайл(PChar(TheDirectory + SearchRec.Name))
конец;
конец;
Res := FindNext(SearchRec);
конец;
Результат: = Истина;
окончательно
FindClose(SearchRec.FindHandle);
конец;
конец;
◇[DELPHI]Как рассчитать размер каталога
функция GetDirectorySize (const ADirectory: string): Integer;
вар
Реж: TSearchRec;
Ret: целое число;
Путь: строка;
начинать
Результат:= 0;
Путь: = ExtractFilePath(ADirectory);
Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);
если Ret <> NO_ERROR, то выйти;
пытаться
пока ret=NO_ERROR делайте
начинать
вкл (Результат, Размер каталога);
если (Dir.Attr в [faDirectory]) и (Dir.Name[1] <> '.'), то
Inc(Result, GetDirectorySize(Путь + Имя каталога + '/*.*'));
Ret := Sysutils.FindNext(Dir);
конец;
окончательно
Sysutils.FindClose(Dir);
конец;
конец;
◇[DELPHI]Как добавить установщик в список удаления
Работайте с реестром следующим образом:
1. Создайте первичный ключ под ключом HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall с любым именем.
ПримерHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/MyUninstall
2. Введите два строковых значения в разделе HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/MyUnistall.
Имена этих двух строковых значений специфичны: DisplayName и UninstallString.
3. Присвойте значение строки DisplayName имени, отображаемому в «Списке удаления приложений», например «Нацеливание на удаление одного»;
Назначьте строку UninstallString выполняемой команде удаления, например C:/WIN97/uninst.exe -f "C:/TestPro/aimTest.isu"
◇[DELPHI]Перехвачено сообщение WM_QUERYEND о завершении сеанса
тип
ТФорм1 = класс (ТФорма)
процедура WMQueryEndSession (вар Сообщение: TWMQueryEndSession); сообщение WM_QUERYENDSESSION;
процедура CMEraseBkgnd (var Сообщение: TWMEraseBkgnd); Сообщение WM_ERASEBKGND;
частный
{Частные заявления}
общественный
{Публичные заявления}
конец;
процедура TForm1.WMQueryEndSession(var Сообщение: TWMQueryEndSession);
начинать
Showmessage('компьютер скоро выключится');
конец;
◇[DELPHI]Найдите соседей онлайн
процедура getnethood();//В качестве сервера используется NT, а отладка проходила на WIN98.
вар
а, я: целое число;
код ошибки: целое число;
netres:array[0..1023] сетевых ресурсов;
enumhandle: тандель;
перечисления: dword;
размер буфера: двойное слово;
с: строка;
мой список: tlistitems;
мойлиститем: тлиститем;
alldomain: tstrings;
начало //listcomputer — это список всех компьютеров; controlcenter — это форма.
alldomain:=tstringlist.Create;
с netres[0] начнём
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_ANY;
dwdisplaytype:=RESOURCEDISPLAYTYPE_DOMAIN;
dwusage:=RESOURCEUSAGE_CONTAINER;
lplocalname: = ноль;
lpremotename: = ноль;
lpcomment: = ноль;
lpprovider: = ноль;
конец // Получаем все поля
errcode:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
если errcode=NO_ERROR, то начните
перечисления:=1024;
размер буфера:=sizeof(netres);
errcode:=wnetenumresource(enumhandle,enumentries,@netres[0],buffersize);
конец;
а:=0;
mylistitems:=controlcenter.lstcomputer.Items;
mylistitems.Очистить;
while (string(netres[a].lpprovider)<>'') и (errcode=NO_ERROR) делают
начинать
alldomain.Add (netres[a].lpremotename);
а:=а+1;
конец;
wnetcloseenum (дескриптор перечисления);
// Получить все компьютеры
mylistitems:=controlcenter.lstcomputer.Items;
mylistitems.Очистить;
для i:=0 для alldomain.Count-1 сделать
начинать
с netres[0] начнём
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_ANY;
dwdisplaytype:=RESOURCEDISPLAYTYPE_SERVER;
dwusage:=RESOURCEUSAGE_CONTAINER;
lplocalname: = ноль;
lpremotename :=pchar(alldomain[i]);
lpcomment: = ноль;
lpprovider: = ноль;
конец;
ErrCode:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],EnumHandle);
если код ошибки = NO_ERROR, то
начинать
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
конец;
а:=0;
while (string(netres[a].lpprovider)<>'') и (errcode=NO_ERROR) делают
начинать
mylistitem :=mylistitems.Add;
мойлиститем.ImageIndex:=0;
mylistitem.Caption :=uppercase(stringreplace(string(NetRes[a].lpremotename),'//','',[rfReplaceAll]));
а:=а+1;
конец;
wnetcloseenum (дескриптор перечисления);
конец;
конец;
◇[DELPHI] Получить общий каталог на определенном компьютере.
процедура getsharefolder(const имя_компьютера:строка);
вар
код ошибки, а: целое число;
netres:array[0..1023] сетевых ресурсов;
enumhandle: тандель;
перечисления, размер буфера: dword;
с: строка;
мой список: tlistitems;
мойлиститем: тлиститем;
моистринги: tstringlist;
начинать
с netres[0] начнём
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_DISK;
dwdisplaytype:=RESOURCEDISPLAYTYPE_SHARE;
dwusage:=RESOURCEUSAGE_CONTAINER;
lplocalname: = ноль;
lpremotename:=pchar(имя компьютера);
lpcomment: = ноль;
lpprovider: = ноль;
конец // Получаем корневой узел;
код ошибки:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
если код ошибки = NO_ERROR, то
начинать
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
конец;
wnetcloseenum (дескриптор перечисления);
а:=0;
mylistitems:=controlcenter.lstfile.Items;
mylistitems.Очистить;
while (string(netres[a].lpprovider)<>'') и (errcode=NO_ERROR) делают
начинать
с mylistitems сделать
начинать
мойлиститем:=добавить;
мойлиститем.ImageIndex:=4;
mylistitem.Caption :=extractfilename(netres[a].lpremotename);
конец;
а:=а+1;
конец;
конец;
◇[DELPHI] Получите серийный номер жесткого диска.
вар SerialNum: pdword; a, b: dword; Буфер: массив [0..255] символов;
начинать
если GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0), то Label1.Caption := IntToStr(SerialNum^);
конец;
◇[DELPHI]Автоматическое перелистывание страниц MEMO
Процедура ScrollMemo(Memo: TMemo; Направление: char);
начинать
направление дела
'д': начать
SendMessage(Memo.Handle, { HWND элемента управления Memo }
WM_VSCROLL, {Сообщение Windows}
SB_PAGEDOWN, {Команда прокрутки}
0) { Не используется }
конец;
'у': начать
SendMessage(Memo.Handle, { HWND элемента управления Memo }
WM_VSCROLL, {Сообщение Windows}
SB_PAGEUP, { Команда прокрутки }
0); {Не используется}
конец;
конец;
конец;
процедура TForm1.Button1Click(Отправитель: TObject);
начинать
ScrollMemo(Memo1,'d'); //страница вверх
конец;
процедура TForm1.Button1Click(Отправитель: TObject);
начинать
ScrollMemo(Memo1,'u'); //Сворачиваем страницу вниз
конец;
◇[DELPHI]Нажмите Enter, чтобы перейти к следующей позиции в DBGrid (клавиша Tab)
процедура TForm1.DBGrid1KeyPress (Отправитель: TObject; Ключ var: Char);
начинать
если Ключ = #13, то
если DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1, то
DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl
еще
начинать
Таблица1.следующий;
DBGrid1.Columns[0].field.FocusControl;
конец;
конец;
◇[DELPHI]Как установить элемент управления
Способ установки:
1. Для одного элемента управления: Компонент --> установить компонент.. --> файл PAS или DCU --> установить.
2. Для пакетов управления с файлами *.dpk: Файл --> открыть (выберите *.dpk в раскрывающемся списке) --> установить.
3. Для управляющих пакетов с файлами *.dpl выберите «Установить пакеты» -> «Добавить» -> «имя файла dpl».
4. Если вышеуказанная кнопка «Установить» недействительна, попробуйте кнопку «Компилировать».
5. Если это библиотека времени выполнения, добавьте ее в пакеты времени выполнения в разделе «Пакеты» в разделе «Параметры».
Если во время компиляции появляется сообщение о том, что файл не найден, обычно это связано с тем, что каталог установки элемента управления не находится в каталоге Lib Delphi. Есть два способа решения проблемы:
1. Скопируйте исходные установочные файлы в каталог Lib Delphi.
2. Или добавьте исходный путь кода элемента управления в каталог Delphi Lib в Инструменты -> Параметры среды.
◇[DELPHI] Полностью удалить каталог (deltree)
процедура TForm1.DeleteDirectory(strDir:String);
вар
ср: TSearchRec;
FileAttrs: целое число;
имя_строки:строка;
стрПт: строка;
начинать
strpth:=Getcurrentdir();
FileAttrs: = faAnyFile;
если FindFirst(strpth+'/'+strdir+'/*.*', FileAttrs, sr) = 0, то
начинать
если (sr.Attr и FileAttrs) = sr.Attr, то
начинать
имя_строки:=sr.Name;
если файл существует(strpth+'/'+strdir+'/'+strfilename), то
deletefile(strpth+'/'+strdir+'/'+strfilename);
конец;
пока FindNext(sr) = 0, делайте
начинать
если (sr.Attr и FileAttrs) = sr.Attr, то
начинать
имя_строки:=sr.name;
если файл существует(strpth+'/'+strdir+'/'+strfilename), то
deletefile(strpth+'/'+strdir+'/'+strfilename);
конец;
конец;
НайтиЗакрыть(ср);
удаленный(strpth+'/'+strdir);
конец;
конец;
◇[DELPHI] Получение информации о строке и столбце текущего курсора элемента управления TMemo в Tpoint.
1.функция ReadCursorPos(SourceMemo: TMemo): TPoint;
вар Точка: TPoint;
начинать
point.y := SendMessage(SourceMemo.Handle,EM_LINEFROMCHAR,SourceMemo.SelStart,0);
point.x:= SourceMemo.SelStart-SendMessage(SourceMemo.Handle,EM_LINEINDEX,point.y,0);
Результат:= Точка;
конец;
2.LineLength:=SendMessage(memol.handle, EM—LINELENGTH, Cpos, 0 //Длина строки);
◇[DELPHI]Чтение серийного номера жесткого диска
функция GetDiskSerial(DiskChar: Char): строка;
вар
СерийныйНомер: pdword;
а, б: двойное слово;
Буфер: массив [0..255] символов;
начинать
результат := "";
Если getVolumeInformation (pchar (diskchar+":/"), buffer, sizeof (buffer), serialnum,
а, б, ноль, 0) тогда
Результат: = inttoStr (serialnum^);
конец;
◇ [Интернет] Общие комплексные навыки CSS
1. P: Первое букву {размер Font: 300%;
2. <Link rel = styleSheet href = "basics.css" title = "contemporary"> // Подключение листа внешнего стиля
3. Встроить лист стиля
<Стиль типа = "text/css" media = screen>
<!-
@import url (http://www.htmlhelp.com/style.css); // Внешне импортировать лист стиля
@import url (/stylesheets/punk.css); // так же, как и выше
Body {founal: url (foo.gif) красный;
.punk {color: lime;
#wdg97 {font-size: больше} // см. 6 для ссылок.
->
</Style>
4. <P style = "color: красный; семейство шрифта: 'New Century Schoolbook', Serif"> // inline Style
<Span style = "font-family: arial"> arial </span> // span принимает атрибуты стиля, класса и идентификатора
<Div class = note> <p> div может содержать параграфы, названия, таблицы и даже другие части </p> </div>
5. <H1 class = punk> атрибут класса </h1> // см. 3 для определения.
6. <P id = wdg97> атрибут ID </p> // См. 3 для определения.
7. Список недвижимости
Стиль шрифта: стиль шрифта: [Нормальный |
Размер шрифта: размер: [xx-small |
Текст-украшение:
Текст Трансформация: Текст: [нет |
Цвет фона: фоновый цвет: [<color> |
Фоновое изображение: изображение фона: [<URLS> |
Линия-высота: [Нормальный |.
Пограничный стиль: [нет |
Плавание: [слева |
8. единица длины
Относительные единицы:
Эм (эм, высота шрифта элемента)
Ex (X-Height, высота буквы «x»)
PX (пиксели, по сравнению с разрешением экрана)
Абсолютная длина:
В (дюйм 1 дюйм = 2,54 сантиметра)
CM (сантиметр, 1 сантиметр = 10 миллиметров)
мм (счетчик)
Pt (точка, 1 точка = 1/72 дюйма)
ПК (PA, 1 PA = 12 баллов)
◇ [delphi] Краткие шаги для создания VCL
1. Создание методов составных атрибутов
(Создать библиотечные единицы, наследовать как новые типы, добавить свойства, методы, события, компоненты регистрации и создать файлы пакетов)
2. Обработка Message
3. Особенность обработки
4. Части видимы
◇ [Delphi] Загрузка библиотеки динамических ссылок
Статическая загрузка: имя процедуры; внешний 'lib.dll';
Динамическая нагрузка: var handle: thandle;
ручка: = LoadLibrary ('lib.dll');
Если ручка <> 0, тогда
начинать
{dosomething}
Фрилибрика (ручка);
конец;
◇ [delphi] указатели переменные и адреса
var x, y: integer; p:^integer; // Указатель на целочисленную переменную
x: = 10;
P: =@x; // Адрес переменной x
y: = p^; // назначить указатель P to y
@@ Процедура // Возвращает адрес памяти переменной процесса
◇ [Delphi] определяет, является ли персонаж китайским символом
Bytetype («Как дела, ха -ха», 1) = mbleadbyte // - первый персонаж
Bytetype («Как дела, ха -ха», 2) = mbtrailbyte // - второй персонаж
Bytetype («Как дела, ха -ха», 5) = mbsinglebyte // Не китайский персонаж
◇ [Delphi] Операция по позиционированию
memo1.lines.delete (0) // Удалить строку 1
Memo1.selstart: = 10 // Найдите 10 байтов
◇ [Delphi] Получить двойной внутренний код символа символа
function getIt (s: string): целое число;
начинать
Результат: = байт (s [1]) * $ 100 + байт (s [2]);
конец;
Использование: getIt ('расчет') // $ bcc6, который десятичный 48326
◇ [Delphi] Вызов добавить процедуру хранения данных
Хранящаяся процедура заключается в следующем:
Создать процедуру addRecord (
record1 varchar (10)
record2 varchar (20)
)
как
начинать
Вставьте в TableName (Field1, Field2) значения (: record1 ,: record2)
конец
Выполнить хранимую процедуру:
Выполнить процедуру addRecord ("urrecord1", "urrecord2")
◇ [delphi] Сохраните файлы в поля Blob
Функция BlobContentToString (const fileName: String): String;
начинать
с tfilestream.create (имя файла, fmopenread) do
пытаться
setLength (результат, размер);
читать (указатель (результат)^, размер);
окончательно
бесплатно;
конец;
конец;
// Сохранить поле
начинать
if (opendialog1.execute) then
начинать
sfilename: = opendialog1.filename;
Adotable1.edit;
Adotable1.fieldbyName ('visio'). Appring: = blobContentToString (имя файла);
Adotable1.post;
конец;
◇ [delphi] Скопируйте все файлы в буфер обмена
использует shlobj, activex, clipbrd;
Процедура tform1.copytoclipbrd (var filename: string);
вар
Fe: tformatetc;
Среда: TSTGMEDIUM;
Dropfiles: pdropfiles;
pfile: pchar;
начинать
Fe.cfformat: = cf_hdrop;
Fe.dwaspept: = dvaspect_content;
Fe.tymed: = tymed_hglobal;
Medium.hglobal: = globalalloc (gmem_share или gmem_zeroinit, sizeof (tdropfiles)+длина (имя файла) +1);
Если medium.hglobal <> 0, тогда начните
Medium.tymed: = tymed_hglobal;
Dropfiles: = Globallock (Medium.hglobal);
пытаться
Dropfiles^.pfiles: = sizeof (tdropfiles);
Dropfiles^.fwide: = false;
longint (pfile): = longint (dropfiles)+sizeof (tdropfiles);
Strpcopy (pfile, имя файла);
Inc (Pfile, длина (имя файла) +1);
pfile^: = #0;
окончательно
GlobalUnlock (Medium.hglobal);
конец;
Буфер обмена.setashandle (cf_hdrop, medium.hglobal);
конец;
конец;
◇ [Delphi] Перечислите текущие процессы работы системы.
использует TLHELP32;
процедура TForm1.Button1Click(Отправитель: TObject);
var lppe: tprocessentry32;
Найдено: логический;
Рука: Тандл;
начинать
Рука: = createToolhelp32snapshot (th32cs_snapall, 0);
Найдено: = Process32first (Hand, LPPE);
в то время как найдено делать
начинать
Listbox1.items.add (strpas (lppe.szexefile));
Найдено: = Process32next (Hand, LPPE);
конец;
конец;
◇ [Delphi] Создайте новую таблицу, таблицу2 на основе Bdetable1
Таблица 2: = ttable.create (nil);
пытаться
Table2.databaseName: = table1.databaseName;
Table2.fielddefs.assign (table1.fielddefs);
Table2.indexdefs.assign (table1.indexdefs);
Table2.tablename: = 'new_table';
Table2.createTable ();
окончательно
Table2.free ();
конец;
◇ [Delphi] Лучший способ понять создание и ссылку DLL
// Посмотрите на источник DLL (файл-> новый-> dll) сначала
Библиотечный проект1;
использует
Sysutils, классы;
Функциональная добавка (F: Integer; S: Integer): Integer; Export;
начинать
makeasum: = f+s;
конец;
экспорт
добавка;
конец.
// звонок (в вашем проекте)
выполнение
Функция Addit (F: Integer; S: Integer): Integer; Far; External 'Project1'; // Объявление
{Вызов Addit (2,4);
◇ [Delphi] Динамически читайте размер самой программы
Функция GesselfSize: Integer;
вар
F: файл байтов;
начинать
FileMode: = 0;
DessageFile (f, Application.Exename);
сбросить (f);
Результат: = FileSize (f); // Блок - байты
FlieFile (F);
конец;
◇ [Delphi] Прочитайте информацию BIOS
с memo1.lines делают
начинать
Add ('MainboardBiosName:'+^i+String (pchar (ptr ($ fe061))));
Add ('Mainboardbioscopyright:'+^i+String (pchar (ptr ($ fe091))));
Add ('MainboardBiosDate:'+^i+String (pchar (ptr ($ ffff5))));
Add ('Mainboardbiosserialno:'+^i+String (pchar (ptr ($ fec71))));
конец;
◇ [delphi] Динамично создавать псевдонимы MSSQL
процедура TForm1.Button1Click(Отправитель: TObject);
var mylist: tstringlist;
начинать
Mylist: = tstringlist.create;
пытаться
с MyList Do
начинать
Add ('имя сервера = 210.242.86.2');
Add ('name базы данных = db');
Add ('name пользователя = sa');
конец;
Session1.Addalias ('testSQL', 'mssql', mylist);
Session1.saveconfigfile;
окончательно
Mylist.free;
Session1.active: = true;
Database1.databaseName: = 'db';
Database1.aliasName: = 'testSQL';
Database1.loginPrompt: = false;
Database1.params.add ('user name = sa');
Database1.params.add ('password =');
Database1.connected: = true;
конец;
конец;
процедура TForm1.Button2Click(Отправитель: TObject);
начинать
Database1.connected: = false;
Session1.deletealias ('testsql');
конец;
◇ [Delphi] Играйте в фоновую музыку
MMSystem использует
// воспроизводить музыку
Mcisendstring ('open e: /1.mid -тип секвенсора псевдоним nn', '', 0, 0);
Mcisendstring ('Play nn из 0', '', 0, 0);
Mcisendstring ('Close Animation', '', 0, 0);
конец;
// прекратить играть
Mcisendstring ('open e: /1.mid -тип секвенсора псевдоним nn', '', 0, 0);
Mcisendstring ('Stop nn', '', 0, 0);
Mcisendstring ('Close Animation', '', 0, 0);
◇ [delphi] Пример кода для интерфейсов и классов
Тип {интерфейс и объявление класса: разница в том, что члены данных, любые непубличные методы и публичные методы не используют общедоступное ключевое слово в интерфейсе}
Isample = интерфейс // определить интерфейс ISample
функция GetString: String;
конец;
Tsample = class (tinterfedobject, iSample)
общественный
функция GetString: String;
конец;
// Определение функции
function tsample.getString: String;
начинать
Результат: = 'Что такое шоу';
конец;
// ЗАПОЛНЕНИЕ КЛАССА КЛАССА
Образец var: tsample;
начинать
Образец: = tsample.create;
ShowMessage (sample.getString+'Class Object!');
sample.free;
конец;
// Звоните интерфейс
var samerinterface: isample;
Образец: Tsample;
начинать
Образец: = tsample.create;
SampleInterface: = Sample; // Реализация интерфейса должна использовать класс
{Две вышеуказанные строки также могут быть выражены как SampleInterface: = tsample.create;}
ShowMessage (sampleInterface.getString+'interface!');
//sample.free; {ullike локальные классы, классы в интерфейсе автоматически выпускаются}
SampleInterface: = nil; {Operface Object}
конец;
◇ [Delphi] Стержень задач не похожа на подходящую программу
вар
ExtendedStyle: целое число;
начинать
Приложение.Инициализировать;
ExtendedStyle: = getWindowlong (Application.Handle, GWL_EXSTYLE);
SetWindowlong (application.handle, gwl_exstyle, extendendstyle или ws_ex_toolwindow, а не ws_ex_appwindow);
Application.createform (tform1, form1);
Приложение.Выполнить;
конец.
◇ [delphi] alt+ctrl+del не видит программы
Добавьте объявление после реализации:
Функция RegisterServiceProcess (DWProcessId, Dwtype: Integer): Integer;
RegisterserviceProcess (GetCurrentProcessId, 1); // Скрыть
RegisterserviceProcess (getCurrentProcessId, 0); // Дисплей
◇ [Delphi] Обнаружение символа оптического привода
var drive: char;
cdromid: целое число;
начинать
для диска: = 'd' to 'z' do
начинать
cdromid: = getDrivetype (pchar (drive+':/'));
Если cdromid = 5, то ShowMessage ('ваш диск CD-ROM:'+Drive+'Диск!');
конец;
конец;
◇ [Delphi] Обнаружение звуковой карты
Если auxgetnumdevs () <= 0, то Showmessage ('Нет звуковой карты!') else showmessage ('любая звуковая карта!');
◇ [Delphi] Нарисуйте в сетке строки
Stringgrid.ondrawcell событие
с stringgrid1.canvas do
Рисовать (rect.left, rect.top, image1.picture.graphic);
◇ [SQL Server] Еще один способ написать оператор в SQL в SQL
Например, чтобы найти всех пользователей, чье имя пользователя содержит «C», вы можете использовать
Используйте mydatabase
Выберите * из таблицы 1, где имя пользователя, как '%c%"
Вот еще один способ выполнить вышеуказанную функцию:
Используйте mydatabase
Выберите * из таблицы 1, где charindex ('c', username)> 0
Теоретически, этот метод имеет еще одно утверждение суждения, чем предыдущий метод, то есть> 0, но этот процесс суждения - самый быстрый.
Для строки и других операций не имеет большого значения для использования функции Charindex.
Найденные символы могут быть использованы непосредственно в этом Charindex, следующим образом:
Используйте mydatabase
Выберите * из таблицы 1, где charindex ('%', username)> 0
Это также может быть написано как:
Используйте mydatabase
Выберите * из таблицы 1, где Чариндекс (char (37), имя пользователя)> 0
Персонаж ASCII %
◇ [delphi] SQL Отображает несколько баз данных/таблиц
Выберите различные A.Bianhao, A.Xingming, B.Gongzi из "jianjie.dbf" A, "gongzi.dbf" b
Где A.BianHao = B.Bianhao
◇ [delphi] RFC (запрос на комментарий) связан
IETF (Интернет -инженерная целевая группа) поддерживает документы RFC http://www.ietf.cnri.reston.va.us
RFC882: Структура заголовка сообщений
RFC1521: MIME Часть 1, метод передачи сообщений
RFC1945: документация по передаче мультимедийного документа
◇ [Delphi] Использование Tnmuupprocessor
var instream, outstream: tfileStream;
начинать
inStream: = tfilestream.create (infile.txt, fmopenread);
outstream: = tfileStream (outfile.txt, fmcreate);
Nmuue.method: = uucode; {uuencode/decode}
//Nmuue.method:=uumime ;mime}
Nmuue.inputStream: = instream;
Nmuue.outputstream: = outstream;
Nmuue.encode; {кодирование обработки}
//Nmuue.decode; {decoding обработка}
instrem.free;
outstream.free;
конец;
◇ [Delphi]
// чтение байтов счета из текущей позиции потока файла в буферный буфер
Функция чтения (VAR Buffer; Count: Longint): Longint; переопределение;
// Читать буферный буфер в потоку файла
Функция записи (const buffer; count: longint): longint; override;
// Установите текущий указатель чтения и записи потока файла в компенсацию
Функция ищите (смещение: longint; Происхождение: слово): longint; переопределить;
Origin = {sofrombeginning, sofromcurrent, sofromend}
// Копировать количество из текущей позиции в другой потоке файлов в текущую позицию в текущем потоке файла
Функция CopyFrom (Источник: TSTREAM; Count: Longint): Longint;
// Читать указанный файл в потоку файла
var myfstream: tfileStream;
начинать
myfstream: = tfilestream.create (opendialog1.filename, fmopenread);
конец;
[Javascript] Проверьте, установлен ли IE Plug-in Shockwave и QuickTime
<script language = "javascript">
var myplugin = navigator.plugins ["Shockwave"];
if (myplugin)
Document.writeln («Вы установили Shockwave!»)
еще
document.writeln («Вы не установили Shockwave!»)
</script> <br>
<script language = "javascript">
var myplugin = navigator.plugins ["QuickTime"];
if (myplugin)
document.writeln («У вас установлен Quicktime!»)
еще
document.writeln («Вы не установили Quicktime!»)
</скрипт>
[Интернет] эффект ссылки на iframe в таблице
<таблица cellPadding = "0" cellspacing = "0">
<tr>
<td> <ilayer id = "ad1" visibility = "hidden"> </ilayer> <nolayer> <iframe src = "i: /jinhtml/zj/h21.htm" marginwidth = "0" marginHeight = "110" = "10" vspace = "20" crameborder = "0" scolling = "1"> </iframe> </nolayer> </td>
</tr>
</table>
◇ [Delphi] Навыки управления веб -браузером
1. Реализуйте функцию печати
var vain, vaout: olevariant;
Webbrowser.controlinterface.execwb (olecmdid_print, olecmdexecopt_dontpromptuser, vain, vaout);
2. WebBrowrowser Reads Page из потока
Функция tform1.loadfromstream (const Astream: tstream): hResult;
начинать
Astream.Seek (0, 0);
Результат: = (webbrowser1.document как ipersistreaminit) .load (tstreamAdapter.create (Astream));
конец;
3. "О:" Протокол позволит вам перейти к строке HTML:
Процедура tform1.loadhtmlString (shtml: string);
VAR Flags, TargetFrameName, Postdata, заголовки: Olevariant;
WebBrowser1.navigate ('О:' + SHTML, Flags, TargetFrameName, Postdata, заголовки)
4. «Res:» Протокол позволит вам перейти к HTML -файлу, хранящемуся в качестве ресурса.
Процедура tform1.loadhtmlresource;
VAR Flags, TargetFrameName, Postdata, заголовки: Olevariant;
Webbrowser1.navigate ('res: //' + application.exename + '/myhtml', flags, targetframeName, postdata, заголовки)
Используйте brcc32.exe для создания файлов ресурсов (*.rc)
Myhtml 23 "./html/myhtml.htm"
Morehtml 23 "./html/morehtml.htm"
{$ R html.res} //html.rc скомпилируется в html.res
5. Сохранить полный HTML -файл
вар
Htmldocument: ihtmldocument2;
Persistfile: ipersistfile;
начинать
Htmldocument: = webbrowser1.document как ihtmldocument2;
Persistfile: = htmldocument как ipersistfile;
PersistFile.save (stringToolest ('test.htm'), true);
в то время как htmldocument.readystate <> 'reflect' do
Application.ProcessMessages;
конец;
◇ [Delphi] Установите управление WebBrowser (встроенный IE Control)
Сначала вы должны убедиться, что в системе установлено Internet Explorer 4 или более позднее, Delphi Menu-Component-Import Activex Control, выберите Microsoft Internet Controls "в списке и добавите в существующий файл пакета, управление WebBrowser будет отображаться в Панель управления ActiveX.
◇ [Delphi] Реализация прозрачной формы Windows2000
Функция SetLayeredWindowTtributes (Hwnd: Hwnd; Crkey: Longint; Balpha: Byte; Dwflags: Longint): Longint;
процедура TForm1.FormCreate(Отправитель: TObject);
var l: longint;
начинать
l: = getWindowlong (ручка, gwl_exstyle);
L: = L или 80000 долларов;
SetWindowlong (handle, gwl_exstyle, l);
SetLayeredWindowattributes (ручка, 0, 180, 2);
конец;
◇ [delphi] Программа отображает рекламную веб -брусзер, загружающую картинки
var flag, кадр, Pdata, заголовок: Olevariant;
начинать
Webbrowser1.navigate ('http://www.chineseall.com/images/logo.jpg', флаг, кадр, Pdata, заголовок)
конец;
◇ [Delphi] Рассчитайте размер каталога
function getDirectorySize (const adirectory: string): целое число;
вар
DIR: TSEARCHREC;
RET: целое число;
Путь: строка;
начинать
Результат:= 0;
Путь: = ExtractFilePath (Adirectory);
Ret: = sysutils.findfirst (adirectory, faanyfile, dir);
Если ret <> no_error, тогда
Выход;
пытаться
В то время как ret = no_error do
начинать
Inc (результат, Dir.Size);
// Если это каталог, а не «
if (dir.attr в [fadirectory]) и (dir.name [1] <> '.') Затем
Inc (результат, getDirectorySize (path + dir.name + '/*.*'));
Ret: = sysutils.findnext (dir);
конец;
окончательно
Sysutils.findclose (dir);
конец;
конец;
◇ [Delphi] Очистить каталог
Функция EmptyDirectory (thedirectory: String; рекурсив: логический):
Логический;
вар
SearchRec: tsearchRec;
Res: целое число;
начинать
Результат: = false;
Thedirectory: = normaldir (thedirectory);
Res: = findfirst (thedirectory + '*.*', Faanyfile, searchRec);
пытаться
В то время как res = 0 делает
начинать
if (searchRec.name <> '.') и (searchRec.name <> '..') тогда
начинать
if ((searchRec.attr и fadirectory)> 0) и рекурсивный
тогда начни
EmptyDirectory (thedirectory + searchRec.name, true);
EmortedErectory (pchar (thedirectory + searchRec.name));
конец
еще начать
DeleteFile (pchar (thedirectory + searchRec.name))
конец;
конец;
Res: = findnext (searchRec);
конец;
Результат: = Истина;
окончательно
Findclose (SearchRec.findHandle);
конец;
конец;
◇ [Delphi] опубликовать программу Ado и установить Ado
Запустите mdac_typ.exe один раз.
Каталог после установки программы установки такой же, как и путь к каталогу в программе. Установлен.
◇ [delphi] перехват системных сообщений Windows: сообщение WM_CLOSE
Процедура wmclose (var msg: tmessage); сообщение wm_close;
Процедура tmainform.wmclose (var msg: tmessage);
начинать
m_bclosenoquery: = false;
унаследованный;
конец;