الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقنية المرآة

مغلق
بدأه C-Sharp في 25 يناير 2003 · 27 رد · 3,099 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أريد مثالا على استخدام تقنية المرآة (قلب واجهة المستخدم) في بيئة .Net ، و هل هناك طريقة مباشرة أم أن علينا استخدام ملفات dll ... و شكرا.

#2

وانا اضم صوتى لصوتك واتمنى من احد الاستاذة

وضح مثال مع الشرح

وشكرا

#3

أهلا..

هذا مثال عن كيفية استخدام المرآة..أتمنى ان يعمل أحدكم على تطويره أكثر

لتتوافى مع متطلباته..

مع مثال مرفق..الفكرة كلها في Class دعوتها Mirror...يكفي فقط مناداة الـConstructor

لتتمكن من عرض النافذة بطريقة المرآة..وأيضا هناك extension للـMessageBox

mirror.zip

#4

شكرا لك أخي الكريم BAZRAMIT على المساعدة

شكلها .Net ما تدعم تقنية المرآة بشكل مباشر :(

#5
Mirrored Web Forms 
In Microsoft Visual Studio .NET, you can create ASP.NET applications by using either Microsoft Visual Basic .NET or Microsoft Visual C# .NET. The guidelines that you should follow are basically the same as those you have just seen for mirroring Web content. When you design Arabic Web Forms pages, the best way to make text flow from right to left is to use the DIR attribute. As with Web content, this attribute is usually placed in the  tag or the  tag. Controls and HTML elements on the page then inherit the specified direction. 

You can set the DIR attribute at a DOCUMENT object level. All the controls on the form will inherit the same settings. However, the DIR attribute can be used individually with other tags such as

هذا مقاطع من كتاب

Developing International Software

Copyright © 2003 by Microsoft Corporation

#6

للأسف :(

اقتباس
Windows Forms don't support mirroring directly

شكرا لك أخي TODO

#7

اذا بحثتم قليلا في الرسائل القديمة شوف تجدوا امثلة كاملة عن مايكروسوفت عن كيفية استخدام تكنولوجيا المراه مع كل كائنات .نت

#8

الحقيقة أن المسألة أبسط مما ذكرها أخي BAZRAMIT في المرآة ، حيث انه استخدم الـ Hooking وهو الأمر الذي ربما يصعب المسألة ..

عموما أنا وضعت درس يبين طريقة التعامل مع المرآة بطريقة سهلة جداً ، لكن ننتظر الأخوان في الادارة يضعون مع قائمة الدروس !

#9

أخي أبوفهد

انا استخدمت الـHooks لكي أغير في النصوص الموجودة في الريسورس

المحتفظ بديالوج المسيج بوكس...

بالإمكان تغيير النصوص باستخدام MessageBoxEx بدلا من ذلك في حالة ما إذا

كان النظام يدعم اللغة العربية.

ولكن بالنسبة للمرآة في حد ذاتها، فقط يمكن استخدام الـAPI التالية:

SetWindowLong..ولذلك نظرة متأنية للكود تجد أن الـHooks لا دخل لها بالمرآة

التي هي عكس زوايا رؤية النافذة حسب ما أفهم.

#10

السلام عليكم

الأخ خضر ترزي ... شكرا لك على المشاركة ... لكن هل لي أن أسألك أن تعطيني طرف الخيط للبحث ، لأنني حاولت و لم أفلح :(

الأخ ابو فهد ... أنا بانتظار درسك ... و شكرا للمساعدة

#11

أعرف يا اخي BAZARMIT أن المسألة تدور حول SetWindowLong لكن المسألة استخدمت فيها Hooking وهذا الأمر قد يولد شيئا من اللبس لدى بعض الأخوان (اعتقادا منهم أن لها علاقة بالمرآة) ..

لكن المسألة في الحقيقة هي أسهل من ذلك بكثير حيث لا تستخدم دوال API أبداً :)

#12

السلام عليكم ورحمة الله وبركاته

شكررررررررررا للجمبع

وحمد الله على السلامة يا استاذ خصر الف سلامة

هذا مثال على تقنية الماة من مايكروسوفت ولكنه بالفيجوال بسيك دوت نت ربما يستفيد منه احد وما زلنا فى انتظار مثال بالسى شارب

http://www.microsoft.com/middleeast/msdn/mirror.htm

#13

شكرا لك أخي prince :)

#14

اسف نسيت ان اعدل المشاركة لانى كتبتها لاحقا حيث ان المثال وضع بالفعل

وشكراا

#15

شكرا أخوي أمير مصر ؛) و أيضا أخوي بو فهد

#16

;)

المثال ممتاز جدا و يستخدم SetWindowLong حسب ما رأيت..

أي أنها في العموم تصب في نفس اتجاه الكود الذي أرسلته من قبل...

ولو جربت المثال المذكور من قبل prince of egypt فهو لن يظهر الــMessageBox

بالأزرار العربية...

عموما، ان كان هناك طريقة اخرى غير الـHooks لتغيير نصوص الأزرار...

في الــMessageBox..أتمنى أن أعرفها...

#17

الدرس الذي وضعته بنفس الطريقة التي في الرابط الذي وضعه أخي Prince >

هذا هو الدرس

http://www.arabteam2000.com/Lessons/Pages/...sp?lessonid=225

استخدام دالة SetWindowLong عندما نريد أن نغير Style للويندو في وقت التشغيل .. أما ماورد في المثال فهو عند استدعاء الدالة CreateWindowEx !

أرفقت مثال مع هذه الرسالة يوضح كيفية استخدام المرآة.

:)

mirrortest.zip

#18

السلام عليكم

اريد مثالا على تقنية المراءة لمثال يدعم تعدد اللغات مثلا العربية والانجليزية

عند العمل باللغة العربية تطبق المراءة وتقلب القوائم من الانجليزية الى العربية والعكس فى الحالة الثانية

فمثلا القائمة التالية

File , new open

تصبح

ملف جديد فتح

الى الاخ ابوفهد مثالك لم يعمل معى وظهرت رسالة تخبرنى بان هذا المثال ربما يكون معد بواسطة اصدار سابق من السى شارب:(::(:(

فما هو سبب هذه المشكلة الغريبة

#19

المثال سليم ، لكنني عملت المثال على Visual Studio .NET 2003 فلذلك تخرج لك تلك الرسالة ..

اما بالنسبة لتحويل القوائم بالعربي فهذا يستلزم منك معالجة يدوية لمثل هذه القوائم ، حيث لابد من كتابة التعريب بنفسك ثم تستخدم خاصية Right to left .. وقد تستخدم المرآة !

هذا هو المثال كاملاً:

using System;

using System.Windows.Forms;

using System.Drawing;



namespace MirrorTest

{

	/// <summary>

	/// Summary description for Class1.

	/// </summary>

	class Test

	{

  /// <summary>

  /// The main entry point for the application.

  /// </summary>

  [STAThread]

  static void Main(string[] args)

  {

 	 //

 	 // TODO: Add code to start application here

 	 //

 	 Application.Run(new MirrorForm());

  }

	}

	class MirrorForm : Form

	{

  private const int WS_EX_LAYOUTRTL = 0x400000;

  private const int WS_EX_NOINHERITLAYOUT = 0x100000;

  private Label label = new Label();

  //constructor

  public MirrorForm()

  {

 	 this.label.Location = new System.Drawing.Point(40, 24);

 	 this.label.Name = "label";

 	 this.label.Size = new System.Drawing.Size(80, 16);

 	 this.label.TabIndex = 1;

 	 this.label.Text = "Hello World";

 	 this.Controls.Add(this.label);

  }

  protected override CreateParams CreateParams

  {

 	 get

 	 {

    CreateParams cp = base.CreateParams; // cp contain CreateParams object

    cp.ExStyle = cp.ExStyle | WS_EX_LAYOUTRTL | WS_EX_NOINHERITLAYOUT;

    return cp;

 	 }

  }

	}



}
#20

شكراااااا

شكراا جدا على المثال

وانا لم اكن اعرف ان هناك اصدار جديد من VS.NET نزل

يا ترى فيه حاجة جديدة

اتمنى لوتخبرنا

وشكراااااا

#21

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

محاولات مضنية وهو استخدام ملفات اكس ام ال لتخزن فيها مفردات الواجهة بالعربية وبالانجليزية انا حتى لم اعرف كيف اضيف هذا الملف للنموذج

فهو ليس ملف اكس ام ال عادى يضاف من قائمة المشروع ولكنه موجود فى شريط اكس ام ال ولكنه غير نشط دائما.

على العموم هذا الشرح ما هو واضح لكن هذه الطريقة مطبقة فى كود البرنامج المفتوح المصدر الذى اعده الاستاذ خضر ترزى Clearversion

انا وضعت البرنامج هنا لكم حيث انه كان مشروع مفتوح للجميع.

ارجو الافاده لان هذا الموضوع تعبنى جداا

وشكرا

clearvision.zip

#22

انا قمت بكتابة الرسالة السابقة

ثم وجدتها نشرت باسم الاستاذ مصطفى عبد الرحمن

لا ادرى ما هى المشكلة وانا اسف

يا استاذ مصطفى

على كل لقد زادت مشاركاتك مشاركة:):)

اتمنى ان اجد من يقدم العم لى فى هذا الموضوع

#23

يا استاذة هذا الموضوع مهم جدا

يا ريت اى حد يقدر يساعدنى فيه

اى شى حتى ولو غير كامل

الجاء المساعدة

#24

;)شكرا للجهودك ;)(f)

#25

مرحبا prince of egypt ، بالنسبة لطلبك المساعدة (http://www.arabteam2000.com/vb/showthread....&threadid=25075) حول المراه

ما هي المشكلة التي تواجهك الان بالضبط؟ هل نجحت النماذج في التحول للعربية او لا ؟

هذا الموضوع مغلق.

مواضيع مشابهة