المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : فيديو : درس Windows API | اهم الأشياء التي ينبغي تعلمها


musvc
24-05-2010, 12:00 AM
بسم الله الرحمن الرحيم

درس جديد عن الـ Windows API
اعداد : انا :laugh:

طبيعة الدرس:
لا اعرف, جزء اشرح للمبتدئين و جزء للمتوسطين و جزء للأعلى من المتوسطين:kick:

نبذة عن الدرس :
يلخص الدرس جميع الأشياء الضرورية التي يجب تعلمها عن الـ Windows API
من انشاء Form و Button و Label و التعامل معها و ايضا ً CheckBox و ComboBox و ProgressBar مرفقة لعدم توفر الوقت لشرحها
يلخص ايضا ً التعامل مع الخطوط Fonts و الألوان Colors (سوائا ً بتلوين الفورم و المكونات او لرسم Line)
و كذلك التعامل مع الـ Timer و احداث المكونات مثل حدث المقابل لـ OnClick في الـ Button و OnChange في الـ Edit و تغيير الأيقونة و بعض الأشياء التي لم اذكرها


صرفت نصف يوم في اعداد الدرس و قد عرفت الأن لماذا توقفت دورة الدلفي للعرب بعض الأحيان :laugh:

حجم الدرس 6.65MB
التحميل :
http://www.mediafire.com/?ujn1tooi2do

اسف لآنني لم ادقق في الأملاء
مشاهدة ممتعة
سلام

khiro.alg
24-05-2010, 02:36 AM
السلام عليكم
بارك الله فيك أخي على مجهودك الجميل المفيد
جعله الله في ميزان حسناتك
لكني واجهت مشاكل في التحميل
أرجـوا أن يكون هناك حل أخي

Unprogramme
24-05-2010, 06:29 AM
جزاك ربي أعالي الجنان.

قديم الشوق
24-05-2010, 06:32 AM
وعليكم السلام ورحمة الله وبركاته

الله يبيض وجهك والله يجزاك خير


صرفت نصف يوم في اعداد الدرس و قد عرفت الأن لماذا توقفت دورة الدلفي للعرب بعض الأحيان :laugh:


هل المشكلة في برنامج الشرح ؟

وشكراً مره أخرى

musvc
24-05-2010, 11:26 AM
لكني واجهت مشاكل في التحميل
أرجـوا أن يكون هناك حل أخي

هذا رابط موقع آخر :
http://www.megaupload.com/?d=06jt97mu



هل المشكلة في برنامج الشرح ؟


لا, فقط كيف اشرح, من اين ابدأ, ماذا اشرح, كيف ارتب الدرس, .. من هذه ِ الأمور :)

kachwahed
25-05-2010, 10:30 PM
السلام عليكم
musvc درس جميل :)
هذه مجموعة من الأمثلة المتنوعة لصاحبها LENIN يستخدم فيها مكتبة مصغرة من صنعه:
Win32.Library.LENIN.IN+Demos-D3-D7 (http://www.mediafire.com/file/0f3tzmbdnoy/Win32.Library.LENIN.IN+Demos-D3-D7.rar)
التعليقات بالروسية للأسف لكن يمكن يمكن الاستفادة من Codes :)
---
فقط بخصوص InitCommonControls هو للتأكد من تحميل مكتبات المكونات في النظام.
بالتوفيق.

musvc
26-05-2010, 11:17 AM
هذه مجموعة من الأمثلة المتنوعة لصاحبها LENIN يستخدم فيها مكتبة مصغرة من صنعه
اول مرة ارى المجموعة, تبدو شهية :laugh:

ZMXXX
18-06-2010, 03:45 PM
بسم الله الرحمن الرحيم

اولا اشكرك
تانيا الدرس يتكلم على استعمال الرسوس WIN API
واخيرا ارس السورس التالي واخبرني

program Encrypter;



uses Windows, Messages;

{$R *.RES}

var
wClass: TWndClass; // class struct for main window
hFont, // handle of font
hInst, // handle of program (hinstance)
Handle, // handle of main window
hEncrypt, // handle of encrypt button
hDecrypt, // handle of decrypt button
hEdit, // handle of main edit
hLabel, // handle of password label
hPW: HWND; // handle of password edit
Msg: TMSG; // message struct
dEncrypt,
dDecrypt: Pointer; // default button procedures

