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

arabic treeview

مغلق
بدأه mohfa في 25 نوفمبر 2004 · 12 رد · 8,881 مشاهدة · في قسم بناء المكونات والأدوات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اما بعد

فإخواني الأعزاء انا من مبرمجي المكونات المهم انني الان اطور مكون عربي مشتق من الـTreeview .

لقد اتممت كل شئء بإذن الله لم يبقي لي الا مشكلة واحدة الا وهي توجيه المكون كاملاُ من اليمين الى اليسار يعني امكانية قرأة العربية و هذا هو سؤالي كيف يمكنني توجهه الى اللغة العربية لا يمكنني إستعمال المرأة لان ذالك سيطرح مشكل اخر الا وهو عدم امكانية إضهار بعض المكونات مثل الـ PopUpMenu و حتى تقنية البحث سوف لن تكون ممكنة .

اذاً مستحيل إستعمال هذه التقنية .

و لهذا أخواني الأعزاء انا انتضر منكم رداً او أقتراحاً

اخوكم بوسعيد محمد

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#2

شكرا لك أخي mohfa على طرح هذا الموضوع الشيق .

وأتمنى أن يحصل على بعض التفاعل من الأخوة ,

ومن أجل ذلك أطلب منك المزيد من التوضيح حول المكون ..

كيف قمت بالتعريب (ماهي الأجزاء التي عربتها ) , وهل عدلت في طريقة رسم الشجرة ؟ .. أم في خصائص إضافية منها

.. ربما الإستفاضة بالحديث عن الموضوع ستكون مفيدة لمعرفة ماذا يجب أن نعمل ...

مبدأيا , أظن أننا يجب أن نبني مكون فيه نسخة معدلة عن بعض المناهج ....

ربما مناهج مثل :

procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;

الموجود في الوحدة ComCtrls ... أو شيء مشابه , المشكلة أن الموضوع بحاجة لبعض الدراسة ومتابعة الشفرة , ومن المهم أن نعرف أين وصلت بالعمل , وكيف . لكي نتابع معك , أو نساعدك

حسنا . أنتظر بعض التوضيجات وفي هذة الفترة سأحاول دراسه شيء من شفرة TreeView .

ملاحظة , مرة جربت أن أستعمل الحدثين

onCustomDraw

onCustomDrawItem

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

#3

أخي عيسى و إخواني القراء سوف اعرض بعضاُ من الكود و ذالك للمقارنة او المساعدة بالمناسبة اضن اخي عيسى انني لم استعمل الحدثين : OnCustomDraw او OnCustomDrawItem .

لقد جربت الكود المكتوب بالخط العريض لكن دالك نجح في قلب الشجرة كلها و حتى تقنية البحث فيها نجحت لكن TolTips لم تضهر و ذلك لان Right و Left لم تعد كما كانت من قبل اقصد كما كانت في TTreeView :

private

FRightToLeftReading:Boolean;

FSortType: TSortType;

procedure SetAbout(const Value: string);

procedure SetRightToLeftReading( b:Boolean);

Public

property RightToLeftReading:Boolean read FRightToLeftReading write SetRightToLeftReading default false;

////

procedure Tfaimo.SetRightToLeftReading( b:Boolean);

var

oldParam: LongInt;

begin

if FRightToLeftReading=b then

oldParam := GetWindowLong(handle, GWL_EXSTYLE);

SetWindowLong(handle, GWL_EXSTYLE, oldParam or $400000 or WS_EX_RIGHT);

end;

///

end.

ملاحظة اسم المكون هو Tfaimo ( Faimo)

اتمنى ان اجد المساعدة و التصحيح إن كان هناك خطاء

اخوكم بوسعيد محمد

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#4

لقد جربت أن أعيد إظهار الToolTips لكني لم أنجح , ماعدا ذلك نجح كل شيء ..

كما أنه أنشأ بعض المشاكل عند تحريك العنصر في زمن التصميم ..

على كل حال هذة هي الشفرة التي أعدتها :

unit U_ArTreeView;

interface

uses
  Windows,
  SysUtils, Classes, Controls, ComCtrls;

type
  TArTreeView = class(TTreeView)
  private
    FRightToLeftReading: Boolean;
    procedure SetRightToLeftReading(const Value: Boolean);
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    property RightToLeftReading:Boolean read FRightToLeftReading write SetRightToLeftReading;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('mohfa', [TArTreeView]);
end;

{ TArTreeView }

procedure TArTreeView.SetRightToLeftReading(const Value: Boolean);
var oldParam: LongInt;
begin
  FRightToLeftReading := Value;
  oldParam := GetWindowLong(Handle, GWL_EXSTYLE);
  if FRightToLeftReading then

    SetWindowLong(Handle, GWL_EXSTYLE, oldParam or $400000)
    else
    SetWindowLong(Handle, GWL_EXSTYLE,oldParam and not  $400000 );

   Refresh; 
end;

end.

أما بالنسبة لموضوع ToolTips بإمكانك الإستعاضه عنها بالداله GetNodeAt(x, y) التي توضع في حدث OnMouseMove مثال :

procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var t: ttreenode;
begin
  t := TreeView1.GetNodeAt(x, y);
  if (t <> nil)  then
   Label1.Caption:=t.Text;

end;

تابع التقدم ,, وخبرني بالنتائج ... العنصر على وضعه الحالي يعتبر جيد , وحل المشاكل المتبقية ممكن بإذن الله

وهذا الملف المرفق يحوي المكون مع مثال

ArabicTreeVeiw.zip

تم تعديل هذه المشاركة بواسطة ORWA في 27 نوفمبر 2004 في 01:35

#5

اخي عيسي انا اتسأل لمادا لم يجد هدا الموضوع تجاوباُ من القراء لا اعرف السبب و لكن على حال اعدك انني سوف اكمل بناء المكون و دلك إفتخاراُ بلغتي العربية وسوف يكون مكوناُ مجاني في هدا المنتدي إن شاء الله .

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

اما فيما يخص الـ TolTips في هده الشجرة فلقد وجدت لها الحل و دلك بتكييف شكل الشجرة الجديدة بحيث تضهر في مكانها الطبيعي لكن من اليمين الى اليسار و دلك بإستعمال الـ RTL و الـ WidString وحتى الـ PopUpMenu . وسوف ابعث لك بالمكون كاملاُ للتراجعه .

هل تعلم اخي عيسي انني لم اشاء ان استعمل المكون VirtualTree فانا لا احب ان تطور مكونات تتكيف و اللغة العربية من طرف احد ليس بالعربي - شخص ليس عربي - ولكن نحن من سوف نطورها فإداُ اليد في ليد وسوف نعمل مالم يستعيع الغير عمله .

اخوك بوسعيد محمد

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#6

باركك الله ..

أنا فخور بوجودك بيننا ...

وأتمنى ان تواصل دعمك للغتنا العربية والتي نحن مقصرين جدا في دعمها ..

(مع أنني أفضل من غيري وطورت مكونين بسيطين هما ArMan و ArabicFindar) على الأقل وسأبدأ بإعداد نسخه مطوره منهما قريبا وأنشرها هنا مع الشفرة .

وين الشباب المهتمين ببناء المكونات ....

#7

ملاحظة ...

إسمي عروة والكنيه هي عيسى ...

ولايهمك ...

#8

السلام عليكم

مساء الخير أخواني

أخي عروه لقد سبق وجربت تقنية المرآة على التري فيو بالفيجول بيسك ولم تكن هناك أيه مشاكل أنظر إلى الكود التالي

    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
        Get
            Const WS_EX_LYOUTRTL As Integer = &H400000
            Const WS_EX_NOINHERITLAYOUT As Integer = &H100000

            Dim MirrorExStyle As System.Windows.Forms.CreateParams
            MirrorExStyle = MyBase.CreateParams
            'تطبيق تقنية المرآة
            MirrorExStyle.ExStyle = MirrorExStyle.ExStyle Or WS_EX_LYOUTRTL Or WS_EX_NOINHERITLAYOUT
            Return MirrorExStyle
        End Get
    End Property

لاحظ إنه عند إضافة WS_EX_NOINHERITLAYOUT فإن الأداة لن تنقل خاصية المرآة للأدوات المحضونه بداخلها

وهذه هو البرنامج الذي تم به صنع هذه الأداة بإمكانك عمل بيلد للبرنامج فينتج لديك ملف dll بإمكانك إستخدامه في برامجك

أتمنى أن يفيدك بشي

ArabicTreeView.rar

تم تعديل هذه المشاركة بواسطة fares_sa في 29 نوفمبر 2004 في 23:35

#9

الأخ fares_sa شكرا لمساهمتك القيمه , سأضطلع على الموضوع .

الأخ mohfa

هل تظهر نافذة حول على شكل فورم أنت وضعته .

أم على شكل فورم يولد عند النقر عليها (ديناميكيا )

أم على شكل رساله Showmessage .

تم تعديل هذه المشاركة بواسطة ORWA في 30 نوفمبر 2004 في 00:17

#10

ياخي عروة الفورم يضهر ديناميكياً

يوجد زر على الـ Inspector فعندا الضعط عليه يضهر الفورم معا كامل المعلومات : حول المكون وصاحب المكون

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#11

يوجد كومب في www.torry.net على الرابط التالي (مع السورس):

http://www.torry.net/vcl/lbcb/enhancedoutl...bidioutline.zip

ويوجد كومب آخر يدعم اللغة العربية (ثنائي الاتجاه) وهو أكثر خصائص من الأول مع وجود

السورس كود ولتحميله قومو بزيارة الموقع التالي:

http://www.soft-gems.net/VirtualTreeview/VT.php

#12

رائع

#13

السلام عليكم جميعا ،

لا تغلبوا حالكم ولا على بالكم، في كمبوننت صارلي بستخدمو خمسة سنوات وهو ELTree

والآن صار من ضمن حزمة LMD Tools

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

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