فيديو : درس Windows API | اهم الأشياء التي ينبغي تعلمها
#1
بسم الله الرحمن الرحيم

درس جديد عن الـ 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

اسف لآنني لم ادقق في الأملاء
[COLOR="Purple"]مشاهدة ممتعة
سلام[/COLOR]
[-] كل من 2 users say قال شكرا ل musvc على المشاركة المفيدة
  • invocker, mha3
الرد
#2
السلام عليكم
بارك الله فيك أخي على مجهودك الجميل المفيد
جعله الله في ميزان حسناتك
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
الرد
#3
جزاك ربي أعالي الجنان.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#4
وعليكم السلام ورحمة الله وبركاته

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

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

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

وشكراً مره أخرى
الرد
#5
قديم الشوق كتب :هل المشكلة في برنامج الشرح ؟
لا, فقط كيف اشرح, من اين ابدأ, ماذا اشرح, كيف ارتب الدرس, .. من هذه ِ الأمور Smile
[-] كل من 1 user says قال شكرا ل musvc على المشاركة المفيدة
  • mha3
الرد
#6
السلام عليكم
musvc درس جميل Smile
هذه مجموعة من الأمثلة المتنوعة لصاحبها LENIN يستخدم فيها مكتبة مصغرة من صنعه:
Win32.Library.LENIN.IN+Demos-D3-D7
التعليقات بالروسية للأسف لكن يمكن يمكن الاستفادة من Codes Smile
---
فقط بخصوص InitCommonControls هو للتأكد من تحميل مكتبات المكونات في النظام.
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#7
kachwahed كتب :هذه مجموعة من الأمثلة المتنوعة لصاحبها LENIN يستخدم فيها مكتبة مصغرة من صنعه
اول مرة ارى المجموعة, تبدو شهية :laugh:
الرد
#8
بسم الله الرحمن الرحيم

اولا اشكرك
تانيا الدرس يتكلم على استعمال الرسوس 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):Longint; stdcall; var i: Integer; begin // Always pass the message to the Default procedure Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lParam); 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):Longint; stdcall; begin // Always pass the message to the Default procedure Result:=CallWindowProc(dEncrypt,hWnd,Msg,wParam,lParam); 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_WNDPROC)); SetWindowLong(hEncrypt,GWL_WNDPROC,Longint(@EncryptProc)); // Subclass Decrypt Button dDecrypt:=Pointer(GetWindowLong(hDecrypt,GWL_WNDPROC)); SetWindowLong(hDecrypt,GWL_WNDPROC,Longint(@DecryptProc)); // 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.
الرد
#9
بارك الله فيك أخي الكريم
الرد
#10
درس ومشاركات رائعة
بارك الله فيكم أخوتي الكرام
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم