Keterampilan pengembangan dasar DELPHI dari nenek moyang kita
Kompilasi: Penyewa Sumber: Monopoly Forum
◇[DELPHI] Salin file dari Network Neighborhood
menggunakan kerang;
copyfile(pchar('file baru.txt'),pchar('//namakomputer/direction/targer.txt'),false);
◇[DELPHI] menghasilkan efek drag mouse
Diimplementasikan melalui event MouseMove, event DragOver, event EndDrag, seperti LABEL di PANEL:
var xpanel,ypanel,xlabel,ylabel:integer;
Acara MouseMove PANEL: xpanel:=x;ypanel:=y;
Acara DragOver PANEL: xpanel:=x;ypanel:=y;
Acara MouseMove LABEL: xlabel:=x;ylabel:=y;
Acara EndDrag LABEL: label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;
◇[DELPHI] Dapatkan direktori WINDOWS
menggunakan kerang;
var windir:array[0..255] dari char;
getwindowsdirectory(windir,sizeof(windir));
Atau baca dari registry, lokasi:
HKEY_LOCAL_MACHINE/Perangkat Lunak/Microsoft/Windows/CurrentVersion
Kunci SystemRoot, diperoleh sebagai: C:/WINDOWS
◇[DELPHI] Gambar garis pada FORM atau wadah lainnya
var x,y:array [0..50] bilangan bulat;
kanvas.pen.warna:=clred;
kanvas.pen.style:=PSDash;
form1.kanvas.moveto(trunc(x[i]),trunc(y[i]));
form1.kanvas.lineto(trunc(x[j]),trunc(y[j]));
◇ Penggunaan daftar string [DELPHI].
tip var:tstringlist;
tips:=tstringlist.buat;
tips.loadfromfile('namafile.txt');
edit1.teks:=tips[0];
tips.add('string penambahan baris terakhir');
tips.insert(1,'masukkan string pada baris NO 2');
tips.savetofile('filebaru.txt');
tips.gratis;
◇[DELPHI]Operasi papan klip sederhana
richedit1.pilih semua;
richedit1.copytoclipboard;
richedit1.cuttoclipboard;
edit1.pastedaripapan klip;
◇[DELPHI] Tentang operasi file dan direktori
Chdir('c:/abcdir');Masuk ke direktori
Mkdir('namadir');Buat direktori
Rmdir('dirname'); hapus direktori
GetCurrentDir;//Dapatkan nama direktori saat ini, tanpa '/'
Getdir(0,s);//Dapatkan nama direktori kerja s:='c:/abcdir';
Hapusfile('abc.txt');//Hapus file
Ganti namafile('lama.txt','baru.txt');//Ganti nama file
ExtractFilename(filelistbox1.filename);//Dapatkan nama file
ExtractFileExt(filelistbox1.filename);//Dapatkan akhiran file
◇[DELPHI] Proses atribut file
attr:=filegetattr(filelistbox1.namafile);
if (attr dan faReadonly)=faReadonly maka ... //hanya baca
if (attr dan faSysfile)=faSysfile maka ... //system
if (attr dan faArchive)=faArchive maka ... //Archive
if (attr dan faHidden)=faHidden maka ... //Sembunyikan
◇[DELPHI]Jalankan file di luar program
WINEXEC//Panggil file yang dapat dieksekusi
winexec('command.com /c salin *.* c:/',SW_Normal);
winexec('mulai abc.txt');
ShellExecute atau ShellExecuteEx//Mulai program asosiasi file
fungsi mengeksekusifile(nama file const,params,defaultDir:string;showCmd:integer):THandle;
ExecuteFile('C:/abc/a.txt','x.abc','c:/abc/',0);
ExecuteFile('http://tingweb.yeah.net','','',0);
ExecuteFile('mailto:[email protected]','','',0);
◇[DELPHI] Dapatkan nama proses yang berjalan pada sistem
var hCurrentWindow:HWnd;szText:array[0..254] dari char;
mulai
hCurrentWindow:=Getwindow(pegangan,GW_HWndFrist);
sementara hCurrentWindow <> 0 lakukan
mulai
jika Getwindowtext(hcurrnetwindow,@sztext,255)>0 lalu listbox1.items.add(strpas(@sztext));
hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext);
akhir;
akhir;
◇[DELPHI]Tentang penyematan perakitan
Akhir Asm;
EAX, ECX, dan EDX dapat dimodifikasi sesuka hati; ESI, EDI, ESP, EBP, dan EBX tidak dapat dimodifikasi.
◇[DELPHI]Tentang fungsi konversi tipe
FloatToStr//Titik mengambang ke string
FloatToStrF//Memformat floating point ke string
IntToHex//Bilangan bulat ke heksadesimal
Waktu KeStr
TanggalKeStr
TanggalWaktuKeStr
FmtStr//Keluarkan string dalam format yang ditentukan
FormatDateTime('YYYY-MM-DD,hh-mm-ss',DATE);
◇[DELPHI]Prosedur dan fungsi string
Insert(obj,target,pos);//String target dimasukkan pada posisi pos. Jika hasil penyisipan lebih besar dari panjang maksimum target, maka kelebihan karakter akan terpotong. Jika Pos di luar 255 maka akan terjadi error runtime. Misalnya st:='Brian', maka Insert('OK',st,2) akan membuat st menjadi 'BrOKian'.
Delete(st,pos,Num);//Menghapus substring karakter Num (integer) yang dimulai dari posisi pos (integer) pada string st. Misalnya st:='Brian', maka Delete(st,3,2) akan menjadi Brn.
Str(value,st);//Ubah nilai numerik (integer atau tipe real) menjadi string dan masukkan ke dalam st. Misalnya, ketika a=2.5E4, str(a:10,st) akan membuat nilai st menjadi '25000'.
Val(st,var,code);//Ubah ekspresi string st menjadi bilangan bulat atau nilai riil yang sesuai dan simpan di var. St harus berupa string yang mewakili nilai numerik dan sesuai dengan aturan konstanta numerik. Selama proses konversi, jika tidak ada kesalahan yang terdeteksi, kode variabel disetel ke 0, jika tidak maka akan disetel ke posisi karakter kesalahan pertama. Misal st:=25.4E3, x adalah variabel real, maka val(st,x,code) akan membuat nilai X menjadi 25400 dan nilai kode menjadi 0.
Copy(st.pos.num);//Mengembalikan substring yang dimulai dari posisi pos (integer) dalam string st dan berisi karakter num (integer). Jika pos lebih besar dari panjang string st, string kosong akan dikembalikan. Jika pos di luar 255, kesalahan runtime akan terjadi. Misalnya, st:='Brian', lalu Copy(st,2,2) mengembalikan 'ri'.
Concat(st1,st2,st3...,stn);//Gabungkan string yang diwakili oleh semua variabel independen sesuai urutan yang diberikan, dan kembalikan nilai gabungan. Jika panjang hasilnya 255 maka akan terjadi error runtime. Misalnya, st1:='Brian',st2:=' ',st3:='Wilfred', lalu Concat(st1,st2,st3) mengembalikan 'Brian Wilfred'.
Panjang(st);//Mengembalikan panjang ekspresi string st. Misalnya, st:='Brian', nilai kembalian Panjang(st) adalah 5.
Pos(obj,target);//Mengembalikan posisi di mana string obj muncul untuk pertama kalinya di target string target. Jika target tidak memiliki string yang cocok, nilai kembalian dari fungsi Pos adalah 0. Misalnya target:='Brian Wilfred', maka nilai kembalian Pos('Wil',target) adalah 7, dan nilai kembalian Pos('hurbet',target) adalah 0.
◇[DELPHI]Tentang penanganan registri
menggunakan Registri;
var reg:Registrasi;
reg:=Tregistry.buat;
reg.rootkey:='HKey_Current_User';
reg.openkey('Panel Kontrol/Desktop',false);
reg.WriteString('Judul Wallpaper','0');
reg.writeString('Wallpaper',filelistbox1.namafile);
reg.closereg;
reg.gratis;
◇[DELPHI]Tentang nama konstanta keyboard
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)--$7B(123)
AZ:$41(65)--$5A(90)
0-9:$30(48)--$39(57)
◇[DELPHI] Tentukan terlebih dahulu bahasa asli program
Perintah DOS dari perangkat lunak DELPHI: Program ini harus dijalankan di bawah Win32.
Perintah DOS untuk perangkat lunak VC++: Program Ini Tidak Dapat Dijalankan Dalam Mode DOS.
◇[DELPHI]Mengoperasikan Cookie
respon.cookies("nama").domain:='http://www.086net.com';
dengan respon.cookies.add lakukan
mulai
nama:='nama pengguna';
nilai:='nama pengguna';
akhir
◇[DELPHI] ditambahkan ke tautan menu dokumen
menggunakan shellapi,shlOBJ;
shAddToRecentDocs(shArd_path,pchar(filepath));//Tambahkan koneksi
shAddToRecentDocs(shArd_path,nil);//Hapus
◇[Lain-lain] Cadangkan kamus metode masukan ABC cerdas
windows/system/user.rem
windows/system/tmmr.rem
◇[DELPHI] Tentukan tombol mouse
jika GetAsyncKeyState(VK_LButton)<>0 lalu ... //Tombol kiri
jika GetAsyncKeyState(VK_MButton)<>0 lalu ... //kunci tengah
jika GetAsyncKeyState(VK_RButton)<>0 lalu ... //klik kanan
◇[DELPHI]Mengatur tampilan maksimum formulir
acara onFormCreate
self.width:=layar.lebar;
self.height:=layar.tinggi;
◇Tombol [DELPHI] untuk menerima pesan
Diproses dalam acara OnCreate: application.OnMessage:=MyOnMessage;
prosedur TForm1.MyOnMessage(var MSG:TMSG;var Handle:Boolean);
mulai
jika msg.message=256 maka ... //Kunci APA PUN
jika pesan.pesan=112 maka ... //F1
jika pesan.pesan=113 maka ... //F2
akhir;
◇[Lain-lain]Sembunyikan folder bersama
Efek berbagi: dapat diakses, namun tidak terlihat (dalam pengelolaan sumber daya, Network Neighborhood)
Beri nama bagiannya: arah$
Kunjungi: //komputer/arah/
◇[java Script] Efek yang umum digunakan pada halaman web Java Script
Halaman web dijadwalkan ditutup dalam 60 detik
<skrip bahasa="skrip java"><!--
settimeout('jendela.close();',60000)
--></skrip>
tutup jendela
<a href="/" onclick="Javascript:window.close();return false;">Tutup</a>
Transfer URL terjadwal
<meta http-equiv="refresh" content="40;url=http://www.086net.com">
Tetapkan sebagai beranda
<a onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://086net.com');"href="#">Tetapkan sebagai beranda</a>
Tandai situs ini
<a href="javascript:window.external.addfavorite('http://086net.com','[无名pier]')">Favoritkan situs ini</a>
Bergabunglah dengan saluran
<a href="javascript:window.external.addchannel('http://086net.com')">Tambahkan saluran</a>
◇[DELPHI]Terkait pengeditan teks
checkbox1.checked:=tidak checkbox1.checked;
jika kotak centang1.dicentang maka richedit1.font.style:=richedit1.font.style+[fsBold] else richedit1.font.style:=richedit1.font.style-[fsBold]//bold
jika kotak centang1.dicentang maka richedit1.font.style:=richedit1.font.style+[fsItalic] else richedit1.font.style:=richedit1.font.style-[fsItalic]//italic
jika kotak centang1.dicentang maka richedit1.font.style:=richedit1.font.style+[fsUnderline] else richedit1.font.style:=richedit1.font.style-[fsUnderline]//underline
memo1.alignment:=taLeftJustify;//Kiri
memo1.alignment:=taRightJustify;//kanan
memo1.alignment:=taCenter;//Terpusat
◇[DELPHI] Menghasilkan warna teks secara acak
mengacak; // benih acak
memo1.font.color:=rgb(acak(255),acak(255),acak(255));
◇[DELPHI]DELPHI5 UPDATE nomor seri patch pemutakhiran
1000003185
90X25fx0
◇[DELPHI]Pemfilteran karakter ilegal dalam nama file
untuk i:=1 sampai panjang lakukan
jika s[i] di ['/','/',':','*','?','<','>','|'] maka
◇[DELPHI]Definisi dan deskripsi fungsi konversi
datetimetofiledate (datetime:Tdatetime):longint; Mengonversi nilai tanggal dan waktu dalam format Tdatetime menjadi nilai tanggal dan waktu dalam format DOS
datetimetostr (datetime:Tdatetime):string; Ubah variabel format Tdatatime menjadi string. Jika parameter datetime tidak berisi nilai tanggal, tanggal string yang dikembalikan akan ditampilkan sebagai 00/00/00 parameter datetime, string yang dikembalikan akan menjadi Porsi waktu yang ditampilkan sebagai 00:00:00
datetimetostring (string hasil var;
format konstan:string;
datetime:Tdatetime); Konversikan nilai waktu dan tanggal sesuai dengan string format yang diberikan, hasil adalah string hasil, format adalah string format konversi, datetime adalah nilai tanggal dan waktu
datetostr (date:Tdatetime) menggunakan string format yang ditentukan oleh variabel global shortdateformat untuk mengonversi parameter tanggal menjadi string yang sesuai
floattodecimal (hasil var:Tfloatrec;nilai:
diperpanjang; presisi, desimal:
integer); Mengonversi bilangan floating point menjadi representasi desimal
floattostr (nilai: diperpanjang): string Mengonversi nilai floating point ke dalam format string. Konversi ini menggunakan format angka biasa, dan jumlah digit efektif yang dikonversi adalah 15.
floattotext (buffer:pchar;nilai:diperpanjang;
format: format Tfloat; presisi,
digit:integer):integer; Gunakan format, presisi, dan desimal yang diberikan untuk mengubah nilai nilai floating point menjadi representasi desimal. Hasil konversi disimpan dalam parameter buffer. Buffernya bukan buffer String dengan hasil 0.
floattotextfmt (buffer:pchar;nilai:diperpanjang;
format:pchar):integer Gunakan format yang diberikan untuk mengubah nilai nilai floating point menjadi representasi desimal. Hasil konversi disimpan dalam parameter buffer. Nilai kembalian fungsi adalah jumlah karakter yang disimpan dalam buffer.
intttohex (nilai:longint;digit:integer):
string; Mengubah nilai numerik yang diberikan menjadi string heksadesimal. Parameter digit memberikan jumlah digit yang terdapat dalam string hasil konversi.
inttostr (nilai:longint):string mengubah bilangan bulat menjadi string desimal
strtodate (const S:string):Tdatetime Mengonversi string menjadi nilai tanggal S harus berisi string tanggal format legal.
strtodatetime (const S:string):Tdatetime Mengonversi string S menjadi format tanggal waktu, S harus berformat MM/DD/YY HH:MM:SS[AM|PM], dimana pemisah tanggal dan waktu sama dengan periode sistem Konstanta waktu Pengaturan terkait. Jika tidak ada informasi AM atau PM yang ditentukan, maka jam 24 jam digunakan.
strtofloat (const S:string):extend; Ubah string yang diberikan menjadi angka floating point. String tersebut memiliki format berikut:
[+|-]nnn…[.]nnn…[<+|-><E|e><+|->nnnn]
strtoint (const S:string):longint Mengonversi string numerik menjadi bilangan bulat. String dapat dalam format desimal atau heksadesimal. Jika string tersebut bukan string numerik yang sah, sistem akan menghasilkan pengecualian ECONVERTERROR.
strtointdef (konstan S:string;default:
longint):longint; Ubah string S menjadi angka. Jika S tidak dapat diubah menjadi angka, fungsi strtointdef mengembalikan nilai parameter default.
strtotime (const S:string):Tdatetime Mengonversi string S menjadi nilai TDATETIME. S memiliki format HH:MM:SS[AM|PM].
timetostr (waktu:Tdatetime):string; Ubah parameter TIME menjadi string. Format string hasil konversi terkait dengan pengaturan konstanta terkait waktu sistem.
◇Program [DELPHI] tidak muncul di ALT+CTRL+DEL
Tambahkan deklarasi setelah implementasi:
fungsi RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;
RegisterServiceProcess(GetCurrentProcessID, 1);//Sembunyikan
RegisterServiceProcess(GetCurrentProcessID, 0);//Display
Tidak terlihat dengan ALT+DEL+CTRL
◇Program [DELPHI] tidak muncul di taskbar
menggunakan jendela
var
Gaya Diperluas : Integer;
mulai
Aplikasi.Inisialisasi;
//------------------------------------------------ ==============
ExtendedStyle := GetWindowLong (Aplikasi.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle ATAU WS_EX_TOOLWINDOW
DAN BUKAN WS_EX_APPWINDOW);
//------------------------------------------------ ===============
Aplikasi.CreateForm(TForm1, Form1);
Aplikasi.Jalankan;
akhir.
◇[DELPHI]Cara menentukan apakah jaringan dial-up aktif atau nonaktif
jika GetSystemMetrics(SM_NETWORK) DAN $01 = $01 maka
tampilkan pesan('Online!')
else showmessage('Tidak online!');
◇[DELPHI]Konversi IP menjadi nama domain
fungsi GetDomainName(Ip:string):string;
var
pH:PHosten;
data:twsadata;
ii: Kata-kata;
mulai
WSAStartup($101, Data);
ii:=inet_addr(pchar(ip));
pH:=gethostbyaddr(@ii,sizeof(ii),PF_INET);
jika (ph<>nihil) maka
hasil:=pH.h_name
kalau tidak
hasil:='';
Pembersihan WSA;
akhir;
◇[DELPHI] Cara menangani "menu klik kanan"
var
reg: TRegistry;
mulai
reg := TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('*/shell/check/command', benar);
reg.WriteString('', '"' + aplikasi.ExeName + '" "%1"');
reg.CloseKey;
reg.OpenKey('*/shell/buku harian', false);
reg.WriteString('', 'Operasi(&C)');
reg.CloseKey;
reg.Gratis;
showmessage('SELESAI!');
akhir;
◇[DELPHI]Kirim nilai kunci virtual ctrl V
prosedur kirim tempel;
mulai
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);
akhir;
◇[DELPHI]Huruf drive dari drive optik saat ini
prosedur getcdrom(var cd:char);
var
str:tali;
driver: bilangan bulat;
pengemudi: arang;
saya, suhu: bilangan bulat;
mulai
driver:=getlogicaldrives;
temp:=(1 dan driver);
untuk i:=0 hingga 26 lakukan
mulai
jika suhu = 1 maka
mulai
pengemudi:=char(i+integer('a'));
str:=pengemudi+':';
jika getdrivetype(pchar(str))=drive_cdrom maka
mulai
cd:=pengemudi;
KELUAR;
akhir;
akhir;
driver:=(driver shr 1);
temp:=(1 dan driver);
akhir;
akhir;
◇[DELPHI]Enkripsi dan dekripsi karakter
fungsi cryptstr(const s:string; tipe: dword):string;
var
saya: bilangan bulat;
kunci f: bilangan bulat;
mulai
hasil:='';
jenis kasus
0: setpass;
mulai
mengacak;
fkey := acak($ff);
untuk i:=1 sampai panjang lakukan
hasil := hasil+chr( ord(s[i]) xor i xor fkey);
hasil := hasil + char(fkey);
akhir;
1: dapatkan izin
mulai
fkey := ord(s[panjang(s)]);
untuk i:=1 hingga panjang - 1 lakukan
hasil := hasil+chr( ord(s[i]) xor i xor fkey);
akhir;
akhir;
□◇[DELPHI] Kirim kunci simulasi ke aplikasi lain
var
h:Pegangan;
mulai
h := FindWindow(nil, 'Judul aplikasi');
PostMessage(h, WM_KEYDOWN, VK_F9, 0);//Kirim kunci F9
akhir;
□◇[DELPHI] Format data DAO didukung oleh 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);//Bidang kenaikan otomatis
□◇[DELPHI]DELPHI mengkonfigurasi langkah-langkah MS SQL 7 dan BDE
Langkah pertama adalah mengkonfigurasi ODBC:
Pertama atur sumber data di ODBC. Setelah menginstal SQL Server7.0, seharusnya ada dua item di "Sistem DSN" di ODBC.
Sumber data, satu adalah MQIS dan yang lainnya adalah LocalSever. Pilih salah satu dan klik tombol konfigurasikan
Apakah sudah terpasang di mesin lokal? Jika sudah, langsung ke langkah berikutnya.
Server, kemudian lanjutkan ke langkah berikutnya dan isi ID login dan kata sandi (ID login dan kata sandi adalah pilihan pengguna di SQL7.0
terletak di pusat kota).
Langkah kedua adalah mengkonfigurasi BDE:
Buka BDE Delphi dan klik MQIS atau LocalServer. Anda akan dimintai nama pengguna dan kata sandi
Username dan password ODBC sama, tinggal diisi saja.
Langkah ketiga adalah mengkonfigurasi program:
Jika Anda menggunakan TTable, pilih MQIS atau LocalServer di Nama Database TTable, lalu
Pilih saja Sale pada TableName, lalu ubah Active menjadi True. Delphi akan memunculkan dialog prompt dan mengisi user
nama dan kata sandi.
Jika Anda menggunakan TQuery, klik kanan pada TQuery dan klik "SQL Builder". Ini dikonfigurasi melalui antarmuka.
Pernyataan SQL, atau isi pernyataan SQL di SQL TQuery. Terakhir, jangan lupa ubah Active menjadi True.
Dimungkinkan juga untuk mengkonfigurasi TQuery selama operasi, lihat bantuan Delphi untuk detailnya.
□◇[DELPHI] Dapatkan nilai RGB dari titik tertentu pada gambar
procedure TForm1.Image1MouseDown(Pengirim: TObject; Tombol: TMouseButton;
Pergeseran: TShiftState; X, Y: Integer);
var
merah, hijau, biru: byte;
saya: bilangan bulat;
mulai
i:= gambar1.Kanvas.Piksel[x,y];
Biru:= GetBValue(i);
Hijau:= DapatkanGValue(i):
Merah:= GetRValue(i);
Label1.Caption:=inttostr(Merah);
Label2.Caption:=inttostr(Hijau);
Label3.Caption:=inttostr(Biru);
akhir;
□◇[DELPHI]Tentang dekomposisi dan konversi format tanggal
var tahun,bulan,hari:kata;sekarang2:Tdatatime;
sekarang2:=tanggal();
decodedate(sekarang2,tahun,bulan,hari);
lable1.Teks :=inttostr(tahun)+'tahun'+inttostr(bulan)+'bulan'+inttostr(hari)+'hari';
◇[DELPHI]Cara menentukan mode koneksi jaringan saat ini
Hasil penilaiannya adalah mode MODEM, LAN atau proxy server.
menggunakan wininet;
Jenis Koneksi Fungsi :boolean;
bendera var: kata sandi;
mulai
Hasil := InternetGetConnectedState(@flags, 0);
jika Hasil maka
mulai
if (bendera dan INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM maka
mulai
tampilkan pesan('Modem');
akhir;
if (bendera dan INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN maka
mulai
tampilkan pesan('LAN');
akhir;
if (bendera dan INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY maka
mulai
showmessage('Proksi');
akhir;
if (bendera dan INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY maka
mulai
showmessage('Modem Sibuk');
akhir;
akhir;
akhir;
◇[DELPHI]Cara menentukan apakah suatu string adalah alamat EMAIL yang valid
fungsi IsEMail(EMail: String): Boolean;
var s: String;ETpos: Integer;
mulai
ETpos:= pos('@', EMail);
jika ETpos > 1 maka
mulai
s:= salin(EMail,ETpos+1,Panjang(EMail));
jika (pos('.', s) > 1) dan (pos('.', s) < panjang(s)) maka
Hasil:= benar yang lain Hasil:= salah;
akhir
kalau tidak
Hasil:= salah;
akhir;
◇[DELPHI] Tentukan apakah sistem terhubung ke INTERNET
Fungsi InetIsOffline di URL.DLL perlu diperkenalkan.
Deklarasi fungsinya adalah:
fungsi InetIsOffline(Bendera: Integer): Boolean; stdcall; eksternal 'URL.DLL';
Kemudian Anda dapat memanggil fungsi tersebut untuk menentukan apakah sistem terhubung ke INTERNET
jika InetIsOffline(0) maka ShowMessage('tidak terhubung!')
else ShowMessage('terhubung!');
Fungsi ini mengembalikan TRUE jika sistem lokal tidak terhubung ke INTERNET.
Terlampir:
Kebanyakan sistem dengan IE atau OFFICE97 menyediakan DLL ini untuk panggilan.
InetIsOffline
BOOL InetIsOffline(
DWORD dwBendera,
);
◇[DELPHI]Putar dan jeda file WAV dengan mudah
menggunakan sistem mm;
fungsi PlayWav(const Nama File: string): Boolean;
mulai
Hasil := PlaySound(PChar(Nama File), 0, SND_ASYNC);
akhir;
prosedur StopWav;
var
buffer: array[0..2] dari char;
mulai
penyangga[0] := #0;
PlaySound(Buffer, 0, SND_PURGE);
akhir;
◇[DELPHI] Dapatkan informasi BIOS mesin
dengan Memo1.Lines bisa
mulai
Tambahkan('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061))));
Tambahkan('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091))));
Tambahkan('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5))));
Tambahkan('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71))));
akhir;
◇[DELPHI] Unduh file dari Internet
menggunakan UrlMon;
fungsi DownloadFile(Sumber, Tujuan: string): Boolean;
mulai
mencoba
Hasil := UrlDownloadToFile(nil, PChar(sumber), PChar(Tujuan), 0, nihil) = 0;
kecuali
Hasil := Salah;
akhir;
akhir;
jika DownloadFile('http://www.borland.com/delphi6.zip, 'c:/kylix.zip') maka
ShowMessage('Pengunduhan berhasil')
else ShowMessage('Unduhan tidak berhasil')
◇[DELPHI]Selesaikan alamat IP server
menggunakan winock
fungsi IPAddrToName(IPAddr : String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
Data WSA: Data TWSA;
mulai
WSAStartup($101, Data WSA);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
jika HostEnt<>nihil maka hasil:=StrPas(Hostent^.h_name) lain hasil:='';
akhir;
◇[DELPHI] Dapatkan koneksi di pintasan
fungsi ExeFromLink(nama tautan const: string): string;
var
FDir,
Nama,
Nama Exe: PChar;
z: bilangan bulat;
mulai
Nama Exe:= StrAlloc(MAX_PATH);
NamaF:= StrAlloc(MAX_PATH);
FDir:= StrAlloc(MAX_PATH);
StrPCopy(FName, ExtractFileName(nama tautan));
StrPCopy(FDir, ExtractFilePath(nama tautan));
z:= TemukanExecutable(FName, FDir, ExeName);
jika z > 32 maka
Hasil:= StrPas(NamaExe)
kalau tidak
Hasil:= '';
StrDispose(FDir);
StrDispose(FNama);
StrDispose(NamaExe);
akhir;
◇[DELPHI]Kontrol penyelesaian otomatis TCombobox
{Properti 'Diurutkan' dari TCombobox ke true }
var lastKey: Kata; //variabel global
//Acara OnChange di TCombobox
prosedur TForm1.AutoCompleteChange(Pengirim: TObject);
var
SearchStr: string;
retVal: bilangan bulat;
mulai
SearchStr := (Pengirim sebagai TCombobox).Teks;
jika lastKey <> VK_BACK lalu // backspace: VK_BACK atau $08
mulai
retVal := (Pengirim sebagai TCombobox).Perform(CB_FINDSTRING, -1, LongInt(PChar(SearchStr)));
jika retVal > CB_Err maka
mulai
(Pengirim sebagai TCombobox).ItemIndex := retVal;
(Pengirim sebagai TCombobox).SelStart := Panjang(SearchStr);
(Pengirim sebagai TCombobox).SelLength :=
(Panjang((Pengirim sebagai TCombobox).Teks) - Panjang(SearchStr));
akhir; // retVal > CB_Err
akhir; // Kunci terakhir <> VK_BACK
Kunci terakhir := 0; // setel ulang Kunci terakhir
akhir;
//Acara OnKeyDown di TCombobox
procedure TForm1.AutoCompleteKeyDown(Pengirim: TObject; var Key: Word;
Pergeseran: TShiftState);
mulai
kunci terakhir := Kunci;
akhir;
◇[DELPHI]Cara menghapus direktori
functionEmptyDirectory(TheDirectory :String ; Rekursif : Boolean) :
Boolean;
var
PencarianRec : TSearchRec;
Jawaban : Bilangan Bulat;
mulai
Hasil := Salah;
Direktori := NormalDir(Direktori);
Res := FindFirst(TheDirectory + '*.*', faAnyFile, SearchRec);
mencoba
sedangkan Res = 0 lakukan
mulai
jika (SearchRec.Name <> '.') dan (SearchRec.Name <> '..') maka
mulai
if ((SearchRec.Attr dan faDirectory) > 0) dan Rekursif
lalu mulai
Direktori Kosong(Direktori + NamaRec.Pencarian, Benar);
HapusDirektori(PChar(Direktori + NamaRec.Pencarian));
akhir
yang lain dimulai
HapusFile(PChar(Direktori + NamaRec.Pencarian))
akhir;
akhir;
Res := TemukanBerikutnya(SearchRec);
akhir;
Hasil := Benar;
Akhirnya
TemukanTutup(SearchRec.FindHandle);
akhir;
akhir;
◇[DELPHI]Cara menghitung ukuran direktori
fungsi GetDirectorySize(const ADirectory: string): Integer;
var
Dir: TSearchRec;
Kembali: bilangan bulat;
Jalur: tali;
mulai
Hasil := 0;
Jalur := ExtractFilePath(ADirectory);
Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);
jika Ret <> NO_ERROR lalu keluar;
mencoba
sementara ret=NO_ERROR lakukan
mulai
inc(Hasil, Dir.Size);
if (Dir.Attr di [faDirectory]) dan (Dir.Name[1] <> '.') maka
Inc(Hasil, GetDirectorySize(Jalur + Dir.Nama + '/*.*'));
Ret := Sysutils.FindNext(Dir);
akhir;
Akhirnya
Sysutils.FindClose(Dir);
akhir;
akhir;
◇[DELPHI]Cara menambahkan penginstal ke daftar Uninstall
Operasikan registri sebagai berikut:
1. Buat kunci utama di bawah kunci HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall dengan nama apa pun.
ContohHKEY_LOCAL_MACHINE/PERANGKAT LUNAK/Microsoft/Windows/CurrentVersion/Uninstall/MyUninstall
2. Masukkan dua nilai string di bawah HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/MyUnistall.
Nama kedua nilai string ini spesifik: DisplayName dan UninstallString.
3. Tetapkan nilai string DisplayName ke nama yang ditampilkan di "Hapus Daftar Aplikasi", seperti 'Bertujuan Uninstall one';
Tetapkan string UninstallString ke perintah penghapusan yang dijalankan, seperti C:/WIN97/uninst.exe -f "C:/TestPro/aimTest.isu"
◇[DELPHI]Pesan penghentian sesi WM_QUERYEND disadap
jenis
TForm1 = kelas(TForm)
prosedur WMQueryEndSession(var Pesan: TWMQueryEndSession); pesan WM_QUERYENDSESSION;
procedure CMeraseBkgnd(var Pesan:TWMEraseBkgnd);Pesan WM_ERASEBKGND;
pribadi
{Deklarasi pribadi}
publik
{Pernyataan publik}
akhir;
prosedur TForm1.WMQueryEndSession(var Pesan: TWMQueryEndSession);
mulai
Showmessage('komputer akan mati');
akhir;
◇[DELPHI]Dapatkan tetangga online
prosedur getnethood();//NT digunakan sebagai server, dan debugging diteruskan pada WIN98.
var
a,i: bilangan bulat;
kode kesalahan: bilangan bulat;
netres:array[0..1023] dari netresource;
enumhandle:handle;
enumentries: kata sandi;
ukuran buffer:kata sandi;
s:tali;
item daftar saya: item daftar;
item daftar saya: item daftar;
semuadomain:tstring;
mulai //listcomputer adalah tampilan daftar untuk membuat daftar semua komputer; pusat kendali adalah formulir.
alldomain:=tstringlist.Buat;
dengan netres[0] dimulai
dwscope :=RESOURCE_GLOBALNET;
tipe dw :=RESOURCETYPE_ANY;
dwdisplaytype :=RESOURCEDISPLAYTYPE_DOMAIN;
penggunaan :=RESOURCEUSAGE_CONTAINER;
lpnamalokal :=nihil;
lnamaremote :=nihil;
lpcomment :=nihil;
penyedia lp := nihil;
end; // Dapatkan semua kolom
kode kesalahan:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
jika errcode=NO_ERROR maka mulailah
enumentri:=1024;
ukuran buffer:=ukuran(netres);
kode kesalahan:=wnetenumresource(enumhandle,enumentries,@netres[0],buffersize);
akhir;
sebuah:=0;
item daftar saya :=controlcenter.lstcomputer.Items;
mylistitems.Clear;
while (string(netres[a].lpprovider)<>'') dan (errcode=NO_ERROR) lakukan
mulai
alldomain.Add (netres[a].lpremotename);
a:=a+1;
akhir;
wnetcloseenum(pegangan enum);
// Dapatkan semua komputer
item daftar saya :=controlcenter.lstcomputer.Items;
mylistitems.Clear;
untuk i:=0 ke alldomain.Count-1 lakukan
mulai
dengan netres[0] dimulai
dwscope :=RESOURCE_GLOBALNET;
tipe dw :=RESOURCETYPE_ANY;
dwdisplaytype :=RESOURCEDISPLAYTYPE_SERVER;
penggunaan :=RESOURCEUSAGE_CONTAINER;
lpnamalokal :=nihil;
lremotename :=pchar(semuadomain[i]);
lpcomment :=nihil;
penyedia lp := nihil;
akhir;
Kode Err:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],EnumHandle);
jika kode kesalahan=NO_ERROR maka
mulai
EnumEntri:=1024;
BufferSize:=Ukuran(NetRes);
Kode Err:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
akhir;
sebuah:=0;
while (string(netres[a].lpprovider)<>'') dan (errcode=NO_ERROR) lakukan
mulai
item daftar saya := item daftar saya.Tambahkan;
mylistitem.ImageIndex :=0;
mylistitem.Caption :=huruf besar(stringreplace(string(NetRes[a].lpremotename),'//','',[rfReplaceAll]));
a:=a+1;
akhir;
wnetcloseenum(pegangan enum);
akhir;
akhir;
◇[DELPHI] Dapatkan direktori bersama di komputer tertentu
prosedur getsharefolder(const nama komputer:string);
var
kode kesalahan,a:integer;
netres:array[0..1023] dari netresource;
enumhandle:handle;
enumentries,buffersize:dword;
s:tali;
item daftar saya: item daftar;
item daftar saya: item daftar;
mystrings:tstringlist;
mulai
dengan netres[0] dimulai
dwscope :=RESOURCE_GLOBALNET;
tipe dw :=RESOURCETYPE_DISK;
dwdisplaytype :=RESOURCEDISPLAYTYPE_SHARE;
penggunaan :=RESOURCEUSAGE_CONTAINER;
lpnamalokal :=nihil;
lremotename :=pchar(nama komputer);
lpcomment :=nihil;
penyedia lp := nihil;
end; // Dapatkan simpul akar
kode kesalahan:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
jika kode kesalahan=NO_ERROR maka
mulai
EnumEntri:=1024;
BufferSize:=Ukuran(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
akhir;
wnetcloseenum(pegangan enum);
sebuah:=0;
item daftar saya:=controlcenter.lstfile.Items;
mylistitems.Clear;
while (string(netres[a].lpprovider)<>'') dan (errcode=NO_ERROR) lakukan
mulai
dengan mylistitems lakukan
mulai
item daftar saya:=tambahkan;
itemsaya.ImageIndex :=4;
mylistitem.Caption :=extractfilename(netres[a].lpremotename);
akhir;
a:=a+1;
akhir;
akhir;
◇[DELPHI] Dapatkan nomor seri hard drive
var SerialNum : pdword; a, b : dword; Buffer : array [0..255] dari char;
mulai
jika GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) maka Label1.Caption := IntToStr(SerialNum^);
akhir;
◇ Pembalikan halaman otomatis [DELPHI] MEMO
Prosedur ScrollMemo(Memo: TMemo; Arah: char);
mulai
arah kasus
'd': mulai
SendMessage(Memo.Handle, { HWND dari Kontrol Memo }
WM_VSCROLL, { Pesan Windows }
SB_PAGEDOWN, { Perintah Gulir }
0) { Tidak Digunakan }
akhir;
'u' : mulai
SendMessage(Memo.Handle, { HWND dari Kontrol Memo }
WM_VSCROLL, { Pesan Windows }
SB_PAGEUP, { Perintah Gulir }
0); { Tidak Digunakan }
akhir;
akhir;
akhir;
prosedur TForm1.Button1Click(Pengirim: TObject);
mulai
ScrollMemo(Memo1,'d'); //halaman ke atas
akhir;
prosedur TForm1.Button1Click(Pengirim: TObject);
mulai
ScrollMemo(Memo1,'u'); //Menutup halaman
akhir;
◇[DELPHI]Tekan enter untuk posisi berikutnya di DBGrid (tombol Tab)
procedure TForm1.DBGrid1KeyPress(Pengirim: TObject; var Key: Char);
mulai
jika Kunci = #13 maka
jika DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 maka
DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl
kalau tidak
mulai
Tabel1.berikutnya;
DBGrid1.Kolom[0].field.FocusControl;
akhir;
akhir;
◇[DELPHI]Cara memasang kontrol
Metode instalasi:
1. Untuk kontrol tunggal, Komponen-->instal komponen..-->file PAS atau DCU-->instal
2. Untuk paket kontrol dengan file *.dpk, File-->open (pilih *.dpk di kotak daftar drop-down)-->install.
3. Untuk paket kontrol dengan file *.dpl, Instal Paket-->Tambah-->nama file dpl.
4. Jika tombol Instal di atas tidak valid, coba tombol Kompilasi.
5. Jika ini adalah lib waktu proses, tambahkan ke runtimepackes di bawah paket di bawah opsi.
Jika muncul pesan bahwa file tidak dapat ditemukan selama kompilasi, biasanya karena direktori instalasi kontrol tidak ada di direktori Lib Delphi. Ada dua cara untuk mengatasi masalah tersebut:
1. Salin file instalasi asli ke direktori Lib delphi.
2. Atau tambahkan jalur kode asli kontrol ke direktori Delphi Lib di Tools-->Environment Options.
◇[DELPHI] Hapus direktori sepenuhnya (deltree)
prosedur TForm1.DeleteDirectory(strDir:String);
var
sr: TSearchRec;
FileAttrs: Integer;
strnamafile:string;
strPth:string;
mulai
strpth:=Dapatkancurrentdir();
FileAttrs := faAnyFile;
jika FindFirst(strpth+'/'+strdir+'/*.*', FileAttrs, sr) = 0 maka
mulai
if (sr.Attr dan FileAttrs) = sr.Attr maka
mulai
strfilename:=sr.Nama;
jika file ada(strpth+'/'+strdir+'/'+strfilename) maka
deletefile(strpth+'/'+strdir+'/'+strnamafile);
akhir;
sementara FindNext(sr) = 0 lakukan
mulai
if (sr.Attr dan FileAttrs) = sr.Attr maka
mulai
strfilename:=sr.nama;
jika file ada(strpth+'/'+strdir+'/'+strfilename) maka
deletefile(strpth+'/'+strdir+'/'+strnamafile);
akhir;
akhir;
TemukanTutup(sr);
dihapusir(strpth+'/'+strdir);
akhir;
akhir;
◇[DELPHI] Dapatkan informasi baris dan kolom dari kursor saat ini dari kontrol TMemo ke Tpoint
1.fungsi ReadCursorPos(SumberMemo: TMemo): TPoint;
var Poin: TPoint;
mulai
point.y := SendMessage(SourceMemo.Handle,EM_LINEFROMCHAR,SourceMemo.SelStart,0);
titik.x := SourceMemo.SelStart-SendMessage(SourceMemo.Handle,EM_LINEINDEX,point.y,0);
Hasil := Poin;
akhir;
2.Panjang Garis:=SendMessage(memol.handle, EM—LINELENGTH, Cpos, 0); //Panjang garis
◇[DELPHI]Baca nomor seri hard disk
fungsi GetDiskSerial(DiskChar: Char): string;
var
Nomor Seri : kata sandi;
a, b : kata;
Buffer: array [0..255] dari char;
mulai
hasil := "";
Jika getVolumeinformation (PCHAR (DISKCHAR+":/"), buffer, sizeof (buffer), serialnum,
a, b, nil, 0) lalu
Hasil: = inttoStr (serialnum^);
akhir;
◇ [Internet] Keterampilan komprehensif CSS umum
1. P: First-Letter {font-size: 300%;
2. <Tautan rel = stylesheet href = "dasar -dasar.css" title = "Contemporary"> // Sambungkan lembar gaya eksternal
3. Embed lembar gaya
<Type style = "text/css" media = screen>
<!--
@Import URL (http://www.htmlhelp.com/style.css); // Impor Lembar Gaya Eksternal
@import url (/stylesheets/punk.css); // sama seperti di atas
Body {latar belakang: url (foo.gif) merah;
.punk {Color: Lime;
#wdg97 {font-size: lebih besar} // lihat 6 untuk referensi.
-->
</tyle>
4. <P style = "color: red; font-family: 'New Century Schoolbook', Serif"> // inline style
<Span style = "font-family: Arial"> Arial </span> // span menerima atribut gaya, kelas dan ID
<Div class = note> <p> Div dapat berisi paragraf, judul, tabel, dan bahkan bagian lain </p> </div>
5. <h1 class = Punk> Atribut kelas </h1> // lihat 3 untuk definisi.
6. <P ID = WDG97> Atribut ID </p> // Lihat 3 untuk definisi.
7. Daftar properti
Gaya Font: Font-Style: [Normal |
Ukuran font: xx-small |
Dekorasi Teks: Dekorasi Teks: [Garis Besar ||
Transformasi Teks: Teks: [tidak ada kapitalisasi |
Warna Latar Belakang: Latar Belakang: [Color> |
Gambar Latar Belakang: Latar Belakang-Image: [Urls> |
Line-height: Normal |
None-style: tidak ada yang solid |
Float: [kiri kanan |
8. satuan panjang
Unit Relatif:
em (em, ketinggian font elemen)
Ex (x-height, ketinggian huruf "x")
PX (piksel, relatif terhadap resolusi layar)
Panjang absolut:
dalam (inci, 1 inci = 2,54 sentimeter)
cm (sentimeter, 1 sentimeter = 10 milimeter)
mm (meter)
PT (titik, 1 poin = 1/72 inci)
PC (PA, 1 PA = 12 poin)
◇ [Delphi] Langkah Singkat untuk Membuat VCL
1. Buat acara Metode Atribut Komponen
(Buat unit perpustakaan, wariskan sebagai jenis baru, tambahkan properti, metode, acara, komponen register, dan buat file paket)
2. Pemrosesan Pusat
3. Penanganan Konsepsi
4. Bagian terlihat
◇ [Delphi] Memuat Perpustakaan Tautan Dinamis
Pemuatan statis: nama prosedur; eksternal 'lib.dll';
Pemuatan Dinamis: Var Handle: Thandle;
handle: = loadLibrary ('lib.dll');
Jika menangani <> 0 lalu
mulai
{dosomething}
freelibrary (pegangan);
akhir;
◇ [Delphi] Variabel dan alamat penunjuk
var x, y: integer; p:^integer; // pointer ke variabel integer
X: = 10; // Penugasan Variabel
p: =@x; // alamat variabel x
y: = p^; // Tetapkan pointer p ke y
@@ Prosedur // Mengembalikan alamat memori dari variabel proses
◇ [Delphi] menentukan apakah karakter tersebut adalah karakter Cina
Bytetype ('bagaimana kabarmu haha', 1) = mbleadbyte // adalah karakter pertama
Bytetype ('bagaimana kabarmu haha', 2) = mbtrailbyte // adalah karakter kedua
Bytetype ('Bagaimana kabarmu haha', 5) = mbsinglebyte // bukan karakter Cina
◇ [Delphi] Operasi penentuan posisi memo
memo1.lines.delete (0) // Hapus baris 1
memo1.selstart: = 10 // Temukan 10 byte
◇ [Delphi] Dapatkan kode internal karakter byte ganda
fungsi getit (s: string): integer;
mulai
Hasil: = byte (S [1]) * $ 100 + byte (S [2]);
akhir;
Gunakan: getit ('perhitungan') // $ bcc6 yaitu desimal 48326
◇ [Delphi] Hubungi Tambahkan Prosedur Penyimpanan Data
Prosedur tersimpan adalah sebagai berikut:
Buat prosedur addrecord (
Record1 Varchar (10)
Record2 Varchar (20)
)
sebagai
mulai
Sisipkan ke tableName (field1, field2) values (: record1 ,: record2)
akhir
Jalankan prosedur tersimpan:
Jalankan prosedur addrecord ("urrecord1", "urrecord2")
◇ [delphi] Simpan file ke bidang gumpalan
fungsi blobcontentToString (const filename: string): string;
mulai
dengan tfilestream.create (nama file, fMopenread) lakukan
mencoba
setLength (hasil, ukuran);
baca (pointer (hasil)^, ukuran);
Akhirnya
bebas;
akhir;
akhir;
// Simpan bidang
mulai
if (OpenDialog1.Execute) lalu
mulai
SFilename: = OpenDialog1.FileName;
Adotable1.Edit;
adotable1.fieldbyname ('visio'). astring: = blobcontenttoString (nama file);
adotable1.post;
akhir;
◇ [delphi] Salin semua file ke clipboard
Menggunakan shlobj, ActiveX, ClipBrd;
Prosedur tform1.copytoclipbrd (var fileName: string);
var
Fe: tformatetc;
Medium: TSTGMEDIUM;
Dropfiles: Pdropfiles;
pfile: pchar;
mulai
Fe.cfformat: = cf_hdrop;
Fe.dwaspect: = dvaspect_content;
Fe.tymed: = tymed_hglobal;
Medium.hglobal: = GlobalAlloc (GMEM_Share atau GMEM_zeroinit, sizeof (tDRopFiles)+panjang (nama file) +1);
Jika medium.hglobal <> 0 maka mulailah
Medium.ymed: = tymed_hglobal;
Dropfiles: = Globallock (medium.hglobal);
mencoba
dropfiles^.pfiles: = sizeof (tdropfiles);
dropfile^.fwide: = false;
longint (pfile): = longint (dropfile)+sizeof (tdropFiles);
Strpcopy (pfile, nama file);
Inc (pfile, panjang (nama file) +1);
pfile^: = #0;
Akhirnya
GlobalUnlock (Medium.hglobal);
akhir;
Clipboard.setashandle (cf_hdrop, medium.hglobal);
akhir;
akhir;
◇ [Delphi] Daftar proses menjalankan sistem saat ini
menggunakan tlhelp32;
prosedur TForm1.Button1Click(Pengirim: TObject);
var lppe: tprocessentry32;
Ditemukan: Boolean;
Tangan: Thandle;
mulai
Tangan: = createToolHelp32snapshot (th32cs_snapall, 0);
Ditemukan: = Process32First (Hand, LPPE);
saat ditemukan lakukan
mulai
Listbox1.items.add (strpas (lppe.szexefile));
Ditemukan: = Process32Next (Hand, LPPE);
akhir;
akhir;
◇ [Delphi] Buat tabel baru Table2 berdasarkan BDETABLE1
Table2: = ttable.create (nil);
mencoba
Table2.databasename: = Table1.databasename;
Table2.fielddefs.assign (Table1.FieldDefs);
Table2.indexdefs.assign (Table1.IndExdefs);
Tabel2.tablename: = 'new_table';
Tabel2.createTable ();
Akhirnya
Tabel2.free ();
akhir;
◇ [Delphi] Cara terbaik untuk memahami penciptaan dan referensi DLL
// Lihatlah sumber DLL (file-> baru-> dll) terlebih dahulu
Proyek Perpustakaan1;
kegunaan
Sysutils, kelas;
addit fungsi (f: integer; s: integer): integer; ekspor;
mulai
Makeasum: = F+S;
akhir;
ekspor
addit;
akhir.
// hubungi (dalam proyek Anda)
pelaksanaan
fungsi addit (f: integer; s: integer): integer; far; eksternal 'proyek1'; // deklarasi
{Panggilan adalah addit (2,4);
◇ [Delphi] Baca secara dinamis ukuran program itu sendiri
fungsi gesselfsize: integer;
var
F: file byte;
mulai
FileMode: = 0;
AssignFile (f, application.exename);
reset (f);
Hasil: = FileSize (f); // Unit ini adalah byte
closeFile (f);
akhir;
◇ [Delphi] Baca informasi BIOS
dengan memo1.lines lakukan
mulai
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)))));
akhir;
◇ [Delphi] Dinamis membuat alias mssql
prosedur TForm1.Button1Click(Pengirim: TObject);
var mylist: tStringlist;
mulai
MyList: = tStringList.create;
mencoba
dengan mylist lakukan
mulai
Add ('name server = 210.242.86.2');
Add ('name basis data = db');
Tambahkan ('nama pengguna = SA');
akhir;
Session1.addalias ('testsql', 'mssql', mylist);
Session1.saveconfigfile;
Akhirnya
Mylist.free;
Session1.active: = true;
Database1.databasename: = 'db';
Database1.aliasname: = 'testsql';
Database1.loginpromppt: = false;
Database1.params.add ('nama pengguna = SA');
Database1.params.add ('password =');
Database1.connected: = true;
akhir;
akhir;
procedure TForm1.Button2Click(Pengirim: TObject);
mulai
Database1.connected: = false;
Session1.deletealias ('testsql');
akhir;
◇ [Delphi] Mainkan musik latar
penggunaan mmsystem
// mainkan musik
Mcisendstring ('open e: /1.mid type sequencer alias nn', '', 0, 0);
Mcisendstring ('mainkan nn dari 0', '', 0, 0);
Mcisendstring ('Tutup Animasi', '', 0, 0);
akhir;
// Berhenti bermain
Mcisendstring ('open e: /1.mid type sequencer alias nn', '', 0, 0);
Mcisendstring ('stop nn', '', 0, 0);
Mcisendstring ('Tutup Animasi', '', 0, 0);
◇ [delphi] Kode sampel untuk antarmuka dan kelas
Ketik {Antarmuka dan Deklarasi Kelas: Perbedaannya adalah bahwa anggota data, metode non-publik, dan metode publik tidak menggunakan kata kunci publik di antarmuka}
Isample = antarmuka // tentukan antarmuka isample
fungsi getstring: string;
akhir;
Tsample = class (TinterfacedObject, ISample)
publik
fungsi getstring: string;
akhir;
// definisi fungsi
fungsi tsample.getString: string;
mulai
Hasil: = 'What Show Is';
akhir;
// Panggil objek kelas
sampel var: Tsample;
mulai
Sampel: = tsample.create;
showmessage (sampel.getString+'objek kelas!');
sampel. Gratis;
akhir;
// Antarmuka panggilan
Var SampleInterface: ISample;
Sampel: Tsample;
mulai
Sampel: = tsample.create;
SampleInterface: = Sampel; // Implementasi Antarmuka Harus Menggunakan Kelas
{Dua baris di atas juga dapat dinyatakan sebagai sampel interface: = tsample.create;}
showmessage (campuran interface.getString+'antarmuka!');
//sample.free;unik seperti kelas lokal, kelas dalam antarmuka secara otomatis dirilis}
SampleInterface: = nil; {Release Interface Object}
akhir;
◇ [Delphi] Bilah tugas tidak terlihat seperti program yang sesuai
var
ExtendedStyle: Integer;
mulai
Aplikasi.Inisialisasi;
ExtendedStyle: = getWindowlong (application.handle, gwl_exstyle);
SetWindowlong (application.handle, gwl_exstyle, extendedstyle atau ws_ex_toolwindow dan bukan ws_ex_appwindow);
Application.createForm (tform1, form1);
Aplikasi.Jalankan;
akhir.
◇ [delphi] alt+ctrl+del tidak dapat melihat program
Tambahkan deklarasi setelah implementasi:
Fungsi RegisterServiceProcess (DWPROCESSID, DWTYPE: Integer): Integer;
RegisterServiceProcess (getCurrentProcessId, 1); // Sembunyikan
RegisterServiceProcess (getCurrentProcessId, 0); // display
◇ [Delphi] Mendeteksi simbol drive optik
var drive: char;
cdromid: integer;
mulai
untuk drive: = 'd' ke 'z' lakukan
mulai
cdromid: = getDrivetype (pchar (drive+':/'));
jika cdromid = 5 maka showmessage ('drive cd-rom Anda adalah:'+drive+'disk!');
akhir;
akhir;
◇ [delphi] mendeteksi kartu suara
jika auxgetNumdevs () <= 0 maka showmessage ('No Soundcard ditemukan!') Else ShowMessage ('Any SoundCard ditemukan!');
◇ [delphi] Gambar di grid string
Acara StringGrid.ondrawcell
dengan stringGrid1.canvas lakukan
Draw (rect.left, rect.top, image1.picture.graphic);
◇ [SQL Server] Cara lain untuk menulis pernyataan sejenis di SQL
Misalnya, untuk menemukan semua pengguna yang nama pengguna berisi "C", Anda dapat menggunakan
Gunakan mydatabase
Pilih * dari Table1 di mana nama pengguna seperti '%c%"
Berikut adalah cara lain untuk menyelesaikan fungsi di atas:
Gunakan mydatabase
Pilih * Dari Table1 Where Charindex ('C', Username)> 0
Secara teori, metode ini memiliki satu pernyataan penilaian lebih dari metode sebelumnya, yaitu,> 0, tetapi proses penilaian ini adalah yang tercepat.
Untuk string dan operasi lainnya, bukan masalah besar untuk menggunakan fungsi CharIndex.
Karakter yang ditemukan dapat digunakan secara langsung di Charindex ini, sebagai berikut:
Gunakan mydatabase
Pilih * dari Table1 Where CharIndex ('%', Username)> 0
Itu juga bisa ditulis sebagai:
Gunakan mydatabase
Pilih * dari Table1 Where Charindex (Char (37), Username)> 0
Karakter ASCII adalah %
◇ [Delphi] SQL menampilkan beberapa database/tabel
Pilih a.bianhao yang berbeda, a.xingming, b.gongzi dari "jianjie.dbf" a, "gongzi.dbf" b
Di mana a.bianhao = b.bianhao
◇ [Delphi] RFC (Permintaan Komentar) Terkait
IETF (Gugus Tugas Rekayasa Internet) memelihara dokumen RFC http://www.ietf.cnri.reston.va.us
RFC882: Struktur Header Pesan
RFC1521: MIME Bagian 1, Metode Transmisi Pesan
RFC1945: Dokumentasi Transfer Dokumen Multimedia
◇ [Delphi] Penggunaan tnmuupprocessor
var instream, outstream: tfileStream;
mulai
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; {encoding processing}
//Nmuue.decode; {Decoding Processing}
instream.free;
outstream.free;
akhir;
◇ [Delphi] Operasi tfilestream
// Baca Hitung Byte dari posisi saat ini dari aliran file ke buffer buffer
fungsi baca (var buffer; count: longint): longint; override;
// Baca buffer buffer ke dalam aliran file
function write (const buffer; count: longint): longint; override;
// Atur pointer baca dan tulis saat ini dari stream file untuk mengimbangi
Fungsi mencari (Offset: longint; asal: kata): longint; override;
Origin = {sofrombeginning, sofromcurrent, sofromend}
// Salin hitungan dari posisi saat ini di aliran file lain ke posisi saat ini di aliran file saat ini
function copyFrom (Sumber: tstream; Count: longint): longint;
// Baca file yang ditentukan ke aliran file
var myfstream: tfileStream;
mulai
myfstream: = tfileStream.create (openDialog1.fileName, fMopenread);
akhir;
[JavaScript] Periksa apakah IE plug-in shockwave & quicktime diinstal
<bahasa skrip = "javascript">
var myplugin = navigator.plugins ["shockwave"];
if (myplugin)
Document.writeln ("Anda telah menginstal shockwave!")
kalau tidak
Document.writeln ("Anda belum menginstal Shockwave!")
</script> <br>
<bahasa skrip = "javascript">
var myplugin = navigator.plugins ["quickTime"];
if (myplugin)
Document.writeln ("Anda memiliki QuickTime Installed!")
kalau tidak
Document.writeln ("Anda belum menginstal QuickTime!")
</script>
[Internet] Pengaruh referensi iframe di tabel
<tabel cellpadding = "0" cellspacing = "0">
<tr>
<td> <ilayer id = "ad1" visibilitas = "tersembunyi"> </layer> <nolayer> <iframe src = "i: /jinhtml/zj/h21.htm" marginwidth = "0" marginheight = "110" hspace = "10" vspace = "20" frameborder = "0" scrolling = "1"> </iframe> </nolayer> </td>
</tr>
</tabel>
◇ [Delphi] Keterampilan Kontrol Webbrowser
1. Sadari fungsi pencetakan
Var Vain, Vaout: Olevariant;
Webbrowser.controlinterface.execwb (olecmdid_print, olecmdexecopt_dontpromptuser, sia -sia, vaout);
2. WebBrowser membaca halaman dari stream
fungsi tform1.loadFromStream (const astream: tstream): hResult;
mulai
Astream.seek (0, 0);
Hasil: = (WebBrowser1.Document sebagai iPersistStreamInit) .Load (tStreamAdapter.create (astream));
akhir;
3. "Tentang:" Protokol akan membiarkan Anda menavigasi ke string HTML:
Prosedur TFORM1.LOADHTMLSTRING (SHTML: STRING);
Var Flags, TargetFramename, postdata, header: Olevariant;
WebBrowser1.navigate ('Tentang:' + SHTML, Bendera, TargetFramename, postdata, header)
4. "Res:" Protokol akan memungkinkan Anda menavigasi ke file HTML yang disimpan sebagai sumber daya.
Prosedur TFORM1.LOADHTMLRESOURE;
Var Flags, TargetFramename, postdata, header: Olevariant;
WebBrowser1.navigate ('res: //' + application.exename + '/myhtml', flags, targetframeName, postdata, header)
Gunakan BRCC32.EXE untuk membuat file sumber daya (*.rc)
Myhtml 23 "./html/myhtml.htm"
MoreHtml 23 "./html/morehtml.htm"
{$ R html.res} //html.rc dikompilasi ke dalam html.res
5. Simpan file html lengkap
var
Htmldocument: ihtmldocument2;
Persistfile: iPersistFile;
mulai
Htmldocument: = webbrowser1.document sebagai ihtmldocument2;
Persistfile: = htmldocument sebagai ipersistfile;
Persistfile.save (stringToolestr ('test.htm'), true);
Sedangkan htmldocument.readystate <> 'complete' do
Application.ProcessMessages;
akhir;
◇ [Delphi] Instal Kontrol WebBrowser (Kontrol IE Tertanam)
Anda harus terlebih dahulu memastikan bahwa sistem memiliki Internet Explorer 4 atau yang lebih baru diinstal, menu Delphi-Komponen-Kontrol Activex Import, Pilih Kontrol Internet Microsoft "dalam daftar dan tambahkan ke file paket yang ada, kontrol WebBrowser akan ditampilkan di Panel Kontrol ActiveX.
◇ [Delphi] Menerapkan Formulir Translucent Windows2000
Function SetLayeredWindowattributes (hwnd: hwnd; crkey: longint; Balpha: byte; dwflags: longint): longint;
prosedur TForm1.FormCreate(Pengirim: TObject);
Var L: Longint;
mulai
l: = getWindowlong (pegangan, gwl_exstyle);
L: = L atau $ 80000;
SetWindowlong (pegangan, gwl_exstyle, l);
SetLayeredWindowattributes (pegangan, 0, 180, 2);
akhir;
◇ [Delphi] Program ini menampilkan iklan WebBrowser memuat gambar
var bendera, bingkai, pdata, header: olevariant;
mulai
Webbrowser1.navigate ('http://www.chineseall.com/images/logo.jpg', bendera, bingkai, pdata, header)
akhir;
◇ [delphi] Hitung ukuran direktori
function getDirectorySize (const adirectory: string): integer;
var
Dir: Tsearchrec;
Ret: bilangan bulat;
Path: String;
mulai
Hasil := 0;
Path: = ExtractFilePath (Adirectory);
Ret: = sysutils.findfirst (adirectory, faanyfile, dir);
Jika ret <> no_error maka
KELUAR;
mencoba
Sedangkan ret = no_error do
mulai
Inc (hasil, dir.size);
// Jika itu adalah direktori dan bukan '
if (dir.attr di [fadirectory]) dan (dir.name [1] <> '.') Kemudian
Inc (hasil, getDirectorySize (path + dir.name + '/*.*'));
Ret: = sysutils.findnext (dir);
akhir;
Akhirnya
Sysutils.findclose (dir);
akhir;
akhir;
◇ [Delphi] Bersihkan direktori
FUNGSI KOMELDDIRECTORY (Thedirectory: String; Recursive: Boolean):
Boolean;
var
SearchRec: TSearchRec;
Res: Integer;
mulai
Hasil: = false;
Thedirectory: = NormalDir (TheDirectory);
Res: = findFirst (thedirectory + '*.*', Faanyfile, searchrec);
mencoba
Sedangkan res = 0 lakukan
mulai
if (searchrec.name <> '.') dan (searchrec.name <> '..') lalu
mulai
if ((searchrec.attr dan fadirectory)> 0) dan rekursif
lalu mulai
EmplemtDirectory (thedirectory + searchrec.name, true);
Removedirectory (pchar (thedirectory + searchrec.name));
akhir
yang lain dimulai
DeleteFile (PCHAR (Thedirectory + SearchRec.Name))
akhir;
akhir;
Res: = findNext (searchRec);
akhir;
Hasil := Benar;
Akhirnya
FindClose (searchrec.findhandle);
akhir;
akhir;
◇ [Delphi] Publikasikan program ADO dan instal ADO
Jalankan mDAC_TYP.exe sekali.
Direktori setelah program instalasi diinstal sama dengan jalur direktori yang ditetapkan dalam program. diinstal. Jika tidak, MS Office2000 akan diinstal.
◇ [Delphi] Pencegahan pesan sistem Windows: pesan wm_close
Prosedur wmclose (var msg: tmessage); pesan wm_close;
Prosedur tMAintForm.wmclose (var msg: tmessage);
mulai
m_bclosenoquery: = false;
diwariskan;
akhir;