استخدام واجهات في دلفي. ميزات العمل مع الواجهات في دلفي. عناصر الواجهة القياسية

تمت كتابة المقال بناءً على نتائج تحليلات البرامج التي كتبها المطورون الشباب في مجموعتنا.

نقوم بترتيب تسلسل تبديل المكونات بشكل صحيح

لدى العديد من المستخدمين، وخاصة أولئك الذين عملوا سابقا في DOS، عادة التبديل بين حقول الإدخال ليس باستخدام الماوس، ولكن باستخدام لوحة المفاتيح مع مفتاح Tab. بالإضافة إلى ذلك، فهو أسرع بكثير من تحديد كل حقل باستخدام الماوس. لذلك، يجب ضبط ترتيب تبديل المكونات بشكل صحيح. ينطبق هذا على المكونات الموجودة داخل جميع مكونات الحاوية (اللوحات وGroupBoxes وما شابه ذلك)، وعلى مكونات الحاوية نفسها، إذا كان هناك العديد منها في النموذج.

يتم تحديد ترتيب تبديل المكونات داخل الحاوية بواسطة خاصية TabOrder. المكون الأول الذي يصبح نشطًا هو المكون الذي يساوي TabOrder 0، والثاني الذي يساوي 1، وما إلى ذلك، حتى يتم تعداد كافة المكونات. بالإضافة إلى ذلك، يحتوي المكون على خاصية TabStop، والتي تشير إلى ما إذا كان المكون سيتلقى التركيز عند التبديل باستخدام مفتاح Tab. إذا كنت بحاجة إلى حظر التبديل إلى أي مكون، فاضبط TabStop الخاص به = false. في هذه الحالة، يمكنك فقط التبديل إلى هذا المكون باستخدام الماوس.

هناك حالات عندما يستمر المستخدمون الذين اعتادوا على التبديل بمفتاح معين في برنامج ما، في العادة، في استخدامه في برامج أخرى. يحدث هذا غالبًا مع مستخدمي 1C، حيث يمكن استخدام مفتاح Enter للتنقل عبر حقول الإدخال. حسنًا، سنمنحهم مثل هذه الفرصة في برامجنا إذا طلبوا ذلك. قم بتعيين خاصية KeyPreview الخاصة بالنموذج إلى true واكتب معالج الأحداث OnKeyPress:

الإجراء TForm1.FormKeyPress(Sender: TObject; var Key: Char);
يبدأ
إذا ord(key)=vk_Return إذن
Form1.SelectNext(PriemForm.ActiveControl, true, true);
نهاية؛

يوفر هذا المعالج إمكانية التنقل عبر عناصر النموذج عند الضغط على مفتاح Enter. تجدر الإشارة إلى أن هذه الطريقة لن تعمل مع الأزرار، لأن... يؤدي الضغط على زر Enter إلى النقر فوقه، بينما يؤدي الضغط على Tab إلى التركيز على الإدخال للمكون التالي في تسلسل التبديل.

الأزرار الافتراضية

يعتاد جميع المستخدمين أنفسهم بسرعة على حقيقة أنه في مربعات حوار التطبيق، كقاعدة عامة، يمكنك تأكيد اختيارك باستخدام مفتاح Enter، والإلغاء باستخدام مفتاح Esc. دعونا لا نخيب آمالهم في برامجنا، خاصة أنه من السهل جدًا القيام بها. بالنسبة للزر الذي يستجيب لـ Enter، قم بتعيين الخاصية الافتراضية إلى true. بالنسبة للزر الذي يستجيب لـ Esc، قم بتعيين الخاصية Cancel إلى true. هذا كل شئ.

نعم أو لا

يجب أن تحتوي جميع مربعات الحوار التي تطلب إجراءات المستخدم على زرين على الأقل: تأكيد الإجراء ورفض الإجراء (نعم/لا، حفظ/إلغاء، وما إلى ذلك). يمكن إلغاء الإجراء عن طريق إغلاق النافذة باستخدام الزر [X] الموجود في عنوان النافذة. من غير المقبول إذا كان هناك زر واحد فقط لتأكيد الإجراء، وللرفض يفترض إغلاق النافذة بالزر [X] في العنوان، أو لا توجد إمكانية للرفض على الإطلاق. وهذا يربك المستخدم ويثير سؤالاً منطقياً: كيف ترفض؟

ولا تنس أيضًا ما قيل أعلاه في فقرة "الأزرار الافتراضية".

يجب أن تفتح كافة مربعات الحوار في وسط الشاشة

في المنتصف، وليس في المكان الذي تم إنشاؤه فيه في وضع التصميم. أولاً، إنه أكثر وضوحًا، وثانيًا، فهو يزيل تلقائيًا مشكلة دقة الشاشة المختلفة لمستخدمين مختلفين.

يتم إجراء استثناء إذا كان مربع الحوار غير مشروط، ونتيجة لعمل المستخدم في هذه النافذة، تحدث التغييرات على الفور في النافذة الرئيسية (على سبيل المثال، تصفية مجموعة البيانات، وإعادة رسم الرسوم البيانية، وما إلى ذلك).

يجب ألا تتجاوز أحجام النوافذ حجم الشاشة

بأي حال من الأحوال. إنه عار عندما يمتد جزء من النافذة إلى ما وراء الشاشة. لا يعتمد هذا المتطلب على دقة شاشة المستخدم، أي. أعذار مثل "دعهم يضبطون دقة أعلى" لا تجدي نفعًا.

تغيير الحجم الصحيح لعناصر النافذة

يجب تغيير حجم عناصر النافذة أو تحريكها بشكل صحيح عند تغيير حجم النافذة، وعند تكبير النافذة، وعند استعادة النافذة بعد التكبير.

كل شيء مرئي دائما

لا ينبغي أن يؤدي تقليل حجم النافذة إلى اختفاء عناصر النافذة، ويفضل ألا يؤدي إلى ظهور أشرطة التمرير (شريط التمرير) للنافذة نفسها. يمكنك تحديد الحد الأدنى لأحجام النوافذ بحيث تكون جميع العناصر مرئية ويمكن الوصول إليها. إذا لم يكن من الممكن وضع المكونات بحيث تكون جميعها مرئية في النافذة، فيمكنك استخدام الإشارات المرجعية (مثل PageControl) لتقسيم المكونات إلى مجموعات. كما أننا لا نتجاهل الأعذار المتعلقة بدقة الشاشة.

تلميحات في كل مكان، تلميحات دائما

بالنسبة للأزرار، خاصة على أشرطة الأدوات (مثل شريط الأدوات)، يجب تحديد التلميحات بحيث يكون من الواضح دائمًا سبب الحاجة إلى هذا الزر أو ذاك.

طيف الألوان

لا يجب أن ترسم المكونات الموجودة في النموذج بجميع ألوان قوس قزح. وهذا يتعب العين ويشتت انتباه المستخدم. لا يبدو "رائعاً". يتم استخدام التمييز عندما يكون من الضروري لفت انتباه المستخدم إلى عنصر معين أو جزء معين من النافذة. على سبيل المثال، سجلات الألوان التي تحتوي على أخطاء باللون الأحمر الفاتح، أو على العكس من ذلك، تسجيل السجلات التي تم فحصها بنجاح باللون الأخضر الفاتح.

خاتمة

هناك طريقة جيدة جدًا تتيح لك العثور على العيوب في البرنامج بشكل عام والواجهة بشكل خاص. الأمر بسيط: تخيل نفسك مكان المستخدم وحاول لمدة نصف ساعة العمل بالطريقة التي يعمل بها. ومن الأفضل أن يكون المستخدم ضمن النطاق (على سبيل المثال، يعمل في نفس المؤسسة). وفي هذه الحالة اجلس بجانبه، أو الأفضل بدلاً منه، وحاول القيام بعمله. إدخال البيانات وتغييرها وعرض التقارير وما إلى ذلك. إذا كنت لا تعرف كيفية القيام بذلك بشكل صحيح، اسأل المستخدم الخاص بك. لا تقم فقط بإجراء عملية واحدة أو عمليتين من نفس النوع، كما هو الحال في وضع تصحيح الأخطاء، ولكن 20-30، أو حتى أكثر من عمليات مختلفة، بترتيبات مختلفة. ننسى إدخال شيء ما أو إدخاله بشكل غير صحيح وانظر كيف يتفاعل البرنامج معه. سوف ترى بسرعة نقاط الضعف في برنامجك.

كاتب المقال أتمت عمل لجنة القبول في الجامعة، وفي السنة الأولى من طرح البرنامج كان يقضي 3-4 ساعات يوميا في لجنة القبول، يسجل المتقدمين ويملأ بياناتهم الشخصية ويعطيهم تقارير الامتحانات. وللباقي وقت العملتصحيح الأخطاء والنواقص. صدقوني، في العام المقبل لن يكون هناك أي مشاكل عمليا. حدث الشيء نفسه عند تقديم وحدة شؤون الموظفين.

وبالتالي، ضع تجربة المستخدم في الاعتبار. اجعل من السهل والممتع بالنسبة لهم العمل مع برامجك.

واحد وأكثر نقاط القوةبيئة برمجة دلفيهي بنيتها المفتوحة، والتي بفضلها تسمح دلفي بنوع من البرمجة الوصفية، مما يسمح لك "ببرمجة بيئة البرمجة". هذا النهج يترجم دلفي إلى جودة عالية مستوى جديدأنظمة تطوير التطبيقات وتسمح لك بتضمين أدوات إضافية في هذا المنتج تدعم جميع مراحل الإنشاء تقريبًا أنظمة التطبيق. تنفتح مثل هذه المجموعة الواسعة من الإمكانيات بفضل مفهوم ما يسمى بالواجهات المفتوحة المطبقة في دلفي، والتي تعد حلقة الوصل بين IDE (بيئة التطوير المتكاملة) والأدوات الخارجية.

هذه المقالة مخصصة لواجهات دلفي المفتوحة وتقدم نظرة عامة على الإمكانيات التي توفرها. تحدد دلفي ست واجهات مفتوحة: واجهة الأدوات، وواجهة التصميم، وواجهة الخبراء، وواجهة الملفات، وواجهة التحرير، وواجهة التحكم في الإصدار. ومن غير المرجح أن نتمكن في إطار هذه المقالة من تغطية وتوضيح قدرات كل منهم بالتفصيل. ستساعدك نصوص دلفي المصدرية على فهم المشكلات قيد النظر بشكل أكثر دقة؛ ولحسن الحظ، زودهم المطورون بتعليقات مفصلة. توجد إعلانات الفئات التي تمثل الواجهات العامة في الوحدات النمطية المقابلة في الدليل...\Delphi\Source\ToolsAPI. توفر واجهة التصميم (الوحدة النمطية DsgnIntf.pas) أدوات لإنشاء محررات الخصائص ومحررات المكونات.

يعد محررو الخصائص والمكونات موضوعًا يستحق مناقشة منفصلة، ​​لذلك دعونا نتذكر أن محرر الخاصية يتحكم في سلوك مفتش الكائنات عند محاولة تغيير قيمة الخاصية المقابلة، ويتم تنشيط محرر المكون عندما نقرتين متتاليتينزر الفأرة الأيسر على صورة المكون الموجود في النموذج. واجهة التحكم في الإصدار (وحدة VCSIntf.pas) مخصصة لإنشاء أنظمة التحكم في الإصدار. منذ الإصدار 2.0، تدعم دلفي نظام التحكم في الإصدار المتكامل Intersolv PVCS، لذلك في معظم الحالات ليست هناك حاجة لتطوير النظام الخاص بك. لهذا السبب، سنتجاهل أيضًا واجهة التحكم في الإصدار. تسمح لك واجهة الملفات (وحدة FileIntf.pas) بتجاوز نظام ملفات العمل الخاص بـ IDE، مما يجعل من الممكن اختيار طريقتك الخاصة لتخزين الملفات (في حقول المذكرة على خادم قاعدة البيانات، على سبيل المثال). توفر واجهة التحرير (الوحدة النمطية EditIntf.pas) إمكانية الوصول إلى المخزن المؤقت للنص المصدر، مما يسمح لك بتحليل وإنشاء التعليمات البرمجية، وتحديد موضع المؤشر وتغييره في نافذة محرر التعليمات البرمجية، وكذلك التحكم في التمييز النحوي للنص المصدر.

توفر الفئات الخاصة واجهات للمكونات الموضوعة في النموذج (تحديد نوع المكون، والحصول على مراجع للمكونات الأصلية والفرعية، والوصول إلى الخصائص، ونقل التركيز، والحذف، وما إلى ذلك)، والنموذج نفسه، وملف مورد المشروع. تتيح لك واجهة التحرير أيضًا تحديد ما يسمى بالمنبهات المعيارية التي تحدد رد الفعل على الأحداث مثل تغيير النص المصدر لوحدة نمطية، أو تعديل نموذج، أو إعادة تسمية مكون، أو حفظ وحدة نمطية أو إعادة تسميتها أو حذفها، أو تغيير ملف مورد المشروع، إلخ. توفر واجهة الأداة (ToolIntf Module.pas) وسيلة للمطورين للحصول عليها معلومات عامةحول حالة IDE وتنفيذ إجراءات مثل فتح وحفظ وإغلاق المشاريع والملفات الفردية وإنشاء وحدة نمطية والحصول على معلومات حول المشروع الحالي (عدد الوحدات والنماذج وأسمائها وما إلى ذلك) والتسجيل نظام الملفاتوتنظيم الواجهات للوحدات الفردية، وما إلى ذلك. بالإضافة إلى الإعلامات المعيارية، تحدد واجهة الأداة إشعارات الوظائف الإضافية التي تخطر حول أحداث مثل فتح/إغلاق الملفات والمشاريع، وتحميل وحفظ ملف مشروع سطح المكتب، وإضافة/استبعاد وحدات المشروع، وتثبيت/إلغاء تثبيت الحزم، وتجميع المشروع، و على عكس أجهزة الإعلام المعيارية، تسمح لك أجهزة الإعلام الإضافية بإلغاء تنفيذ بعض الأحداث.

بالإضافة إلى ذلك، توفر واجهة الأداة وسيلة للوصول إلى القائمة الرئيسية لـ Delphi IDE، مما يسمح لك بتضمين عناصر إضافية فيها. تعد واجهة الخبراء (وحدة ExtIntf.pas) هي الأساس لإنشاء خبراء - وحدات برمجية مدمجة في IDE لتوسيع وظائفها. مثال على الخبير هو معالج نموذج قاعدة بيانات دلفي، الذي يقوم بإنشاء نموذج لعرض وتغيير محتويات جدول قاعدة البيانات. بعد تحديد فئة الخبراء، نحتاج إلى التأكد من أن دلفي "تتعلم" عن خبيرنا. للقيام بذلك، تحتاج إلى تسجيله عن طريق استدعاء إجراء RegisterLibraryExpert، وتمريره إلى مثيل فئة الخبراء كمعلمة. كمثال توضيحي، لنقم بإنشاء خبير بسيط في النمط esStandard، والذي، عند تحديد عنصر قائمة دلفي المقابل، يعرض رسالة تفيد بأنه قيد التشغيل. كما ترون من الجدول أعلاه، يتطلب النمط esStandard تجاوز ست طرق:

لكي يتم "وضع الخبير موضع التنفيذ"، يجب عليك تحديد عنصر القائمة Component/Install Component...، وتحديد الوحدة النمطية التي تحتوي على الخبير (في حالتنا exmpl_01.pas) في مربع الحوار Browse، ثم النقر فوق OK، ثم بعد تجميع حزمة dclusr30.dpk في قائمة دلفي الرئيسية، في قسم المساعدة، يجب أن يظهر عنصر Simple Expert 1، عند تحديده، تظهر رسالة المعلومات "بدأ Standard Expert!". يظل سبب وضع دلفي لعنصر قائمة الخبراء في قسم المساعدة لغزًا. إذا كنت لا تحب حقيقة أن عنصر القائمة يظهر أينما تريد دلفي، وليس حيث تريد، فإن الخيار التالي ممكن: إنشاء خبير في نمط الوظيفة الإضافية، مما يلغي الإنشاء التلقائي لعنصر القائمة، و أضف عنصر القائمة "يدويًا" باستخدام واجهة الأداة. سيسمح لك ذلك بتعيين موقع العنصر الجديد في القائمة الرئيسية بطريقة تعسفية.

