مهارات التطوير الأساسية في لغة دلفي
◇[DELPHI] نسخ الملفات من جوار الشبكة
uusesshellapi;
Copyfile(pchar('newfile.txt'),pchar('//اسم الكمبيوتر/direction/targer.txt'),false);
◇[DELPHI] ينتج تأثير سحب الماوس
يتم التنفيذ من خلال حدث MouseMove، وحدث DragOver، وحدث EndDrag، مثل LABEL on PANEL:
varxpanel,ypanel,xlabel,ylabel:integer;
حدث MouseMove الخاص بـ PANEL:xpanel:=x;ypanel:=y;
حدث DragOver الخاص بـ PANEL:xpanel:=x;ypanel:=y;
حدث MouseMove الخاص بـ LABEL:xlabel:=x;ylabel:=y;
حدث EndDrag الخاص بـ LABEL: label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;
◇[دلفي] الحصول على دليل WINDOWS
uusesshellapi;
varwindir:array[0..255]ofchar;
getwindowsdirectory(windir,sizeof(windir));
أو اقرأ من التسجيل، الموقع:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion
مفتاح SystemRoot، الذي تم الحصول عليه كـ: C:/WINDOWS
◇[DELPHI] رسم خطوط على FORM أو حاويات أخرى
varx,y:array[0..50]ofinteger;
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] استخدام قائمة السلاسل
vartips:tstringlist;
نصائح:=tstringlist.create;
tips.loadfromfile('filename.txt');
edit1.text:=tips[0];
tips.add('lastlineadditionstring');
tips.insert(1,'insertstringatNO2line');
tips.savetofile('newfile.txt');
نصائح مجانية؛
◇[دلفي] عملية الحافظة بسيطة
richedit1.selectall;
richedit1.copytolipboard;
richedit1.cuttoclipboard;
Edit1.pastefromclipboard;
◇[DELPHI] حول عمليات الملفات والدليل
Chdir('c:/abcdir');انتقل إلى الدليل
Mkdir('dirname');إنشاء دليل
رمدير("اسم الاسم"); حذف الدليل
GetCurrentDir;// احصل على اسم الدليل الحالي، بدون "/"
Getdir(0,s);// احصل على اسم دليل العمل s:='c:/abcdir';
Deletfile('abc.txt');//حذف الملف
Renamefile('old.txt','new.txt');// إعادة تسمية الملف
ExtractFilename(filelistbox1.filename);//احصل على اسم الملف
ExtractFileExt(filelistbox1.filename);// احصل على لاحقة الملف
◇[دلفي] معالجة سمات الملف
attr:=filegetattr(filelistbox1.filename);
if(attrandfaReadonly)=faReadonlythen...// للقراءة فقط
if(attrandfaSysfile)=faSysfilethen...//System.out
if(attrandfaArchive)=faArchivethen...//Archive
if(attrandfaHidden)=faHiddenthen...//Hide
◇[DELPHI]تنفيذ الملفات خارج البرنامج
WINEXEC//استدعاء الملف القابل للتنفيذ
winexec('command.com/ccopy*.*c:/',SW_Normal);
winexec('startabc.txt');
ShellExecute أو ShellExecuteEx// ابدأ برنامج اقتران الملفات
functionexecutefile(constfilename,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] احصل على اسم العملية الجارية على النظام
varhCurrentWindow:HWnd;szText:array[0..254]ofchar;
يبدأ
hCurrentWindow:=Getwindow(handle,GW_HWndFrist);
whilehCurrentWindow<>0do
يبدأ
ifGetwindowtext(hcurrnetwindow,@sztext,255)>0thenlistbox1.items.add(strpas(@sztext));
hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext);
نهاية؛
نهاية؛
◇[DELPHI]حول تضمين التجميع
asmEnd;
يمكن تعديل EAX وECX وEDX حسب الرغبة؛ ولا يمكن تعديل ESI وEDI وESP وEBP وEBX.
◇[DELPHI]حول وظيفة تحويل النوع
FloatToStr // النقطة العائمة إلى السلسلة
FloatToStrF // تنسيق النقطة العائمة إلى السلسلة
IntToHex// عدد صحيح إلى النظام الست عشري
TimeToStr
DateToStr
DateTimeToStr
FmtStr// إخراج سلسلة بالتنسيق المحدد
FormatDateTime('YYYY-MM-DD,hh-mm-ss',DATE);
◇[دلفي]إجراءات ووظائف السلسلة
Insert(obj,target,pos);// يتم إدراج هدف السلسلة في موضع pos. إذا كانت نتيجة الإدراج أكبر من الحد الأقصى لطول الهدف، فسيتم اقتطاع الأحرف الإضافية. إذا كان Pos خارج 255، سيحدث خطأ في العملية. على سبيل المثال، st:='Brian'، ثم Insert('OK',st,2) سوف يغير st إلى 'BrOKian'.
حذف(st,pos,Num);// احذف سلسلة فرعية من أحرف Num (عدد صحيح) بدءًا من موضع pos (عدد صحيح) في السلسلة st. على سبيل المثال، st:='Brian'، ثم الحذف(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 وتحتوي على أحرف num (عدد صحيح). إذا كان pos أكبر من طول السلسلة st، فسيتم إرجاع سلسلة فارغة إذا كان pos خارج 255، فسيحدث خطأ في وقت التشغيل. على سبيل المثال، st:='Brian'، ثم تقوم Copy(st,2,2) بإرجاع 'ri'.
Concat(st1,st2,st3...,stn);// قم بتسلسل السلاسل التي تمثلها جميع المتغيرات المستقلة بالترتيب المحدد، وإرجاع القيمة المتسلسلة. إذا كان طول النتيجة 255، سيحدث خطأ في وقت التشغيل. على سبيل المثال، st1:='Brian',st2:='',st3:='Wilfred'، ثم تقوم Concat(st1,st2,st3) بإرجاع 'BrianWilfred'.
length(st);// يُرجع طول تعبير السلسلة st. على سبيل المثال، st:='Brian'، ثم القيمة المرجعة للطول(st) هي 5.
Pos(obj, target);// إرجاع الموضع الذي تظهر فيه سلسلة obj لأول مرة في السلسلة المستهدفة target. إذا لم يكن الهدف يحتوي على سلسلة مطابقة، فإن قيمة الإرجاع لوظيفة Pos هي 0. على سبيل المثال، target:='BrianWilfred'، فإن قيمة الإرجاع Pos('Wil',target) هي 7، وقيمة الإرجاع Pos('hurbet',target) هي 0.
◇[DELPHI]حول التعامل مع التسجيل
this.usesRegistry;
فاريج: التسجيل؛
reg:=Tregistry.create;
reg.rootkey:='HKey_Current_User';
reg.openkey('ControlPanel/Desktop',false);
reg.WriteString('TitleWallpaper','0');
reg.writeString('Wallpaper',filelistbox1.filename);
reg. Closereg;
reg.free;
◇[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: ThisPRogramMustBeRunUnderWin32.
موجه DOS لبرنامج VC++: ThisProgramCannotBeRunInDOSMode.
◇[DELPHI]تشغيل ملفات تعريف الارتباط
Response.cookies("name").domain:='http://www.086net.com';
withresponse.cookies.adddo
يبدأ
الاسم:='اسم المستخدم';
القيمة:='اسم المستخدم';
نهاية
◇[DELPHI] تمت إضافته إلى رابط قائمة المستندات
usshellapi,shlOBJ;
shAddToRecentDocs(shArd_path,pchar(filepath));//إضافة اتصال
shAddToRecentDocs(shArd_path,nil);//Clear
◇[متنوعة] النسخ الاحتياطي لقاموس طريقة الإدخال الذكي ABC
ويندوز/نظام/user.rem
ويندوز/نظام/tmmr.rem
◇[DELPHI] تحديد أزرار الفأرة
ifGetAsyncKeyState(VK_LButton)<>0ثم...// الزر الأيسر
ifGetAsyncKeyState(VK_MButton)<>0ثم...//المفتاح الأوسط
ifGetAsyncKeyState(VK_RButton)<>0ثم...// انقر بزر الماوس الأيمن
◇[DELPHI]ضبط الحد الأقصى لعرض النموذج
حدث onFormCreate
self.width:=screen.width;
self.height:=screen.height;
◇ زر [DELPHI] لقبول الرسائل
تمت معالجتها في حدث OnCreate: application.OnMessage:=MyOnMessage;
الإجراءTForm1.MyOnMessage(varMSG:TMSG;varHandle:Boolean);
يبدأ
ifmsg.message=256then...//أي مفتاح
ifmsg.message=112then...//F1
ifmsg.message=113then...//F2
نهاية؛
◇[متنوعات]إخفاء المجلدات المشتركة
تأثير المشاركة: يمكن الوصول إليه ولكنه غير مرئي (في إدارة الموارد، جوار الشبكة)
اسم المشاركة: الاتجاه $
زيارة: //الكمبيوتر/الاتجاه/
◇[javaScript]التأثيرات شائعة الاستخدام على صفحات ويب JavaScript
من المقرر إغلاق صفحة الويب خلال 60 ثانية
إغلاق النافذة
إنهاء
نقل URL المجدول
من الممكن أيضًا تكوين TQuery أثناء التشغيل، راجع تعليمات Delphi للحصول على التفاصيل.
□◇[DELPHI] احصل على قيمة RGB لنقطة معينة في الصورة
الإجراءTForm1.Image1MouseDown(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:Integer);
فار
الأحمر والأخضر والأزرق: بايت؛
أنا: عدد صحيح؛
يبدأ
i:=image1.Canvas.Pixels[x,y];
أزرق:=GetBValue(i);
الأخضر:=GetGValue(i):
أحمر:=GetRValue(i);
Label1.Caption:=inttostr(Red);
Label2.Caption:=inttostr(أخضر);
Label3.Caption:=inttostr(Blue);
نهاية؛
□◇[DELPHI]حول تحليل تنسيق التاريخ وتحويله
Varear,month,day:Word;now2:Tdatatime;
now2:=date();
فك التشفير (الآن 2، سنة، شهر، يوم)؛
lable1.Text:=inttostr(year)+'year'+inttostr(month)+'month'+inttostr(day)+'day';
◇[DELPHI]كيفية تحديد وضع اتصال الشبكة الحالي
نتيجة الحكم هي وضع MODEM أو LAN أو الخادم الوكيل.
يستخدمwininet;
نوع اتصال الوظيفة: منطقي؛
varflags:dword;
يبدأ
النتيجة:=InternetGetConnectedState(@flags,0);
ifResultthen
يبدأ
إذا (flagsandINTERNET_CONNECTION_MODEM)=INTERNET_CONNECTION_MODEMثم
يبدأ
showmessage('مودم');
نهاية؛
إذا (flagsandINTERNET_CONNECTION_LAN)=INTERNET_CONNECTION_LANثم
يبدأ
showmessage('LAN');
نهاية؛
إذا (flagsandINTERNET_CONNECTION_PROXY)=INTERNET_CONNECTION_PROXYثم
يبدأ
showmessage('Proxy');
نهاية؛
إذا (flagsandINTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSYثم
يبدأ
showmessage('ModemBusy');
نهاية؛
نهاية؛
نهاية؛
◇[DELPHI] كيفية تحديد ما إذا كانت السلسلة هي عنوان بريد إلكتروني صالح
functionIsEMail(EMail:String):Boolean;
vars:String;ETpos:Integer;
يبدأ
ETpos:=pos('@',EMail);
ifETpos>1ثم
يبدأ
s:=copy(EMail,ETpos+1,Length(EMail));
إذا (pos('.',s)>1)و(pos('.',s)<length(s))ثم
النتيجة:=trueelseResult:=false;
نهاية
آخر
النتيجة:=خطأ؛
نهاية؛
◇[DELPHI] تحديد ما إذا كان النظام متصلاً بالإنترنت
يجب تقديم وظيفة InetIsOffline في URL.DLL.
إعلان الوظيفة هو:
functionInetIsOffline(Flag:Integer):Boolean;stdcall;external'URL.DLL';
ثم يمكنك استدعاء الوظيفة لتحديد ما إذا كان النظام متصلاً بالإنترنت
إذا InetIsOffline(0) ثم ShowMessage('غير متصل!')
elseShowMessage('متصل!');
تقوم هذه الدالة بإرجاع القيمة TRUE إذا كان النظام المحلي غير متصل بالإنترنت.
مُرفَق:
تحتوي معظم الأنظمة التي تحتوي على IE أو OFFICE97 على مكتبة الارتباط الحيوي (DLL) هذه متاحة للاتصال.
InetIsOffline
بولينيتيسوفلين(
علامات DWORDdw،
);
◇[DELPHI] تشغيل ملفات WAV وإيقافها مؤقتًا بسهولة
this.usesmmsystem;
functionPlayWav(constFileName:string):Boolean;
يبدأ
النتيجة:=PlaySound(PChar(FileName),0,SND_ASYNC);
نهاية؛
الإجراءStopWav;
فار
المخزن المؤقت:صفيف[0..2]ofchar;
يبدأ
المخزن المؤقت[0]:=#0;
PlaySound(Buffer,0,SND_PURGE);
نهاية؛
◇[DELPHI] احصل على معلومات BIOS للجهاز
withMemo1.Linesdo
يبدأ
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))));
نهاية؛
◇[دلفي] تنزيل الملفات من الإنترنت
this.usesUrlMon;
functionDownloadFile(Source,Dest:string):Boolean;
يبدأ
يحاول
النتيجة:=UrlDownloadToFile(nil,PChar(source),PChar(Dest),0,nil)=0;
يستثني
النتيجة:=خطأ؛
نهاية؛
نهاية؛
إذاDownloadFile('http://www.borland.com/delphi6.zip,'c:/kylix.zip')ثم
ShowMessage("التنزيل ناجح")
elseShowMessage('التنزيل غير ناجح')
◇[DELPHI] حل عنوان IP للخادم
com.useswinsock
functionIPAddrToName(IPAddr:String):String;
فار
SockAddrIn:TSockAddrIn;
HostEnt:PHostEnt;
WSAData:TWSAData;
يبدأ
WSAStartup($101,WSAData);
SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(IPAddr));
HostEnt:=gethostbyaddr(@SockAddrIn.sin_addr.S_addr,4,AF_INET);
ifHostEnt<>nilthenresult:=StrPas(Hostent^.h_name)elseresult:='';
نهاية؛
◇[DELPHI] احصل على الاتصال في الاختصار
functionExeFromLink(constlinkname:string):string;
فار
فدير،
اسم،
ExeName:PChar;
ض:عدد صحيح؛
يبدأ
ExeName:=StrAlloc(MAX_PATH);
FName:=StrAlloc(MAX_PATH);
FDir:=StrAlloc(MAX_PATH);
StrPCopy(FName,ExtractFileName(linkname));
StrPCopy(FDir,ExtractFilePath(linkname));
z:=FindExecutable(FName,FDir,ExeName);
إذا> 32ثم
النتيجة: =StrPas(ExeName)
آخر
النتيجة:='';
StrDispose(FDir);
StrDispose(FName);
StrDispose(ExeName);
نهاية؛
◇[DELPHI]التحكم في الإكمال التلقائي لـ TCombobox
خاصية "مرتبة" فيTComboboxtotrue}
varlastKey:Word;//المتغير العام
// حدث OnChange لـ TCombobox
الإجراءTForm1.AutoCompleteChange(Sender:TObject);
فار
SearchStr:string;
retVal:عدد صحيح;
يبدأ
SearchStr:=(SenderasTCcombobox).Text;
iflastKey<>VK_BACKثم//مسافة للخلف:VK_BACKأو$08
يبدأ
retVal:=(SenderasTCombobox).Perform(CB_FINDSTRING,-1,LongInt(PChar(SearchStr)));
ifretVal>CB_Errthen
يبدأ
(SenderasTCombobox).ItemIndex:=retVal;
(SenderasTCombobox).SelStart:=Length(SearchStr);
(SenderasTCombobox).SelLength:=
(الطول((SenderasTCombobox).Text)-Length(SearchStr));
النهاية;//retVal>CB_Err
end;//lastKey<>VK_BACK
lastKey:=0;//resetlastKey
نهاية؛
// حدث OnKeyDown الخاص بـ TCombobox
الإجراءTForm1.AutoCompleteKeyDown(Sender:TObject;varKey:Word;
Shift:TShiftState);
يبدأ
lastKey:=Key;
نهاية؛
◇[دلفي]كيفية مسح الدليل
functionEmptyDirectory(TheDirectory:String;Recursive:Boolean):
منطقية؛
فار
SearchRec:TSearchRec;
الدقة:عدد صحيح؛
يبدأ
النتيجة:=خطأ؛
TheDirectory:=NormalDir(TheDirectory);
Res:=FindFirst(TheDirectory+'*.*',faAnyFile,SearchRec);
يحاول
whileRes=0do
يبدأ
إذا (SearchRec.Name<>'.') و(SearchRec.Name<>'..') ثم
يبدأ
إذا ((SearchRec.AttrandfaDirectory)>0) وRecursive
ثم ابدأ
EmptyDirectory(TheDirectory+SearchRec.Name,True);
RemoveDirectory(PChar(TheDirectory+SearchRec.Name));
نهاية
elsebegin
حذف الملف(PChar(TheDirectory+SearchRec.Name))
نهاية؛
نهاية؛
الدقة:=FindNext(SearchRec);
نهاية؛
النتيجة:=صحيح؛
أخيراً
FindClose(SearchRec.FindHandle);
نهاية؛
نهاية؛
◇[DELPHI]كيفية حساب حجم الدليل
functionGetDirectorySize(constADirectory:string):Integer;
فار
دير:TSearchRec;
إرجاع: عدد صحيح؛
المسار: سلسلة؛
يبدأ
النتيجة:=0;
Path:=ExtractFilePath(ADirectory);
Ret:=Sysutils.FindFirst(ADirectory,faAnyFile,Dir);
ifRet<>NO_ERRORthenexit;
يحاول
whileret=NO_ERRORdo
يبدأ
inc(Result,Dir.Size);
إذا (Dir.Attrin[faDirectory]) و(Dir.Name[1]<>'.')ثم
Inc(Result,GetDirectorySize(Path+Dir.Name+'/*.*'));
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 للاسم المعروض في "حذف قائمة التطبيقات"، مثل "AimingUninstallone"؛
قم بتعيين السلسلة UninstallString لأمر الحذف الذي تم تنفيذه، مثل C:/WIN97/uninst.exe-f "C:/TestPro/aimTest.isu"
◇[DELPHI]تم اعتراض رسالة إيقاف تشغيل الجلسة WM_QUERYEND
يكتب
TForm1=الفئة(TForm)
الإجراءWMQueryEndSession(varMessage:TWWMQueryEndSession);messageWM_QUERYENDSESSION;
الإجراءCMEraseBkgnd(varMessage:TWMEraseBkgnd);MessageWM_ERASEBKGND;
خاص
{التصريحات الخاصة}
عام
{التصريحات العامة}
نهاية؛
الإجراءTForm1.WMQueryEndSession(varMessage:TWMQueryEndSession);
يبدأ
Showmessage('الكمبيوتر على وشك إيقاف التشغيل');
نهاية؛
◇[DELPHI]احصل على الجيران عبر الإنترنت
الإجراءgetnethood();//يتم استخدام NT كخادم، وتم تمرير تصحيح الأخطاء إلى WIN98.
فار
أ،أنا:عدد صحيح؛
رمز الخطأ:عدد صحيح؛
netres:array[0..1023]ofnetresource;
enumhandle:thhandle;
التعدادات:dword؛
حجم المخزن المؤقت: كلمة؛
ق:سلسلة؛
mylistitems:tlistitems;
mylistitem:tlistitem;
alldomain:tstrings;
begin//listcomputerisalistviewtolistallcomputers;controlcenterisaform.
alldomain:=tstringlist.Create;
مع netres[0]dobegin
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_ANY;
dwdisplaytype:=RESOURCEDISPLAYTYPE_DOMAIN;
dwusage:=RESOURCEUSAGE_CONTAINER;
llocalname:=nil;
lpremotename:=nil;
lpcomment:=nil;
lpprovider:=nil;
end;//احصل على جميع المجالات
errcode:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
iferrcode=NO_ERRORثم ابدأ
التعدادات:=1024;
buffersize:=sizeof(netres);
errcode:=wnetenumresource(enumhandle,enumentries,@netres[0],buffersize);
نهاية؛
أ:=0;
mylistitems:=controlcenter.lstcomputer.Items;
mylistitems.Clear;
بينما(سلسلة(netres[a].lpprovider)<>'')و(errcode=NO_ERROR)do
يبدأ
alldomain.Add(netres[a].lpremotename);
أ:=أ+1;
نهاية؛
wnet Closeenum(enumhandle);
// احصل على كافة أجهزة الكمبيوتر
mylistitems:=controlcenter.lstcomputer.Items;
mylistitems.Clear;
fori:=0toalldomain.Count-1do
يبدأ
مع netres[0]dobegin
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_ANY;
dwdisplaytype:=RESOURCEDISPLAYTYPE_SERVER;
dwusage:=RESOURCEUSAGE_CONTAINER;
llocalname:=nil;
lpremotename:=pchar(alldomain[i]);
lpcomment:=nil;
lpprovider:=nil;
نهاية؛
ErrCode:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],EnumHandle);
iferrcode=NO_ERRORثم
يبدأ
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
نهاية؛
أ:=0;
بينما(سلسلة(netres[a].lprovider)<>'')و(errcode=NO_ERROR)do
يبدأ
mylistitem:=mylistitems.Add;
mylistitem.ImageIndex:=0;
mylistitem.Caption:=uppercase(stringreplace(string(NetRes[a].lpremotename),'//','',[rfReplaceAll]));
أ:=أ+1;
نهاية؛
wnet Closeenum(enumhandle);
نهاية؛
نهاية؛
◇[DELPHI] احصل على الدليل المشترك على جهاز كمبيوتر معين
الإجراء getsharefolder(constcomputername:string);
فار
رمز الخطأ،أ:عدد صحيح؛
netres:array[0..1023]ofnetresource;
enumhandle:thhandle;
التعدادات، حجم المخزن المؤقت: كلمة؛
ق:سلسلة؛
mylistitems:tlistitems;
mylistitem:tlistitem;
mystrings:tstringlist؛
يبدأ
مع netres[0]dobegin
dwscope:=RESOURCE_GLOBALNET;
dwtype:=RESOURCETYPE_DISK;
dwdisplaytype:=RESOURCEDISPLAYTYPE_SHARE;
dwusage:=RESOURCEUSAGE_CONTAINER;
llocalname:=nil;
lpremotename:=pchar(computername);
lpcomment:=nil;
lpprovider:=nil;
end;// احصل على العقدة الجذرية
errcode:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
iferrcode=NO_ERRORثم
يبدأ
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
نهاية؛
wnet Closeenum(enumhandle);
أ:=0;
mylistitems:=controlcenter.lstfile.Items;
mylistitems.Clear;
بينما(سلسلة(netres[a].lpprovider)<>'')و(errcode=NO_ERROR)do
يبدأ
com.withmylistitemsdo
يبدأ
mylistitem:=add;
mylistitem.ImageIndex:=4;
mylistitem.Caption:=extractfilename(netres[a].lpremotename);
نهاية؛
أ:=أ+1;
نهاية؛
نهاية؛
◇[DELPHI] احصل على الرقم التسلسلي للقرص الصلب
varSerialNum:pdword;a,b:dword;Buffer:array[0..255]ofchar;
يبدأ
ifGetVolumeInformation('c:/',Buffer,SizeOf(Buffer),SerialNum,a,b,nil,0)thenLabel1.Caption:=IntToStr(SerialNum^);
نهاية؛
◇ [DELPHI] التقليب التلقائي للصفحة في MEMO
الإجراءScrollMemo(Memo:TMemo;Direction:char);
يبدأ
casedirectionof
"د": البدء
SendMessage(Memo.Handle,{HWNDoftheMemoControl}
WM_VSCROLL،{WindowsMessage}
SB_PAGEDOWN،{ScrollCommand}
0){غير مستخدم}
نهاية؛
'ش': تبدأ
SendMessage(Memo.Handle,{HWNDoftheMemoControl}
WM_VSCROLL، {WindowsMessage}
SB_PAGEUP، {ScrollCommand}
0);{غير مستخدم}
نهاية؛
نهاية؛
نهاية؛
الإجراءTForm1.Button1Click(Sender:TObject);
يبدأ
ScrollMemo(Memo1,'d');// ارفع الصفحة
نهاية؛
الإجراءTForm1.Button1Click(Sender:TObject);
يبدأ
ScrollMemo(Memo1,'u');// اقلب الصفحة
نهاية؛
◇[DELPHI]اضغط على زر الإدخال للانتقال إلى الموضع التالي في DBGrid (مفتاح Tab)
الإجراءTForm1.DBGrid1KeyPress(Sender:TObject;varKey:Char);
يبدأ
ifKey=#13ثم
ifDBGrid1.Columns.Grid.SelectedIndex<DBGrid1.Columns.Count-1then
DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex+1].Field.FocusControl
آخر
يبدأ
Table1.next;
DBGrid1.Columns[0].field.FocusControl;
نهاية؛
نهاية؛
◇[دلفي]كيفية تركيب جهاز التحكم
طريقة التثبيت:
1. لتحكم واحد، المكون-->تثبيت المكون--->ملف PAS أو DCU-->تثبيت
2. بالنسبة لحزم التحكم التي تحتوي على ملفات *.dpk، ما عليك سوى النقر فوق ملف-->فتح (حدد *.dpk في مربع القائمة المنسدلة)-->تثبيت.
3. بالنسبة لحزم التحكم التي تحتوي على ملفات *.dpl، قم بتثبيت InstallPackages-->إضافة-->اسم ملف dpl.
4. إذا كان زر التثبيت أعلاه غير صالح، فجرّب زر الترجمة.
5. إذا كان runtimelib، فأضفه إلى حزم وقت التشغيل ضمن الحزم ضمن الخيار.
إذا ظهرت رسالة مفادها أنه لا يمكن العثور على الملف أثناء الترجمة، فعادةً ما يكون ذلك بسبب عدم وجود دليل تثبيت عنصر التحكم في دليل Lib الخاص بـ Delphi. هناك طريقتان لحل المشكلة:
1. انسخ ملفات التثبيت الأصلية إلى دليل Lib الخاص بدلفي.
2. أو قم بإضافة مسار التعليمات البرمجية الأصلي لعنصر التحكم إلى دليل Delphi Lib في الأدوات-->خيارات البيئة.
◇[DELPHI] حذف الدليل بالكامل (deltree)
الإجراءTForm1.DeleteDirectory(strDir:String);
فار
سر:TSearchRec;
FileAtrs:Integer;
اسم الملف: سلسلة؛
strPth: سلسلة؛
يبدأ
strpth:=Getcurrentdir();
FileAttrs:=faAnyFile;
ifFindFirst(strpth+'/'+strdir+'/*.*',FileAttrs,sr)=0then
يبدأ
if(sr.AttrandFileAttrs)=sr.Attrthen
يبدأ
اسم الملف:=sr.Name;
إذا كان موجودًا (strpth+'/'+strdir+'/'+strfilename)ثم
deletefile(strpth+'/'+strdir+'/'+strfilename);
نهاية؛
whileFindNext(sr)=0do
يبدأ
if(sr.AttrandFileAttrs)=sr.Attrthen
يبدأ
اسم الملف:=sr.name;
إذا كان موجودًا (strpth+'/'+strdir+'/'+strfilename)ثم
deletefile(strpth+'/'+strdir+'/'+strfilename);
نهاية؛
نهاية؛
FindClose(sr);
Removeir(strpth+'/'+strdir);
نهاية؛
نهاية؛
◇[DELPHI] الحصول على معلومات الصف والعمود للمؤشر الحالي لعنصر التحكم TMemo في Tpoint
1.functionReadCursorPos(SourceMemo:TMemo):TPoint;
varPoint: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]قراءة الرقم التسلسلي للقرص الصلب
functionGetDiskSerial(DiskChar:Char):string;
فار
الرقم التسلسلي:pdword;
أ، ب: كلمة؛
المخزن المؤقت:صفيف[0..255]ofchar;
يبدأ
النتيجة: = ""؛
ifGetVolumeInformation(PChar(diskchar+":/"),Buffer,SizeOf(Buffer),SerialNum,
أ، ب، لا شيء، 0) ثم
النتيجة:=IntToStr(SerialNum^);
نهاية؛
◇[الإنترنت]مهارات CSS الشاملة الشائعة
1. P:first-letter{font-size:300%;float:left}// سيكون الحرف الأول أكبر بثلاث مرات من الخط العادي.
2.
3. تضمين ورقة الأنماط
4.
يقبل Arial//SPAN سمات STYLE وCLASS وID
يمكن أن يحتوي DIV على فقرات وعناوين وجداول وحتى أجزاء أخرى
5.
6. // انظر 3 للتعريف. 7. قائمة الممتلكات نمط الخط:نمط الخط:[عادي|مائل|مائل]؛ حجم الخط: حجم الخط: [xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller|<length>|<percent>] زخرفة النص: زخرفة النص: [تسطير||خط علوي||خط من خلال||وميض] تحويل النص:[لا شيء|تكبير|أحرف كبيرة|أحرف صغيرة] لون الخلفية: لون الخلفية: [<color>|شفاف] صورة الخلفية: صورة الخلفية:[ ارتفاع الخط:[عادي|<رقم>|<الطول>|<نسبة مئوية>] نمط الحدود:[لا شيء|منقط|متقطع|صلب|مزدوج|أخدود|تلال|داخل|بداية] تعويم:تعويم:[يسار|يمين|لا شيء] 8. وحدة الطول الوحدات النسبية: em (em، ارتفاع خط العنصر) ex(x-height، ارتفاع الحرف "x") px (عدد البكسل، بالنسبة إلى دقة الشاشة) الطول المطلق: بوصة (بوصة، 1 بوصة = 2.54 سم) سم (سنتيمتر، 1 سنتيمتر = 10 ملليمتر) مم (متر) نقطة (نقطة، 1 نقطة = 1/72 بوصة) كمبيوتر (باسكال، 1 باسكال = 12 نقطة) ◇[DELPHI] خطوات مختصرة لعمل VCL 1. إنشاء أحداث أسلوب سمة المكون (إنشاء وحدات مكتبة، وراثة كأنواع جديدة، إضافة خصائص، طرق، أحداث، تسجيل المكونات، إنشاء ملفات الحزمة) 2. معالجة الرسائل 3. معالجة الاستثناءات 4. الأجزاء مرئية ◇[DELPHI] تحميل مكتبة الارتباط الديناميكي التحميل الثابت: اسم الإجراء؛ external'lib.dll'؛ التحميل الديناميكي: فارهاندل: ثاندل؛ Handle:=loadlibrary('lib.dll'); ifhandle<>0ثم يبدأ {فعل شيء} مكتبة حرة(مقبض); نهاية؛ ◇[DELPHI]متغيرات المؤشر وعناوينه varx,y:integer;p:^integer;//مؤشر إلى متغير INTEGER x:=10; // مهمة متغيرة p:=@x;// عنوان المتغير x y:=p^;// قم بتعيين المؤشر P إلى Y @@procedure// يُرجع عنوان الذاكرة لمتغير العملية ◇[DELPHI] يحدد ما إذا كان الحرف حرفًا صينيًا ByteType('كيف حالك هاها',1)=mbLeadByte// هو الحرف الأول ByteType('كيف حالك هاها',2)=mbTrailByte// هو الحرف الثاني ByteType('كيف حالك هاها',5)=mbSingleByte// ليس حرفًا صينيًا ◇[DELPHI] عملية تحديد موضع المذكرة memo1.lines.delete(0)//حذف السطر 1 memo1.selstart:=10//حدد موقع 10 بايت ◇[DELPHI] الحصول على رمز داخلي للأحرف مزدوجة البايت functiongetit(s:string):integer; يبدأ النتيجة:=byte(s[1])*$100+byte(s[2]); نهاية؛ الاستخدام: getit('calculation')//$bcc6 هو الرقم العشري 48326 ◇[DELPHI]استدعاء إجراء تخزين البيانات ADD الإجراء المخزن هو كما يلي: إنشاء إجراء إضافة سجل ( سجل1فارتشار(10) سجل2فارتشار(20) ) مثل يبدأ إدراج اسم الجدول (field1,field2)القيم(:record1,:record2) نهاية تنفيذ الإجراء المخزن: تنفيذ الإجراءaddrecord("urrecord1"،"urrecord2") ◇[DELPHI]حفظ الملفات في حقول blob functionblobcontenttostring(constfilename:string):string; يبدأ withtfilestream.create(filename,fmopenread)do يحاول setlength(Result,size); قراءة(مؤشر(نتيجة)^,حجم); أخيراً حر؛ نهاية؛ نهاية؛ //حفظ الحقل يبدأ إذا (opendialog1.execute) ثم يبدأ sFileName:=OpenDialog1.FileName; adotable1.edit; adotable1.fieldbyname('visio').asstring:=Blobcontenttostring(FileName); adotable1.post; نهاية؛ ◇[DELPHI]نسخ كافة الملفات إلى الحافظة يستخدمshlobj,activex,clipbrd; الإجراءTform1.copytoclipbrd(varFileName:string); فار FE:TFormatEtc; متوسط: TStgMedium؛ dropfiles:PDropFiles; ملف:PChar; يبدأ FE.cfFormat:=CF_HDROP; FE.dwaspect:=DVASPECT_CONTENT; FE.tymed:=TYMED_HGLOBAL; Medium.hGlobal:=GlobalAlloc(GMEM_SHAREorGMEM_ZEROINIT,SizeOf(TDropFiles)+length(FileName)+1); ifMedium.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,FileName); Inc(pFile,Length(FileName)+1); ملف ^:=#0; أخيراً GlobalUnlock(Medium.hGlobal); نهاية؛ Clipboard.SetAsHandle(CF_HDROP,Medium.hGlobal); نهاية؛ نهاية؛ ◇[DELPHI] قم بإدراج العمليات الحالية التي يقوم النظام بتشغيلها this.usesTLHelp32; الإجراءTForm1.Button1Click(Sender:TObject); varlppe:TProcessEntry32; وجدت:منطقية؛ اليد: المقبض؛ يبدأ اليد:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); وجدت:=Process32First(Hand,lppe); whilefounddo يبدأ ListBox1.Items.Add(StrPas(lppe.szExeFile)); وجدت:=Process32Next(Hand,lppe); نهاية؛ نهاية؛ ◇[DELPHI]إنشاء جدول Table2 جديد بناءً على BDETable1 Table2:=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 ومرجعها // انظر إلى DLLsource(FILE-->NEW-->DLL) أولاً Libraryproject1; الاستخدامات سيسوتيلس،فئات؛ functionaddit(f:integer;s:integer):integer;export; يبدأ makeasum:=f+s; نهاية؛ صادرات إضافة؛ نهاية. // اتصل (INurPROJECT) تطبيق functionaddit(f:integer;s:integer):integer;far;external'project1';//إعلان {المكالمة هي إضافة (2،4)؛ تظهر النتيجة 6} ◇[DELPHI] قراءة حجم البرنامج نفسه ديناميكيًا functionGesSelfSize:integer; فار f:ملف البايت; يبدأ وضع الملف:=0; assetfile(f,application.exename); إعادة تعيين (و)؛ النتيجة:=filesize(f);//الوحدة بايت ملف مغلق(و); نهاية؛ ◇[دلفي] قراءة معلومات BIOS withMemo1.Linesdo يبدأ 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(Sender:TObject); varMyList:TSTringList; يبدأ MyList:=TSTringList.Create; يحاول withMyListdo يبدأ Add('SERVERNAME=210.242.86.2'); Add('DATABASENAME=db'); Add('USERNAME=sa'); نهاية؛ Session1.AddAlias('TESTSQL','MSSQL',MyList);//ミMSSQL ;Session1.SaveConfigFile; أخيراً MyList.Free; Session1.Active:=True; Database1.DatabaseName:='DB'; Database1.AliasName:='TESTSQL'; Database1.LoginPrompt:=False; Database1.Params.Add('USERNAME=sa'); Database1.Params.Add('PASSWORD='); Database1.Connected:=True; نهاية؛ نهاية؛ الإجراءTForm1.Button2Click(Sender:TObject); يبدأ Database1.Connected:=False; الجلسة 1. حذف الاسم المستعار ('TESTSQL')؛ نهاية؛ ◇[دلفي] تشغيل الموسيقى الخلفية com.usmmsystem // تشغيل الموسيقى MCISendString('OPENe:/1.MIDTYPESEQUENCERALIASNN','',0,0); MCISendString('PLAYNNFROM0','',0,0); MCISendString('CLOSEANIMATION','',0,0); نهاية؛ // توقف عن اللعب MCISendString('OPENe:/1.MIDTYPESEQUENCERALIASNN','',0,0); MCISendString('STOPNN','',0,0); MCISendString('CLOSEANIMATION','',0,0); ◇[DELPHI]نموذج التعليمات البرمجية للواجهات والفئات النوع {إعلان الواجهة والفئة: الفرق هو أن أعضاء البيانات وأي طرق غير عامة وأساليب عامة لا تستخدم الكلمة الأساسية العامة في الواجهة} Isample=interface//حدد Isample الواجهة functiongetstring:string; نهاية؛ Tsample=class(TInterfacedObject,Isample) عام functiongetstring:string; نهاية؛ // تعريف الوظيفة functionTsample.getstring:string; يبدأ النتيجة:='whatshowis'; نهاية؛ // استدعاء كائن الفئة varsample:Tsample; يبدأ عينة:=Tsample.create; showmessage(sample.getstring+'classobject!'); عينة مجانية؛ نهاية؛ // واجهة الاتصال varsampleinterface:Isample; عينة: عينة؛ يبدأ عينة:=Tsample.create; SampleInterface:=sample;// يجب أن يستخدم تطبيق الواجهة الفئة {يمكن أيضًا التعبير عن السطرين أعلاه كـ SampleInterface:=Tsample.create;} showmessage(sampleInterface.getstring+'Interface!'); //sample.free;{على عكس الفئات المحلية، يتم إصدار الفئات الموجودة في الواجهة تلقائيًا} SampleInterface:=nil;{إصدار كائن الواجهة} نهاية؛ ◇[DELPHI] شريط المهام لا يبدو وكأنه برنامج مناسب فار ExtendedStyle:Integer; يبدأ Application.Initialize; ExtendedStyle:=GetWindowLong(Application.Handle,GWL_EXSTYLE); SetWindowLong(Application.Handle,GWL_EXSTYLE,ExtendingStyleORWS_EX_TOOLWINDOWANDNOTWS_EX_APPWINDOW); Application.CreateForm(TForm1,Form1); Application.Run; نهاية. ◇[DELPHI] ALT+CTRL+DEL لا يمكنه رؤية البرنامج إضافة إعلان بعد التنفيذ: functionRegisterServiceProcess(dwProcessID,dwType:Integer):Integer;stdcall;external'KERNEL32.DLL'; RegisterServiceProcess(GetCurrentProcessID,1);//Hide RegisterServiceProcess(GetCurrentProcessID,0);//Display ◇[DELPHI]كشف رمز محرك الأقراص الضوئية فاردرايف:شار; cdromID:عدد صحيح; يبدأ fordrive:='d'to'z'do يبدأ cdromID:=GetDriveType(pchar(drive+':/')); ifcdromID=5thenshowmessage('محرك الأقراص المضغوطة الخاص بك هو:'+drive+'disk!'); نهاية؛ نهاية؛ ◇[DELPHI] كشف كرت الصوت ifauxGetNumDevs()<=0thenshowmessage('Nosoundcardfound!')elseshowmessage('Anysoundcardfound!'); ◇[DELPHI]ارسم شبكة السلسلة حدث StringGrid.OnDrawCell withStringGrid1.Canvasdo Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic); ◇[SQLSERVER]طريقة أخرى لكتابة عبارة Like في SQL على سبيل المثال، للعثور على جميع المستخدمين الذين يحتوي اسم المستخدم الخاص بهم على "c"، يمكنك استخدام com.usemydatabase حدد*منالجدول1حيثاسم المستخدممثل'%c%" إليك طريقة أخرى لإكمال الوظيفة المذكورة أعلاه: com.usemydatabase حدد*fromtable1wherecharindex('c',username)>0 من الناحية النظرية، تحتوي هذه الطريقة على بيان حكم واحد أكثر من الطريقة السابقة، أي >0، لكن عملية الحكم هذه هي الأسرع، وأعتقد أن أكثر من 80٪ من العمليات يتم إنفاقها على البحث عن الكلمات. بالنسبة للسلسلة والعمليات الأخرى، ليس من المهم استخدام وظيفة Charindex. هناك أيضًا مزايا لاستخدام هذه الطريقة، أي أنه لا يمكنك استخدام مثل % و| وما إلى ذلك بشكل مباشر. يمكن استخدام الأحرف التي تم العثور عليها مباشرة في هذا Charindex، على النحو التالي: com.usemydatabase حدد*منالجدول1حيثcharindex('%',اسم المستخدم)>0 ويمكن كتابتها أيضًا على النحو التالي: com.usemydatabase حدد*منالجدول1حيثcharindex(char(37),اسم المستخدم)>0 حرف ASCII هو % ◇[DELPHI]يعرض SQL قواعد بيانات/جداول متعددة SELECTDISTINCTA.bianhao،a.xingming،b.gongziFROM"jianjie.dbf"a،"gongzi.DBF"b WHEREA.bianhao=b.bianhao ◇[DELPHI]متعلق بـ RFC (RequestForComment). تحتفظ IETF (فريق عمل هندسة الإنترنت) بمستندات RFC http://www.ietf.cnri.reston.va.us RFC882: بنية رأس الرسالة RFC1521: MIME الجزء 1، أسلوب رسالة الإرسال RFC1945: وثائق نقل مستندات الوسائط المتعددة ◇[DELPHI]استخدام معالج TNMUUP varinStream,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;{معالجة فك التشفير} inStream.free; outStream.free; نهاية؛ ◇[دلفي]عملية TFileStream // قراءة عدد البايتات من الموضع الحالي لدفق الملف إلى المخزن المؤقت BUFFER FunctionRead (varbuffer ؛ count: longint): longint ؛ override ؛ // اقرأ المخزن المؤقت في دفق الملف functionWrite (constbuffer ؛ العد: longint): longint ؛ override ؛ // قم بتعيين مؤشر القراءة والكتابة الحالية لدفق الملفات للتعويض وظيفة الوظيفة (الإزاحة: longint ؛ الأصل: كلمة): longint ؛ تجاوز ؛ Origin = {sofrombeginning ، sofromcurrent ، sofromend} // نسخ عدد من الموضع الحالي في دفق ملف آخر إلى الموضع الحالي في دفق الملف الحالي functionCopyFrom (المصدر: tstream ؛ العد: longint): longint ؛ // اقرأ الملف المحدد إلى دفق الملف varmyfstream: tfilestream ؛ يبدأ myfstream: = tfilestream.create (opendialog1.filename ، fmopenRead) ؛ نهاية؛ [JavaScript] تحقق مما إذا تم تثبيت IE Plug-in ShockWave & QuickTime ------------------ شكرًا لك على صدرك في القراءة ، لديك مهارة ، أتمنى أن تستمر في نشرها!