إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

حول نمط صفحات المشــــروع

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • حول نمط صفحات المشــــروع

    بسم الله الرحمن الرحيم
    الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
    السلام عليكم ورحمة الله وبركاته


    فــــي تجميعيـــة متعددة الصفحــــات سأضطر للتعامل مع صفحات ذات نمط standard

    و أخرى ذات نمــــط FLAT مثلا ليكن مشروعنا ذو صفحتين الاولى standard و الثانية FLAT

    عند التنقل بينهما تأخذ كل صفحة نمط مغاير للأخـــرى

    ---هل من أكواد أو إضافة تقوم بذلك أو حلولا تراها مناسبـــة لجعل لكل صفحة نمط (STYLE) خاص بها

    مشكــــور
    التعديل الأخير تم بواسطة ثامر أبو بلقيس; الساعة 26-11-2016, 10:56 PM.

  • #2
    After the window has been created
    its style cannot be modified

    تعليق


    • #3
      شكــــرا

      تعليق


      • #4
        مع الديالوج يمكن بسهولة "Application.SetDialogProperties"
        أما مع الصفحة أعتقد كان هناك طريقة " فى الواقع لست متذكر جيدا "

        تعليق


        • #5
          المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
          مع الديالوج يمكن بسهولة "Application.SetDialogProperties"
          أما مع الصفحة أعتقد كان هناك طريقة " فى الواقع لست متذكر جيدا "
          مشكـــــور
          قرأت موضوعا فيه إشارات لنفس الطلب لكن لم أفهم
          هي اللغة
          https://forums.indigorose.com/forum/...-setwindowlong

          تعليق


          • #6
            المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
            مشكـــــور
            قرأت موضوعا فيه إشارات لنفس الطلب لكن لم أفهم
            هي اللغة
            https://forums.indigorose.com/forum/...-setwindowlong
            إذن يمكن أن يكون الكود كالتالى للتحويل من ستاندرد :


            كود:
            --
            user32 = Library.Load("user32.dll");
            
            GWL_STYLE			= -16;
            GWL_EXSTYLE			= -20;
            
            WS_CAPTION			= 0xC00000;
            WS_THICKFRAME		= 0x40000;
            WS_MINIMIZE			= 0x20000000;
            WS_MAXIMIZE			= 0x1000000;
            WS_SYSMENU			= 0x80000;
            
            WS_EX_DLGMODALFRAME	= 0x1;
            WS_EX_CLIENTEDGE	= 0x200;
            WS_EX_STATICEDGE 	= 0x20000;
            
            SWP_FRAMECHANGED	= 0x20;
            SWP_NOMOVE			= 0x2;
            SWP_NOSIZE			= 0x1;
            SWP_NOZORDER		= 0x4;
            SWP_NOOWNERZORDER	= 0x200;
            
            removeWindowBorder = function(hWnd)
            	local style;
            	
            	style = user32.GetWindowLongA(hWnd, GWL_STYLE);
            	style = Bitwise.And(style, Bitwise.Not(Bitwise.Or(WS_CAPTION, WS_THICKFRAME, WS_MINIMIZE, WS_MAXIMIZE, WS_SYSMENU)));
            	user32.SetWindowLongA(hWnd, GWL_STYLE, style);
            	
            	style = user32.GetWindowLongA(hWnd, GWL_EXSTYLE);
            	style = Bitwise.And(style, Bitwise.Not(Bitwise.Or(WS_EX_DLGMODALFRAME, WS_EX_CLIENTEDGE, WS_EX_STATICEDGE)));
            	user32.SetWindowLongA(hWnd, GWL_EXSTYLE, style);
            	
            	user32.SetWindowPos(hWnd, 0, 0,0,0,0, Bitwise.Or(SWP_FRAMECHANGED, SWP_NOMOVE, SWP_NOSIZE, SWP_NOZORDER, SWP_NOOWNERZORDER));
            end;
            
            removeWindowBorder(Application.GetWndHandle())

            طبعا هــــ تفعل الإضافة ميمورى إى إكس

            تعليق


            • #7
              المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
              إذن يمكن أن يكون الكود كالتالى للتحويل من ستاندرد :


              كود:
              --
              user32 = library.load("user32.dll");
              
              gwl_style			= -16;
              gwl_exstyle			= -20;
              
              ws_caption			= 0xc00000;
              ws_thickframe		= 0x40000;
              ws_minimize			= 0x20000000;
              ws_maximize			= 0x1000000;
              ws_sysmenu			= 0x80000;
              
              ws_ex_dlgmodalframe	= 0x1;
              ws_ex_clientedge	= 0x200;
              ws_ex_staticedge 	= 0x20000;
              
              swp_framechanged	= 0x20;
              swp_nomove			= 0x2;
              swp_nosize			= 0x1;
              swp_nozorder		= 0x4;
              swp_noownerzorder	= 0x200;
              
              removewindowborder = function(hwnd)
              	local style;
              	
              	style = user32.getwindowlonga(hwnd, gwl_style);
              	style = bitwise.and(style, bitwise.not(bitwise.or(ws_caption, ws_thickframe, ws_minimize, ws_maximize, ws_sysmenu)));
              	user32.setwindowlonga(hwnd, gwl_style, style);
              	
              	style = user32.getwindowlonga(hwnd, gwl_exstyle);
              	style = bitwise.and(style, bitwise.not(bitwise.or(ws_ex_dlgmodalframe, ws_ex_clientedge, ws_ex_staticedge)));
              	user32.setwindowlonga(hwnd, gwl_exstyle, style);
              	
              	user32.setwindowpos(hwnd, 0, 0,0,0,0, bitwise.or(swp_framechanged, swp_nomove, swp_nosize, swp_nozorder, swp_noownerzorder));
              end;
              
              removewindowborder(application.getwndhandle())

              طبعا هــــ تفعل الإضافة ميمورى إى إكس
              وطبعا ينطبق هذا مع أى عنصر أوبجيكت له هاندل

              تعليق


              • #8
                شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

                و إذ أردنا التراجع أي العكس من flat إلى standard كيف سيكون التعديل على الكود ؟
                وخصوصا أنه بفتقد لمعايير دالة


                شكرا جزيلا
                التعديل الأخير تم بواسطة ثامر أبو بلقيس; الساعة 26-11-2016, 10:56 PM.

                تعليق


                • #9
                  مشكلتى لم أتعامل مع الإضافة ميمورى إى إكس حتى الآن

                  تعليق


                  • #10
                    لكن أعتقد رأيت قبل ذلك ملف مفتوح له خصائص تغيير مثل طلبك بالإضافة ميمورى إى إكس

                    سأحاول البحث عنه

                    تعليق


                    • #11
                      محلولة إن شاء الله جارية إجراء عملية إسقاط من خلال الأكواد لحل الإشكال

                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة عبود عبود مشاهدة المشاركة
                        إذن يمكن أن يكون الكود كالتالى للتحويل من ستاندرد :


                        كود:
                        --
                        user32 = Library.Load("user32.dll");
                        
                        GWL_STYLE			= -16;
                        GWL_EXSTYLE			= -20;
                        
                        WS_CAPTION			= 0xC00000;
                        WS_THICKFRAME		= 0x40000;
                        WS_MINIMIZE			= 0x20000000;
                        WS_MAXIMIZE			= 0x1000000;
                        WS_SYSMENU			= 0x80000;
                        
                        WS_EX_DLGMODALFRAME	= 0x1;
                        WS_EX_CLIENTEDGE	= 0x200;
                        WS_EX_STATICEDGE 	= 0x20000;
                        
                        SWP_FRAMECHANGED	= 0x20;
                        SWP_NOMOVE			= 0x2;
                        SWP_NOSIZE			= 0x1;
                        SWP_NOZORDER		= 0x4;
                        SWP_NOOWNERZORDER	= 0x200;
                        
                        removeWindowBorder = function(hWnd)
                        	local style;
                        	
                        	style = user32.GetWindowLongA(hWnd, GWL_STYLE);
                        	style = Bitwise.And(style, Bitwise.Not(Bitwise.Or(WS_CAPTION, WS_THICKFRAME, WS_MINIMIZE, WS_MAXIMIZE, WS_SYSMENU)));
                        	user32.SetWindowLongA(hWnd, GWL_STYLE, style);
                        	
                        	style = user32.GetWindowLongA(hWnd, GWL_EXSTYLE);
                        	style = Bitwise.And(style, Bitwise.Not(Bitwise.Or(WS_EX_DLGMODALFRAME, WS_EX_CLIENTEDGE, WS_EX_STATICEDGE)));
                        	user32.SetWindowLongA(hWnd, GWL_EXSTYLE, style);
                        	
                        	user32.SetWindowPos(hWnd, 0, 0,0,0,0, Bitwise.Or(SWP_FRAMECHANGED, SWP_NOMOVE, SWP_NOSIZE, SWP_NOZORDER, SWP_NOOWNERZORDER));
                        end;
                        
                        removeWindowBorder(Application.GetWndHandle())

                        طبعا هــــ تفعل الإضافة ميمورى إى إكس
                        في لغـــة Basic كل هذه الأكــــواد + الإضافة ==
                        كود PHP:
                        hWnd GetForegroundWindow_()
                           
                        SetWindowLong_(hWnd#GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)&~#WS_CAPTION&~#WS_SIZEBOX) 
                        والعملية العكسية
                        كود PHP:
                           SetWindowLong_(hWnd#GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)|#WS_CAPTION|#WS_SIZEBOX) 
                        ستلاحظ الفارق هو الرمز &~ للرجوع لحالة standard


                        التطبيــــــق :
                        http://up.top4top.net/downloadf-3305apuf1-rar.html

                        مشكور
                        التعديل الأخير تم بواسطة ثامر أبو بلقيس; الساعة 26-11-2016, 10:57 PM.

                        تعليق


                        • #13
                          المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
                          في لغـــة Basic كل هذه الأكــــواد + الإضافة ==
                          كود PHP:
                          hWnd GetForegroundWindow_()
                             
                          SetWindowLong_(hWnd#GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)&~#WS_CAPTION&~#WS_SIZEBOX) 
                          والعملية العكسية
                          كود PHP:
                             SetWindowLong_(hWnd#GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)|#WS_CAPTION|#WS_SIZEBOX) 
                          ستلاحظ الفارق هو الرمز &~ للرجوع لحالة STANDAD


                          التطبيــــــق :
                          http://up.top4top.net/downloadf-3305apuf1-rar.html

                          مشكور


                          أيضا يمكن بالإضافة وينابى " WinApi " ولكن ينقصة إظهار الأزرار :

                          كود:
                          WinApi.SetWindowLong(Application.GetWndHandle(), GWL_STYLE, WS_CAPTION.."|"..WS_SIZEBOX.."|"..WS_MAXIMIZE, true);

                          تعليق


                          • #14
                            تعديل على الكود السابق بالإضافة وينابى يمكن أن يكون الكود ليظهر أزرار التحكم الهاندل والأيكونة مرة أخرى كالتالى :

                            كود:
                            WinApi.SetWindowLong(Application.GetWndHandle(), GWL_STYLE, WS_CAPTION.."|"..WS_SIZEBOX.."|"..WS_BORDER.."|"..WS_OVERLAPPED .."|".. WS_SYSMENU .."|".. ES_MULTILINE .."|".. WS_VISIBLE, true);

                            تعليق


                            • #15
                              بسم الله الرحمن الرحيم
                              السلام عليكم ورحمة الله وبركاته

                              متابع معكم

                              تعليق

                              مواضيع تهمك

                              تقليص

                              المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                              المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                              المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                              المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                              المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                              يعمل...
                              X