لإضافة عنصر قائمة، استخدم فئة TIToolServices - أساس واجهة الأداة - وفئات TIMainMenuIntf وTIMenuItemIntf، التي تنفذ واجهات لقائمة IDE الرئيسية وعناصرها. يتم إنشاء مثيل لفئة ToolServices TIToolServices بواسطة IDE نفسه عند تهيئته. يرجى ملاحظة أن مسؤولية إطلاق الواجهات إلى قائمة دلفي الرئيسية وعناصرها تقع بالكامل على عاتق المطور. على طول الطريق، دعونا نعقد العبء الوظيفي للخبير قليلاً: عندما تقوم بتنشيط عنصر القائمة الخاص به، فإنه سيصدر شهادة حول اسم المشروع المفتوح في هذه اللحظةفي البيئة: في هذا المثال، تشغل الوظيفة AddIDEMenuItem المكان المركزي، والتي تضيف عنصر قائمة إلى القائمة الرئيسية لـ Delphi IDE. كمعلمات، فإنه يتلقى نص عنصر القائمة الجديد، ومعرفه، ومعرف العنصر الذي تم إدراج العنصر الجديد قبله، والتمثيل الرمزي للمفتاح، والذي يمكن استخدامه مع مفتاح Ctrl الوصول السريعإلى عنصر جديد، ومعالج حدث يتوافق مع تحديد عنصر جديد. لقد أضفنا عنصر قائمة جديدًا في قسم العرض قبل عنصر الساعات.

الآن دعونا نتعرف على المخطرين. دعنا نحدد مُعلم الوظيفة الإضافية الذي يتتبع إغلاق/فتح المشاريع ويضبط الحقل الذي يخزن اسم المشروع النشط وفقًا لذلك (سنحذف تنفيذ الأساليب التي لم تخضع للتغييرات مقارنة بالمثال السابق للإيجاز): عند تنفيذ المخطر، قمنا بتحديد فئة TAddInNotifier، وهي فئة تابعة لـ TIAddInNotifier، وتجاوزنا طريقة FileNotification. سوف يستدعي IDE هذا الأسلوب في كل مرة يحدث فيها حدث يمكن لمعلم الوظيفة الإضافية الاستجابة له (تتم الإشارة إلى كل حدث من هذا القبيل بواسطة ثابت مطابق من النوع TFileNotification). يتم استخدام حقل الخبير في فئة TAddInNotifier تعليقمع خبير (طريقة TAddInNotifier.FileNotification). في أداة إتلاف الخبير، يكون المخطر غير مسجل ويتم إتلاف المخطر. الآن دعونا نوضح استخدام أجهزة الإخطار المعيارية. لنقم بإنشاء خبير الوظيفة الإضافية الذي يصدر رسائل حول كل عملية حفظ ملف مشروع (من أجل الإيجاز، لا نقدم تنفيذ الأساليب المألوفة لدينا بالفعل): في هذا المثال، يقوم خبير الوظيفة الإضافية بمراقبة الأحداث المقابلة لفتح / إغلاق المشاريع.

في كل مرة يتم فيها فتح مشروع، يتم تسجيل إشعار معياري يتوافق مع ملف المشروع. من حيث التنفيذ، تشبه المنبهات المعيارية مخطرات الوظائف الإضافية: نحدد فئة TModuleNotifier، وهي سليل TIModuleNotifier، ونتجاوز أساليب Notify وComponentRenamed الخاصة بها. يستدعي IDE طريقة الإخطار عند حدوث أحداث معينة تتعلق بهذه الوحدة؛ ضمن هذه الطريقة يتم تحديد رد الفعل تجاه حدث معين. يتم استدعاء الأسلوب ComponentRenamed عند تغيير اسم المكون في نموذج الوحدة النمطية. يرجى ملاحظة أننا لا نستخدم هذه الطريقة، ولكن يجب علينا تجاوزها، وإلا عندما يتغير اسم المكون، سيتم استدعاء طريقة مجردة للفئة الأساسية، مما يؤدي إلى عواقب غير متوقعة.

يعد تسجيل مُخطر معياري عملية أكثر تعقيدًا قليلاً مقارنة بتسجيل مُخطر الوظيفة الإضافية: أولاً نحصل على واجهة الوحدة النمطية (TIModuleInterface)، ثم نقوم بتسجيل المُخطر باستخدام واجهة الوحدة النمطية. عند إغلاق المشروع، يتم إلغاء تسجيل المخطر المعياري (مرة أخرى باستخدام TIModuleInterface) ويتم إتلاف المخطر. في الختام، سنوضح كيف يمكنك تحديد موضع المؤشر في نافذة محرر التعليمات البرمجية. لنقم بإنشاء خبير، عند تحديد عنصر القائمة المناسب، سيعرض رسالة تحتوي على اسم الملف النشط وموضع المؤشر فيه (يتم عرض تنفيذ الطرق الأساسية فقط في هذا المثال): لتحديد موضع المؤشر، يجب أن نحصل على التسلسل التالي من الواجهات: الواجهة المعيارية (TIModuleInterface)؛ واجهة محرر التعليمات البرمجية (TIEditorInterface)؛ واجهة عرض الوحدة النمطية في نافذة المحرر (TIEditView).

