delphi4arab منتديات دلفي للعرب

نسخة كاملة : تعريب أدوات ومكونات DynamicSkinForm
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم

اطرح عليكم طريقتي في تعريب هذه المكونات وجعلها تقبل الاتجاه من اليمين الى اليسار
وهي مكونات لتجميل المشروع وبها الكثير من المكونات التي تغنيك عن اي مكونات اخرى ويمكنك ان تنهي بها مشروعك كاملا .

ومن الادوات التي اعجبتني حقيقة. والأمر مطروح للجميع للمشاركة فيه وتقديم ما يفيد .
الاداة الاولى :
تعريب bsSkinDateEdit الخاصة باظهار التاريخ في قائمة منسدلة و الكود الخاص بذلك موجود في الوحدة SkinBoxCtrls ومن هذه الوحدة توجه الى الاجراء procedure TspSkinDateEdit.DropDown
وستجد هذا السطر البرمجي :
كود :
SetWindowPos(FMonthCalendar.Handle, HWND_TOP, P.X, Y, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW);
غيره ليصبح كما بالشكل التالي:
كود :
SetWindowPos(FMonthCalendar.Handle, HWND_TOP,(P.X - FMonthCalendar.Width ) + self.Width , Y, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW);
وسيكون الاتجاه من اليمين الى اليسار ان شاء الله
والبقية تأتي خطوة بخطوة وبعد المشاركات والتوجيهات
السلام عليكم

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

أسم الوحدة والاجراء تم المطلوب تغييره باللون الاخظر الى السطر الذي يليه :
كود :
[color=Red]unit : Businessskinform[/color] [color=Blue]procedure tbsskinmainmenubaritem.draw;[/color] [color=Green]R := Rect(0, 0, 0, 0);[/color] R := Rect (parent.Width - Parent.ItemsRect.Right * Parent.ObjectList.Count + w , 0, 0 , 0);
كود :
[color=red]Unit : SkinMenus[/color] [color=blue]procedure CreateItemImage(B: TBitMap; AActive: Boolean; FromSpecRect: Boolean);[/color] [color=Green]// R := Rect(TR.Left + TextOffset, 0, TR.Right - 16, 0)[/color] R := Rect(TR.Right - TextWidth(S) , 0, TR.Right - 16, 0); [color=green]// SR := Rect(TR.Right - SR.Right - 16, R.Top, TR.Right - 16, R.Bottom);[/color] SR := Rect(TR.Left - SR.Right - 16, R.Top, TR.Right - 16, R.Bottom); [color=blue]procedure CalcMenuPos(var X, Y: Integer; R: TRect);[/color] [color=green] // if R.Left < WA.Left then Result := WA.Left else Result := R.left ;[/color] if R.Left < WA.Left then Result := WA.Left else Result := R.Right - Width ;


كود :
[color=red]Unit : SkinComboBox[/color] [color=blue]procedure TbsSkinDateEdit.DropDown;[/color] [color=green] // SetWindowPos(FMonthCalendar.Handle, HWND_TOP,(P.X , Y, 0, 0,[/color] SetWindowPos(FMonthCalendar.Handle, HWND_TOP,(P.X - FMonthCalendar.Width ) + self.Width , Y, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW);


كود :
[color=red]Unit : SpUtils[/color] [color=blue]procedure SPDrawText3(Cnvs: TCanvas; S: String; R: TRect; HorOffset: Integer);[/color] [color=green]// TX := R.Left + 2 + (r.Right - r.Left)- Cnvs.TextWidth(S) + HorOffset;[/color] TX := R.Left + ((R.Right - R.Left)- Cnvs.TextWidth(S)) + HorOffset; [color=blue]procedure SPDrawText2(Cnvs: TCanvas; S: String; R: TRect);[/color] [color=green]// TX := R.Left + 2[/color] TX := R.Left + (R.Right - R.Left)- Cnvs.TextWidth(S);



واستمتع
السلام عليكم


صورة من الادوات معربة في منظومة

[attachment=2062]

[صورة: attachment.php?attachmentid=3277&d=1330188226]
السلام عليكم و رحمة الله تعالى و بركاته
اخي هل ممكن تغير اتجاه spSkinMainMenu1
وعليكم السلام
اجل يا أخي لا يوجد شئ لا يمكن تغييره .وكما تشاهد انني تدخلت في كود الوحدة Unit : SkinMenus
مما يعني انك اذا اجريت تلك التغييرات فستحصل على قائمة من اليمين الى اليسار
تعديل لابأس به ولكنني لم اركز عليه كثيرا لاني مشغول و لا اهتم كثيرا للقوائم الان
ولكن انظر الى هذه الصورة
[attachment=2065]
اعتقد تفي بالغرض وسوف استمر في العمل حتى أكمله على احسن وجه .
وليث من يستطيع ولديه خبرة ان يشارك ويكمل معنا العمل
السلام عليكم رحمة الله تعالى بركاته
لو سمحت اخي بعد اتمام العملية ارفاق التعديلات
سؤال فقط حول هذه التعديلات ما المكون الخاص بها
PHP كود :
Unit : SkinMenus
procedure CreateItemImage
(B: TBitMap; AActive: Boolean; FromSpecRect: Boolean);

// R := Rect(TR.Left + TextOffset, 0, TR.Right - 16, 0)
R := Rect(TR.Right   - TextWidth(S)    , 0, TR.Right - 16, 0);

// SR := Rect(TR.Right - SR.Right - 16, R.Top, TR.Right - 16, R.Bottom);
       
SR := Rect(TR.Left  - SR.Right - 16, R.Top, TR.Right - 16, R.Bottom);
procedure CalcMenuPos(var X, Y: Integer; R: TRect);
   
//  if R.Left < WA.Left then Result := WA.Left else Result := R.left ;
        
if R.Left < WA.Left then Result := WA.Left else Result := R.Right -  Width  ; 
ستجد ملف في محتويات المكون بالاسم SkinMenus.pas ستجد فيه هذه الاجراءات وستجد فيها تلك الاسطر البرمجية .
يمكنك الانتقال مباشرة الى الاجراء باستخدام البحث بواسطة الدلفي او أي برنامج محرر نصوص .
كان يمكنني ان ارفع التعديلات للملفات المعدة فقط ولكن يبدوا ان هناك اختلاف بين الاصدارات المختلفة حتى في التسميات احياناً .
السلام عليكم و رحمة الله تعالى و بركاته
اخي cmt-10 هل هذه تخص القوائم اذا كانت هي فهي لم تنجح معي في نسخة xe
وعليكم السلام أخي

أنا ايضا استخدم النسخة ex واعتقد عليك ان تقوم بكل التغييرات السابقة بعد اخذ نسخة احتياطية

تم التركيز وتتبع كل شئ بروية وخطوة خطوة وٍسارى بالموضوع
السلام عليكم و رحمة الله تعالى و بركاته
على مايبدو ان هذه هي Procedure لكنها تختلف و الله اعلم

PHP كود :
procedure SPDrawText3(Cnvs: TCanvas; S: String; R: TRect; HorOffset: Integer);
var
  
TX, TY: Integer;
begin
  
if S = '' then Exit;
  
TX := R.Left + 2 + HorOffset;
  
TY := R.Top + RectHeight(R) div 2 - Cnvs.TextHeight(S) div 2;
  
//
  
if (Cnvs.Font.Height div 2) <> (Cnvs.Font.Height / 2) then Dec(TY, 1);
  
//
  
Cnvs.TextRect(R, TX, TY, S);
end; 


مع هذه الثانية

PHP كود :
procedure SPDrawText2(Cnvs: TCanvas; S: String; R: TRect);
var
  
TX, TY: Integer;
begin
  
if S = '' then Exit;
  
TX := R.Left + 2;
  
TY := R.Top + RectHeight(R) div 2 - Cnvs.TextHeight(S) div 2;
  
//
  
if (Cnvs.Font.Height div 2) <> (Cnvs.Font.Height / 2) then Dec(TY, 1);
  
//
  
Cnvs.TextRect(R, TX, TY, S);
end; 
الصفحات : 1 2