المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله وبركاتة
مبروك اخوني مشرفين هذا المنتدى الكريم , في الحقيقة حزنت عندما وجدت ان المنتدى متوقف
لدي مشكلة عند استعمال احد الستايلات المتاحه في [ Appearance ]
على Form يوجد به خاصية الـ AutoScroll = True ... فإن الـ Scroll لا يظهر !!
صوره توضيحيه
كود :
http://im32.gulfup.com/hRD0W.jpg
اضن ان المشكلة انه عند إستعمال TStyle يتم اخذ جزء قليل من الجهه اليمنا والجهه السفليه من النافذة ... لذلك لا تظهر اشرطة الـ Scrolls
لكنلي لا اعرف الحل

...
وشكراً لحسن القراءة
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله وبركاتة
وجدت حل مؤقت ... ومن رائيي انه غير سليم

قمت بوضع مكون [ TScrollBox ] واعطيته خاصية
Align = alClient
ساستعمله إلى ان اجد الاجابة ...
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
قلت كل شيئ و لم تحدد المكون الذي استعملته
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
قمت بإضافة الستاايل من خلال
Project -> Options -> Application -> Appearance : Turquoise Gray
وهذه المكتبات المستعملة [ Vcl.Themes, Vcl.Styles ]
ولا اضن اني استعملت مكون إلى الآن P:
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
السلام عليكم ورحمة الله وبركاته
أخي ALmuhhnad هذه عبارة عن
Bug .. قم بالتبليغ عنها في
QualityCentral
----------------------
حاليا أمامك
خيارين اما
أن لا تستخدم ال Vcl Style على ال Non Client Area
PHP كود :
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.Themes,Vcl.Styles, Vcl.StdCtrls;
type TFormStyleHookNC= class(TMouseTrackControlStyleHook)
protected
procedure PaintBackground(Canvas: TCanvas); override;
constructor Create(AControl: TWinControl); override;
end;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TFormStyleHookNC.Create(AControl: TWinControl);
begin
inherited;
OverrideEraseBkgnd := True;
end;
procedure TFormStyleHookNC.PaintBackground(Canvas: TCanvas);
var
Details: TThemedElementDetails;
R: TRect;
begin
if StyleServices.Available then
begin
Details.Element := teWindow;
Details.Part := 0;
R := Rect(0, 0, Control.ClientWidth, Control.ClientHeight);
StyleServices.DrawElement(Canvas.Handle, Details, R);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.AutoScroll:=True;
end;
initialization
TStyleManager.Engine.RegisterStyleHook(TForm1, TFormStyleHookNC);
end.
كود :
http://im31.gulfup.com/JSBaU.png
الطريقة الثانية هي استخدام ال TScrollBar كما ذكرت أنت سابقا , لكن هناك مشكلة :
لون خلفية ال ScrollBar ليس مثل لون خلفية الفورم ...
كود :
http://im32.gulfup.com/sTMJA.png
أضف لذلك أن ScrollBar لديها بوردر سيؤثر على الفورم
كما أني وجدت
Bug في ال ScrollBox عند تفعيل ال vcl Styles واسناد bsSingle لل BorderStyle
كود :
http://im31.gulfup.com/detWU.png
كود :
http://im34.gulfup.com/u4EqE.png
لكني استطعت التغلب على هذه المشاكل