إذا كان الملف النصي المصدر (*.pas) نشطًا عند تحديد عنصر قائمة خبير، فسيتم عرض رسالة تحتوي على اسم الملف النشط وموضع المؤشر الحالي فيه. إذا لم يكن الملف النشط ملف pas، فلن يتم إصدار الرسالة. للحصول على اسم الملف النشط، استخدم أسلوب GetCurrentFile لفئة TIToolServices. وبهذا نختتم نظرنا في طرق استخدام الواجهات المفتوحة. يحتوي القرص المضغوط على الكود المصدري لكافة الأمثلة المقدمة. يحتوي القرص المضغوط أيضًا على مثال أكثر تعقيدًا وتفصيلاً، يحتوي على خبير إضافي يسمح للمستخدم بوضع إشارة مرجعية على النص المصدر لوحدات دلفي. يوجد دليل موجز لتثبيت واستخدام Bookmarks Expert في الملف bkmrks97.htm. لذلك، تقدم هذه المقالة نظرة عامة على الواجهات المفتوحة وتقدم أمثلة على استخدامها. دعونا نكرر مرة أخرى: بفضل توفر أكواد المصدر للواجهات المفتوحة، يمكنك بسهولة فهم التفاصيل التي تهمك. نأمل أن تمنحك الإمكانيات المتنوعة التي توفرها الواجهات المفتوحة أكثر من فكرة جريئة ومفيدة.

فقط من أجل النتيجة

الالتزام الصارم بالمواعيد النهائية

الشفافية

تنفيذ المشروع

الدعم الفني كهدية

البرمجة والتعديلات والمشاورات بشأن 1C

كيف نعمل

1. نناقش المشكلة عبر الهاتف. إذا كان لديك إمكانية الوصول عن بعد، فاعرضه على شاشة جهاز الكمبيوتر الخاص بك.

2. نقدر العمل بالروبل إذا كان المشروع كبيرًا، وإذا لم يكن كذلك فعدد الساعات التقريبي.

3. ننجز المهمة.

4. تقبل العمل في برنامجك، وإذا كان هناك أي قصور نقوم بتصحيحه.

5. نحن نصدر فاتورة، أنت تدفع.

تكلفة العمل

1. يتم تقسيم جميع الأعمال إلى 3 فئات: الاستشارة، وتحديث التكوين القياسي، وتطوير أو برمجة تقرير جديد، والمعالجة، والأزرار، وما إلى ذلك.

3. يجب تحضير العمل الذي يزيد عن 10 ساعات مسبقًا. مهمة فنيةمع الوصف وتكلفة العمل. يبدأ العمل بعد الاتفاق على المواصفات الفنية معك.

دعم فني

1. إذا وجدت أي أخطاء في الأعمال المقبولة مسبقاً خلال 3 أشهر، نقوم بتصحيحها مجاناً.

2. بالنسبة للعملاء المنتظمين، نقوم بتصحيح أي قصور في عملنا مجانًا خلال عام.

برنامج لإدارة عملك.

شراء 1C: المؤسسة

نحن الوكيل الرسميشركة 1C، يمكنك شراء منا مختلف منتجات البرمجياتوالتراخيص. بالإضافة إلى شراء "الصندوق"، سنساعدك في إعداد البرنامج وتقديم النصائح وإجراء الإعدادات الأساسية.

  • محاسبة
  • أتمتة المتجر
  • بالجملة
  • المساعدة في التثبيت و الإعداد الأوليالمدرجة في الحزمة!
  • ضبط التكوينات حسب احتياجات العملاء، وتطوير وحدات جديدة في حالة عدم وجود الوظائف الضرورية في التكوين القياسي.
1 ج المحاسبة 1ج: إدارة التجارة 1ج: البيع بالتجزئة 1ج: إدارة الرواتب وشؤون الموظفين
من 3300 فرك. من 6700 فرك. من 3300 فرك. من 7400 فرك.

توفير الخادم.

الإعداد الفوري للخادم + 1C.

لا يوجد خادم؟ لا توجد مشكلة، سوف نقوم باختيار خادم في السحابة وإعداده بسرعة. مقابل رسوم رمزية تحصل على حل موثوق للغاية.

  • التوفر 24\7
  • لا حاجة للاحتفاظ بنفسك مدير النظام(ستغطي المدخرات تكاليف الخادم الخاص بك).
  • الإعداد السريع وتثبيت 1C على الخادم، في 3 أيام سيكون لديك بالفعل نظام يعمل بكامل طاقته.
  • يمكنك الانتقال إلى الملقم المحلي، إذا كان الحل غير مرضي.

الرسائل القصيرة من 1C الخاص بك

هل تريد أن يعرف عملاؤك العروض الترويجية والخصومات؟ هل العملاء لا يعودون؟ قم بإعداد إرسال الرسائل القصيرة مباشرة من 1C!

ستكون شركتنا قادرة على إعداد إرسال الرسائل القصيرة إلى عملائك بسرعة مباشرةً من 1C. أمثلة على الأحداث التي يمكن أتمتتها:

  • نشكرك على الشراء ويتم منح المكافآت فورًا بعد عملية الشراء التالية.
  • استحقاق المكافآت على البطاقة كهدية لعيد ميلاد/مناسبة أخرى أو عطلة.
  • إشعار بوصول البضائع إلى المستودع.
  • انتهاء صلاحية مكافآت الهدايا.
  • إشعار باستلام الدفعة المقدمة وحجز البضائع.
  • العنوان مع الاتجاهات إلى المتجر/المكتب وأرقام الهواتف.
  • وما إلى ذلك وهلم جرا.

يمكن إجراء الإعداد في 1C بواسطة المتخصصين لدينا أو موظفيك. يمكنك عرض التعريفات على صفحة تعريفات الرسائل القصيرة.

  • تسليم مضمون للرسائل النصية القصيرة، يتم تحصيل الأموال فقط مقابل الرسائل النصية القصيرة التي تم تسليمها.
  • أسعار منفصلة لكل رسالة نصية قصيرة.
  • قم بتعبئة رصيدك بطرق مختلفة.
  • عرض سجل جميع الرسائل القصيرة المرسلة في أي وقت.
  • اسم المرسل بدلاً من الرقم الرقمي في هاتف مستلم الرسالة.

البرمجة الشيئية (OOP)، بالإضافة إلى مفهوم الفئة، توفر أيضًا المفهوم الأساسي للواجهة.

ما هي الواجهة وما مميزات العمل بها في لغة برمجة دلفي؟

الواجهة عبارة عن بناء دلالي ونحوي في كود البرنامج المستخدم لتحديد الخدمات المقدمة بواسطة فئة أو مكون (ويكيبيديا).

بشكل أساسي، تحدد الواجهة قائمة بالخصائص والأساليب التي يجب استخدامها عند العمل مع الفئة التي تنفذها هذه الواجهة، بالإضافة إلى توقيعها (الاسم، ونوع البيانات، والمعلمات المقبولة (للإجراءات والوظائف)، وما إلى ذلك). وبالتالي، فإن الفئة التي تنفذ واجهة معينة يجب أن تنفذ جميع مكوناتها. علاوة على ذلك، بما يتفق بدقة مع كيفية وصفها فيه.

غالبًا ما تتم مقارنة الواجهات بالفئات المجردة، ولكن على الرغم من كل أوجه التشابه، فإن هذه المقارنة ليست صحيحة تمامًا. كحد أدنى، تسمح لك الفئات المجردة بالتحكم في رؤية الأعضاء. وفي الوقت نفسه، لم يتم تحديد النطاقات للواجهات.

تسمح لك الواجهات بجعل البنية أكثر مرونة، لأنها توحد الوصول إلى هذه الوظيفة أو تلك، وتسمح لك أيضًا بتجنب عدد من المشكلات المرتبطة بوراثة الفئة (يمكن أيضًا وراثة الواجهات من بعضها البعض).

لإعلان واجهة في دلفي، استخدم الكلمة الأساسية واجهة. هذه هي نفس الكلمة الأساسية التي تحدد قسم الوحدة الذي يمكن الوصول إليه من الخارج (بين الكلمات الرئيسية للواجهة والتنفيذ). ومع ذلك، عند الإعلان عن واجهة، يتم استخدام بناء جملة مختلف، مشابه للإعلان عن الفئات.

دلفي / باسكال

IMyNewInterface = إجراء الواجهة InterfaceProc; نهاية؛

IMyNewInterface =interface

واجهة الإجراءProc؛

نهاية ؛

وبالتالي، فإن بناء جملة تعريف الواجهة نفسه لا يختلف جوهريًا عن لغات البرمجة الأخرى (لا يتم احتساب ميزات بناء الجملة المستندة إلى لغة باسكال). في الوقت نفسه، يحتوي تنفيذ الواجهات على عدد من الميزات المميزة.

الحقيقة هي أن واجهات دلفي تم تقديمها في الأصل لدعم تقنية COM. لذلك، فإن واجهة IInterface، والتي تعتبر في دلفي هي سلف جميع الواجهات الأخرى (نوع من التناظرية TObject)، تحتوي بالفعل على ثلاث طرق أساسية للعمل مع هذه التكنولوجيا: QueryInterface، _AddRef، _Release. ونتيجة لذلك، إذا قام الفصل بتنفيذ أي واجهة، فيجب عليه أيضًا تنفيذ هذه الأساليب. حتى لو لم يكن هذا الفصل مخصصًا لعمل COM.

بسبب هذه الميزة الخاصة بواجهة IInterface، فإن استخدام الواجهات في دلفي، في معظم الحالات، يؤدي إلى إضافة إمكانيات غير مستخدمة بشكل واضح إلى الفصل.

توجد فئة مكتبة TInterfaceObject تحتوي بالفعل على تنفيذ هذه الأساليب، وعند الوراثة منها، ليست هناك حاجة لتنفيذها بنفسك. ولكن بما أن دلفي لا تدعم وراثة الفئات المتعددة، فإن استخدامها غالباً ما يسبب صعوبات إضافية في تصميم وتنفيذ الوظائف المطلوبة بالفعل.

كل هذا أدى إلى حقيقة أنه على الرغم من كل الإمكانيات التي توفرها الواجهات، إلا أنها الاستخدام العمليفي دلفي، لم يتجاوز أي شيء تقريبًا العمل مع COM.

نظرًا لكونها مُحسّنة للعمل بشكل أساسي مع هذه التكنولوجيا، فإن الواجهات، أو بالأحرى الوظائف والقيود المعمارية التي تضيفها بالضرورة، لا تبرر نفسها عند حل المشكلات الأخرى.

لذلك، لا يزال العديد من مبرمجي دلفي، في الواقع، محرومين من أداة قوية ومرنة لتطوير بنية التطبيقات.

خلق واجهه المستخدميقتصر الأمر على المستخدم في الاختيار من بين مجموعة من المكونات الضرورية لتشغيل البرنامج مكونات دلفي، موظفين واجهه المستخدمالإدارة، وكذلك واجهه المستخدمعرض المعلومات، ونقلها إلى النموذج مع التخطيط اللاحق.

يجب أن تستخدم واجهة المستخدم التي تقوم بإنشائها عناصر قياسية مألوفة للمستخدمين وتوفر أقصى قدر من الراحة. يتم تحديد كل هذا في النهاية من خلال معيار مثل فعالية الواجهة - أقصى النتائج بأقل جهد.
مبادئ إنشاء واجهة سهلة الاستخدام معروفة. باعتبارها المبادئ الأكثر عمومية عند الخلق واجهات المستخدمويمكن النظر في ثلاث نقاط رئيسية:

  1. يجب أن يساعد البرنامج في إكمال المهمة، ولا يصبح تلك المهمة.
  2. عند العمل مع البرنامج، يجب ألا يشعر المستخدم بأنه أحمق.
  3. يجب أن يعمل البرنامج بطريقة لا يعتبرها المستخدم أحمق.
المبدأ الأول- هذا هو ما يسمى بـ "شفافية" الواجهة. يجب أن تكون واجهة المستخدم بديهية وسهلة التعلم ولا تخلق مشاكل للمستخدم والتي سيتعين عليه التغلب عليها أثناء عملية العمل. استخدم المكونات القياسية دون زخرفة غير ضرورية، واستخدم تقنيات التحكم المألوفة التي تستخدمها برامج مماثلة، وسوف تحقق معايير الأداء المبدأ الأول.

المبدأ الثانيهو إهمال القدرات الفكرية للمستخدمين. من تجربتي الخاصة، أعلم أن المستخدمين في كثير من الأحيان لا يعرفون كيفية العمل على جهاز كمبيوتر فحسب، بل يخشون ببساطة القيام بأي شيء بمفردهم. ولذلك، يجب أن تكون واجهة المستخدم ودية قدر الإمكان.
علاوة على ذلك، فإن مخاوف المستخدمين غالبا ما تكون مبررة، لأن تكلفة البرنامج، وحتى الكمبيوتر نفسه، لا يمكن مقارنتها بتكلفة قاعدة بيانات تم إنشاؤها على مدى سنوات عديدة من الجهد، على سبيل المثال. ولهذا السبب، عند إنشاء واجهة مستخدم، يجب على المبرمج دائمًا إنشاء "حماية مضمونة" في البرنامج - ضد الإجراءات غير الصحيحة وإدخال المستخدم لبيانات غير صحيحة. لكن بعض المبرمجين يبالغون في هذه الحماية، ويجعلونها تطفلية للغاية، ونتيجة لذلك، فإن عمل البرنامج يشبه العبارة الشهيرة "خطوة إلى اليسار، خطوة إلى اليمين تعتبر هروبًا"! وما يخلقه المبرمج كحل لمشكلة يبدأ في خلق المشاكل بنفسه.
على الامتثال المبدأ الثانيليست هناك حاجة للسماح للبرنامج "بتصحيح" تصرفات المستخدم والإشارة بالضبط إلى الطريقة التي يجب أن يتصرف بها، مما يجبره على الانخراط في إطار ضيق. كما يجب ألا تبالغ في عرض الرسائل الإعلامية، خاصة رسائل الحوار، لأن ذلك يشتت انتباه المستخدم عن العمل. سيكون من الأفضل توفير القدرة على تعطيل التلميحات تمامًا.

المبدأ الثالثهو إنشاء برنامج يتمتع بأعلى القدرات "العقلية" الممكنة. على الرغم من التطور السريع لتكنولوجيا الكمبيوتر، فإنه حتى البرامج المستخدمة على نطاق واسع لا يمكن أن يطلق عليها إلا بشكل مشروط وجود ذكاء اصطناعي. فهي تتدخل في عمل المستخدم من خلال عرض مربعات حوار تحتوي على أسئلة غبية تسبب الارتباك حتى في أبسط المواقف. ونتيجة لذلك، يهتف المستخدمون في قلوبهم: "يا لها من آلة غبية!"
أنا شخصيا منزعج من الأسئلة المستمرة من الجميع تقريبا محرري النصوصحول ما إذا كان سيتم حفظ النص الذي تم تغييره، على الرغم من أن النص الأصلي والحالي لا يختلفان في أي رمز. نعم، لقد كتبت شيئا ما، ولكن بعد ذلك أعدت كل شيء مرة أخرى، هل من المستحيل حقا معرفة ذلك! يجب أن أتحقق مما إذا كنت لم أفسد أي شيء بعد كل شيء.

حاول الالتزام بالقواعد التالية:

عناصر الواجهة القياسية
استخدم المكونات القياسية لعنصر الواجهة هذا. بعد أن واجه المستخدم برنامجك، لن يضيع الوقت في التعرف على بعضه البعض، ولكنه سيبدأ العمل على الفور - وهذه إحدى علامات البرنامج الاحترافي.
لوحة صغيرة من الأدوات
حاول ألا تستخدم الكثير من المكونات المختلفة. وبطبيعة الحال، بعد استخدام مكون قياسي واحد في مكان ما في مكان واحد، في حالة مماثلة، استخدمه أيضًا.
التباعد المتساوي بين عناصر التحكم
ضع عناصر الواجهة على نفس المسافة من بعضها البعض. المكونات المتناثرة بشكل عشوائي تخلق شعوراً بمنتج مصنوع بطريقة غير احترافية. والعكس صحيح، فإن وضع الأزرار والمفاتيح وخانات الاختيار والمكونات الأخرى التي تشكل الواجهة في النموذج، والذي تم التحقق منه بعناية، يعد علامة على العمل عالي الجودة.
ترتيب الجدولة. "طلب صحيح
ترتيب الجدولةهو الترتيب الذي يتحرك به مؤشر الشاشة عبر عناصر التحكم عند الضغط على المفتاح فاتورة غير مدفوعة. في البرنامج المكتوب بشكل صحيح، يتحرك المؤشر وفقًا لمنطق عمل المستخدم مع البرنامج. عند إنشاء برنامج، يقوم المبرمج غالبًا بتغيير المكونات وإزالة بعضها وإضافة أخرى حسب الحاجة. ونتيجة لذلك، في البرنامج النهائي، يقفز المؤشر بشكل عشوائي حول النموذج. بعد الانتهاء من البرنامج، لا تنسى تكوينه ترتيب الجدولة.
اختيار الخط
فقط اترك الخطوط وشأنها. خطوط دلفي الافتراضية مناسبة لأي نظام يمكن تشغيل برنامجك عليه. استخدم الخط الغامق فقط لتسليط الضوء على العناصر المهمة. طلب مائلوخاصة التسطير، والذي قد يخطئ المستخدم في اعتباره ارتباطًا تشعبيًا يعد نموذجًا سيئًا.
اختيار الألوان
أما بالنسبة لألوان عناصر الواجهة، كما هو الحال في الخطوط، فمن الأفضل تركها قياسية بشكل افتراضي. تستخدم دلفي لوحة نظام Windows، ويمكن للمستخدم بسهولة تخصيص الألوان عن طريق تغييرها.
الإدارة البديلة
يجب أن يكون من الممكن التحكم في البرنامج المصمم بشكل احترافي ليس فقط باستخدام الماوس، ولكن أيضًا باستخدام لوحة المفاتيح. يجب ألا تكون هناك وظائف لا يمكن تنفيذها إلا باستخدام الماوس (الرسم باستخدام محرري الرسوم البيانيةلا يحسب!). بالنسبة للوظائف الأكثر استخدامًا، يجب عليك توفير "مفاتيح التشغيل السريع" للوصول السريع.
واجهة الطوب
أما بالنسبة لعناصر محددة في واجهة المستخدم فإن جودة تفاعل المستخدم مع البرنامج تعتمد على:
  • امتثال عنصر التحكم للمهمة التي يؤديها؛
  • القواعد التي يعمل بها عنصر التحكم.
    تناقش هذه الصفحة قواعد إنشاء بعض عناصر الواجهة.
والآن أريد أن أعرض الأدوات التي تقدمها دلفي لإدارة المكونات في النموذج، وموضعها النسبي وسلوك المؤشر عند الضغط على المفتاح فاتورة غير مدفوعة.

لترتيب المكونات بالنسبة لبعضها البعض بالترتيب الصحيح أولا فمن الضروري تسليط الضوء عليها. يمكنك ببساطة وضع دائرة حول المنطقة الموجودة في النموذج الذي يحتوي على المكونات المحددة. أو بالضغط على " يحول"، استخدم نفس الماوس للإشارة إلى كل مكون سيتم تحديده. انقر بالماوس مرة أخرى على المكون المحدد (أثناء الضغط على " يحول") يلغي تحديده.

يمكن إدارة المكونات المحددة ككل - نقلها حول النموذج، وتعيين قيم لنفس الخصائص، ونسخها (للتثبيت، على سبيل المثال، في نموذج آخر)، وحتى حذفها.

الآن انقر بزر الماوس الأيمن على أحد المكونات واختر من القائمة المنبثقة الموضع -> محاذاة...سيظهر مربع حوار يسمح لك بضبط الوضع الأفقي والرأسي للمكونات في المجموعة. على سبيل المثال، نحتاج إلى محاذاة الأزرار الأربعة إلى اليسار والتأكد من وجود نفس المسافة العمودية بينها. للقيام بذلك، حدد أزرار الاختيار أفقي: الجوانب اليسرىو عمودي: الفضاء على قدم المساواة.

عن طريق اختيار العنصر مركز، سنقوم بترتيب المكونات بحيث تقع مراكزها على نفس الخط أفقيا أو رأسيا، والعنصر المركز في النافذةينقل المكونات إلى منتصف النافذة، أفقيًا أو رأسيًا أيضًا.

في نفس سطر القائمة فاتورة غير مدفوعة ياردر...يؤدي إلى ظهور مربع حوار يتحكم في كيفية تحرك المؤشر عبر عناصر الواجهة عند الضغط على المفتاح فاتورة غير مدفوعة. عندما يظهر النموذج على الشاشة، سيكون المؤشر بطبيعة الحال على المكون الموجود في السطر الأول من مربع الحوار. وبعد ذلك سوف ينتقل إلى أسفل القائمة. في مربع الحوار، يتحكم سهمان باللون الأزرق لأعلى ولأسفل في موضع المكون المحدد. حدد المكون المطلوب، واستخدم الأسهم لنقله إلى السطر المطلوب في القائمة، وهكذا.

عند اختيار عنصر القائمة التحكم ->تظهر قائمة فرعية تتكون من عنصرين:

  • اجلب للمقدمة
  • إرسال إلى الخلف
هذه هي أساليب المكونات المتوفرة برمجياً أيضاً. Button1.SendToBackينقل الزر إلى "الخلفية" و Button1.BringToFront- اجلب للمقدمة". أي أنه إذا تم وضع مكون فوق آخر، فإن هذه الطرق تقوم بتبديل مواضعها. الحالات التي قد ينطبق عليها هذا واضحة جدًا.


قمة