(*------------------------------------------------*)

// This lines everything up
procedure Resize;
var
RCT:TRect;
begin
GetWindowRect(Handle,RCT);
MoveWindow(hPW,230,5,RCT.Right-RCT.Left-245,24,True);
MoveWindow(hEdit,5,34,RCT.Right-RCT.Left-20,RCT.Bottom-RCT.Top-66,True);
end;

(*------------------------------------------------*)

// This is to cleanup and stop the program
procedure ShutDown;
begin
DeleteObject(hFont);
UnRegisterClass('Sample Class',hInst);
ExitProcess(hInst); //end program
end;

(*------------------------------------------------*)

// Decrypts the text in hEdit with the text in hPW
procedure Decrypt;
var
x,i, // count variables
sText,sPW: Integer; // size of Text, PW
Text,PW: PChar; // buffer for Text, PW
begin
sText:=GetWindowTextLength(hEdit)+1;
sPW:=GetWindowTextLength(hPW)+1;
GetMem(Text,sText);
GetMem(PW,sPW);
GetWindowText(hEdit,Text,sText);
GetWindowText(hPW,PW,sPW);
x:=0; // initialize count
for i:=0 to sText-2 do
begin
Text[i]:=Chr(Ord(Text[i])-Ord(PW[x]));
Inc(x);
if x=(sPW-1)then x:=0;
end;
SetWindowText(hEdit,Text);
FreeMem(Text);
FreeMem(PW);
end;

(*------------------------------------------------*)

// Encrypts the text in hEdit with the text in hPW
procedure Encrypt;
var
x,i, // count variables
sText,sPW: Integer; // size of Text, PW
Text,PW: PChar; // buffer for Text, PW
begin
sText:=GetWindowTextLength(hEdit)+1;
sPW:=GetWindowTextLength(hPW)+1;
GetMem(Text,sText);
GetMem(PW,sPW);
GetWindowText(hEdit,Text,sText);
GetWindowText(hPW,PW,sPW);
x:=0; // initialize count
for i:=0 to sText-2 do
begin
Text[i]:=Chr(Ord(Text[i])+Ord(PW[x]));
Inc(x);
if x=(sPW-1)then x:=0;
end;
SetWindowText(hEdit,Text);
FreeMem(Text);
FreeMem(PW);
end;

(*------------------------------------------------*)

// This function processes every message sent to the Encrypt Button
function EncryptProc(hWnd,Msg,wParam,lParam:Longint):Longin t; stdcall;
var
i: Integer;
begin
// Always pass the message to the Default procedure
Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lP aram);

case Msg of
// If the user presses TAB we're gunna switch the
// focus over to the Decrypt button.
WM_KEYDOWN: if wParam=9 then SetFocus(hDecrypt);
end;

end;

(*------------------------------------------------*)

// This function processes every message sent to the Decrypt Button
function DecryptProc(hWnd,Msg,wParam,lParam:Longint):Longin t; stdcall;
begin
// Always pass the message to the Default procedure
Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lP aram);

case Msg of
// if the user presses TAB we're gunna switch
// the focus back to the Encrypt button.
WM_KEYDOWN: if wParam=9 then SetFocus(hEncrypt);
end;

end;

(*------------------------------------------------*)

// This function processes every message sent to our Main window
function WindowProc(hWnd,Msg,wParam,lParam:Longint):Longint ; stdcall;
begin
// Always pass the message to the Default procedure
Result:=DefWindowProc(hWnd,Msg,wParam,lParam);

case Msg of
WM_SIZE: Resize;
// When buttons are clicked the message is passed to
// the parent window, so we handle it here.
WM_COMMAND: if lParam=hEncrypt then Encrypt
else if lParam=hDecrypt then Decrypt;
WM_DESTROY: ShutDown;
end;

end;

(*------------------------------------------------*)

// This is the main program function (WinMain)
begin

hInst:=GetModuleHandle(nil); // get the application instance
// hInstance returns zilch

with wClass do
begin
Style:= CS_PARENTDC;
hIcon:= LoadIcon(hInst,'MAINICON');
lpfnWndProc:= @WindowProc;
hInstance:= hInst;
hbrBackground:= COLOR_BTNFACE+1;
lpszClassName:= 'Sample Class';
hCursor:= LoadCursor(0,IDC_ARROW);
end;

// Once our class is registered we
// can start making windows with it
RegisterClass(wClass);

// Create our main window
Handle:=CreateWindow(
'Sample Class', // Registered Class Name
'Encrypter - By: Zmx123 (AT4RE)', // Title of Window
WS_OVERLAPPEDWINDOW or // Basic Window Style
WS_VISIBLE, // Make it Visible
100, // Left
100, // Top
400, // Width
300, // Height
0, // Parent Window Handle
0, // Handle of Menu
hInst, // Application Instance
nil); // Structure for Creation Data

// Create the Encrypt button
hEncrypt:=CreateWindow(
'Button',
'Encrypt',
WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
5,5,65,24,Handle,0,hInst,nil);

// Create the Decrypt button
hDecrypt:=CreateWindow(
'Button',
'Decrypt',
WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
75,5,65,24,Handle,0,hInst,nil);

// Create the main Edit
hEdit:=CreateWindowEx(
WS_EX_CLIENTEDGE, // this EX style is for the beveled edge
'Edit',
'',
WS_VISIBLE or WS_CHILD or ES_LEFT or ES_MULTILINE or ES_WANTRETURN or ES_AUTOVSCROLL or WS_VSCROLL,
5,34,380,234,Handle,0,hInst,nil);

// Create the password Edit
hPW:=CreateWindowEx(
WS_EX_CLIENTEDGE,
'Edit',
'',
WS_VISIBLE or WS_CHILD or ES_LEFT or ES_AUTOHSCROLL ,
230,5,155,24,Handle,0,hInst,nil);

hLabel:=CreateWindow(
'Static',
'Password:',
WS_VISIBLE or WS_CHILD or SS_LEFT,
160,10,70,20,Handle,0,hInst,nil);

// Create a custom font for our window otherwise
// everything would use the system font (blech!)
hFont:=CreateFont(
-12, // Height
0, // Width
0, // Angle of Rotation
0, // Orientation
0, // Weight
0, // Italic
0, // Underline
0, // Strike Out
DEFAULT_CHARSET, // Char Set
OUT_DEFAULT_PRECIS, // Precision
CLIP_DEFAULT_PRECIS, // Clipping
DEFAULT_QUALITY, // Render Quality
DEFAULT_PITCH or FF_DONTCARE, // Pitch & Family
'MS Sans Serif'); // Font Name

// Set the fonts for all our controls
SendMessage(hEncrypt,WM_SETFONT,hFont,0);
SendMessage(hDecrypt,WM_SETFONT,hFont,0);
SendMessage(hEdit,WM_SETFONT,hFont,0);
SendMessage(hPW,WM_SETFONT,hFont,0);
SendMessage(hLabel,WM_SETFONT,hFont,0);

// Subclass Encrypt Button (assign it a custom WindowProc)
dEncrypt:=Pointer(GetWindowLong(hEncrypt,GWL_WNDPR OC));
SetWindowLong(hEncrypt,GWL_WNDPROC,Longint(@Encryp tProc));

// Subclass Decrypt Button
dDecrypt:=Pointer(GetWindowLong(hDecrypt,GWL_WNDPR OC));
SetWindowLong(hDecrypt,GWL_WNDPROC,Longint(@Decryp tProc));

// The reason I don't subclass the Edit controls here
// is because they don't do anything custom. If I wanted
// them to Beep or something whenever you typed a "G" then
// I would subclass them.

// Focus on first control (otherwise people with no mouse are screwed)
SetFocus(hEncrypt);

// Now we loop GetMessage to process each Message in
// our main window's message list. Every time the main
// window recieves a message its added to the list, so
// this loop here will eventually process it.

while(GetMessage(Msg,Handle,0,0))do
begin
TranslateMessage(Msg); // Translate any keyboard Msg's
DispatchMessage(Msg); // Send it to our WindowProc
end; // for processing.

end.