باستخدام بعض الحيل !!
PHP كود :
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.Themes,Vcl.Styles, Vcl.StdCtrls,
Vcl.CheckLst;
type TStyledScrollBox=class(TScrollBoxStyleHook)
private
FCanvas:TCanvas;
public
constructor Create(AControl: TWinControl); override;
destructor Destroy; override;
procedure DrawBorder; override;
procedure PaintBackground(Canvas: TCanvas); override;
procedure Paint(Canvas: TCanvas); override;
end;
type
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
{ TStyledScrollBox }
constructor TStyledScrollBox.Create(AControl: TWinControl);
begin
inherited;
Brush.Color := StyleServices.GetStyleColor(scWindow);
FCanvas:=TCanvas.Create;
end;
destructor TStyledScrollBox.Destroy;
begin
FreeAndNil(FCanvas);
inherited;
end;
procedure TStyledScrollBox.DrawBorder;
begin
inherited;
FCanvas.Handle:=GetWindowDc(Handle);
FCanvas.Brush.Color:=StyleServices.GetStyleColor(scWindow);
FCanvas.FrameRect(Rect(0,0,Control.Width,Control.Height));
FCanvas.FrameRect(Rect(1,1,Control.Width-1,Control.Height-1));
end;
procedure TStyledScrollBox.Paint(Canvas: TCanvas);
begin
inherited;
end;
procedure TStyledScrollBox.PaintBackground(Canvas: TCanvas);
begin
inherited;
end;
initialization
TStyleManager.Engine.RegisterStyleHook(TScrollBox,TStyledScrollBox);
end.
النتيجة النهائية :
كود :
http://im31.gulfup.com/s5IQb.png
و السلام عليكم ..
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
Great ... ما شاء الله عليك ...
وجدت مشكلة اخرى في TStyle .... هههههه
ولم اجد لها حل
وهي تكمن في إستعمال TStyle مع الـ DLL ... ساضعها في موضوع مستقل ...
بالمناسبة اخي SMP3 ... هل يوجد منهجية معينه لحل المشاكل كما فعلت انت ... ام بتحليل وترقيع الاخطاء باي طريقة كانت ؟
ايضاً لا اعرف كيف ابلغ عن Bugs ... ؟
ايضاً سؤال خارجي ... كم سيستغرق إصلاح الـ Bug ؟
مشكور من جديد ... وجزاك الله خير على المسااعدات التي قدمتها لي وبقية الاخوان
[ إلى الآن لم اجرب الحل الذي طرحته فانا لست على جهازي الآن ]
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
ALmuhhnad كتب :Great ... ما شاء الله عليك ...
وجدت مشكلة اخرى في TStyle .... هههههه
ولم اجد لها حل 
وهي تكمن في إستعمال TStyle مع الـ DLL ... ساضعها في موضوع مستقل ...
سأطلع على الموضوع يوم الثلاثاء (يوم انتهاء امتحاناتي)
إقتباس :بالمناسبة اخي SMP3 ... هل يوجد منهجية معينه لحل المشاكل كما فعلت انت ... ام بتحليل وترقيع الاخطاء باي طريقة كانت ؟
[COLOR="red"]نعم هناك منهجية :
أولا يجب أن تطلع على السورس الخاص بالمكون أو الاداة .. وتدقق معه ..
ثانيا يجب أن تقوم بوضع فرضيات عن أسباب المشكلة .. فالمشكلة لن تستطيع فهمها مالم تقم بوضع فرضيات منطقية !!
أخيرا حاول أن تعرف الفرضية الصحيحة ثم قم بماحولة لتصحيح المشكلة [/COLOR]
إقتباس :ايضاً لا اعرف كيف ابلغ عن Bugs ... ؟
[COLOR="red"]أولا لازم تكون مسجل في موقع
http://edn.embarcadero.com/
ثانيا عندما تجد Bug ..قم بتشغيل ال Quality Central من دلفي : Tools->Quality Central
ضع ايميلك و الباسوورد الذي مسجل به في موقع embarcadero
اختر تصنيف للمشكلة Vcl ,FireMonkey,RTL... الخ
ثم قم بكتابة عن المشكلة أو ال Bug .. + ضع حل للمشكلة (ان قمت بالفعل بايجاد حل )
[/COLOR]
إقتباس :ايضاً سؤال خارجي ... كم سيستغرق إصلاح الـ Bug ؟
على حسب ال Bug .. في العادة يتم تصحيحها في ال Update التالي
إقتباس :مشكور من جديد ... وجزاك الله خير على المسااعدات التي قدمتها لي وبقية الاخوان
[COLOR="Gray"][ إلى الآن لم اجرب الحل الذي طرحته فانا لست على جهازي الآن
][/COLOR]
العفو أخي
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
وعليكم السلام ورحمة الله وبركاتة
باارك الله فيك اخي واستاذي SMP3 .. الله يوفقك في إمتحاناتك
سؤال آخير واعتذر على الاطالة
عندما أبليغ عن Bug هل .. يتطلب ان تكون نسختي الـ XE3 شرعية ... !؟
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
ALmuhhnad كتب :هل .. يتطلب ان تكون نسختي الـ XE3 شرعية ... !؟
لا أظن ذلك لأنها ليست هناك علاقة ب Bug وشرعية النسخة فأنت في الأخير تود تصليح الأخطاء
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
ALmuhhnad كتب :هل .. يتطلب ان تكون نسختي الـ XE3 شرعية ... !؟
لا ليس شرط .. لقد سبق وقمت بالتبليغ عن Bug باستخدام XE3 (نسخة مقرصنة

)