اداة ScrollView لعرض مجموعة من النماذج في مكان واحد
#1
السلام عليكم
لقد كتبت عن هذه الاداة هنا
كود :
http://delphi4arab.net/forum/showthread.php?tid=7671

وهذا كود المكون
كود :
unit ScrollView; interface uses  System.SysUtils,Vcl.Forms,Dialogs, System.Classes, Vcl.Controls, Vcl.ExtCtrls;   type TGetMode = (SclUP, SclDown, SclLeft,SclRight); type  TScrollView = class(TPanel)   Timer1: TTimer;   procedure Timer1Timer(Sender: TObject);   procedure  ScrollViewResize(Sender: TObject);  private   GetSpeed:Integer;   GetMode: TGetMode;  protected  public   procedure FormShow(Frm:Tform;Bool:Boolean=true);   constructor Create (AOwner: TComponent); override;   destructor Destroy; override;  published   property Speed: Integer read GetSpeed write GetSpeed;  // property Form: TForm read FForm write FForm;   property ScrollType: TGetMode read  GetMode write GetMode;  end; procedure Register; implementation procedure Register; begin  RegisterComponents('Samples', [TScrollView]); end; { TScrollView } constructor TScrollView.Create(AOwner: TComponent); begin  inherited;  Timer1:= TTimer.Create(nil);  Timer1.Enabled:=false;  Timer1.Interval:=1;  Timer1.OnTimer:= Timer1Timer;  self.OnResize:= ScrollViewResize;  speed:=50;  self.Caption:='الاصدارة الاولى مع تحيات Delphi4us ';  self.BevelOuter :=bvNone; end; destructor TScrollView.Destroy; begin   Timer1.Free;   Timer1:=nil;  inherited; end; procedure TScrollView.FormShow(Frm:Tform;Bool:Boolean=true); begin    Frm.BorderStyle:=bsNone;    Frm.Parent:=self;    Frm.Width:=self.Width;    frm.Height:=self.Height;   if Bool=True then begin    Frm.Show;    exit;   end;   Frm.Show;   Frm.Hide;    if ScrollType=sclup then begin      Frm.Top:=self.Height;    end;   if ScrollType=SclDown then begin      Frm.Top:=0 - frm.Height;   end;   if ScrollType=SclLeft then begin      Frm.Left:=self.Width  ;   end;   if ScrollType=SclRight then begin      Frm.Left:= 0  - frm.Width;   end;   Frm.Show;   // Timer1.OnTimer:= Timer1Timer;   Timer1.Enabled:=true; end; procedure TScrollView.ScrollViewResize(Sender: TObject); begin if Self.ControlCount=1 then begin (Self.Controls[0] as Tform).Width:=self.Width;  (Self.Controls[0] as Tform).Height:=self.Height; end; end; procedure TScrollView.Timer1Timer(Sender: TObject); begin //ShowMessage(Self.ControlCount.ToString()); if Self.ControlCount=1 then begin (Self.Controls[0] as Tform).Top:=(Self.Controls[0] as Tform).Top -speed; if (Self.Controls[0] as Tform).Top < 0 then begin (Self.Controls[0] as Tform).Top:=0; //(Self.Controls[0] as Tform).close; Timer1.Enabled:=false; end; exit; end; if ScrollType=sclup then begin (Self.Controls[0] as Tform).Top:=(Self.Controls[0] as Tform).Top -speed; (Self.Controls[1] as Tform).Top:=(Self.Controls[1] as Tform).Top -speed; if (Self.Controls[1] as Tform).Top < 0 then begin Timer1.Enabled:=false; (Self.Controls[0] as Tform).close; (Self.Controls[1] as Tform).Top:=0; end; end; if ScrollType=SclDown then begin (Self.Controls[0] as Tform).Top :=(Self.Controls[0] as Tform).Top +speed; (Self.Controls[1] as Tform).Top:=(Self.Controls[1] as Tform).Top +speed; if (Self.Controls[1] as Tform).Top > 0 then begin Timer1.Enabled:=false; (Self.Controls[0] as Tform).close; (Self.Controls[1] as Tform).Top:=0; end; end; if ScrollType=SclLeft then begin (Self.Controls[0] as Tform).Left :=(Self.Controls[0] as Tform).Left -speed; (Self.Controls[1] as Tform).Left:=(Self.Controls[1] as Tform).Left -speed; if (Self.Controls[1] as Tform).Left < 0 then begin Timer1.Enabled:=false; (Self.Controls[0] as Tform).close; (Self.Controls[1] as Tform).Left:=0; end; end; if ScrollType=SclRight then begin (Self.Controls[0] as Tform).Left :=(Self.Controls[0] as Tform).Left +speed; (Self.Controls[1] as Tform).Left:=(Self.Controls[1] as Tform).Left +speed; if (Self.Controls[1] as Tform).Left > 0 then begin Timer1.Enabled:=false; (Self.Controls[0] as Tform).close; (Self.Controls[1] as Tform).Left:=0; end; end; end; end.

حتى الكود بحاجة الى تنظيم وتعديل لانه يعتبر مسودة لما قمت به في ساعة من الليل
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#2
المطلوب لمن يريد المشاركة هو اضافة تاثير التلاشي وليس الانزلاق
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • ALG2009
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم