سؤال بشأن العنصر DBdatetimepiker
#1
السلام عليكم ورحمة الله وبركاته


أين أجد العنصر DBdatetimepiker.:confused:
الرد
#2
و عليكم السلام و رحمة الله
يمكنك اخي اضافة مكونات جديدة لنسخة دلفي التي عندك...
المكون الذي تبحث عنه موجود في حزمة JVCL او RXLibrary و حزمات اخرى تحص عناصر التحكم في قواعد البيانات...

ايضا اليك هذا السورس لعلك تجد فيه ما ينفعك :

PHP كود :
unit DBDateTimePicker;
//**********************************************************************
// Written by Essam Eddine ADIB Fox Soft Plus
//   using Borland Delphi Entreprise version 7
//   Copyright 1993, 2002 Borland Software Corporation
//
// EMail  : essam.eddine.adib@wanadoo.net.ma
//
// Date   : 02-24-2003
//
// A simple but reliable databased DateTimePicker.
//**********************************************************************

interface

uses
  SysUtils
, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  
Forms, Dialogs, StdCtrls, ExtCtrls, DB, DBCtrls, DBTables, ComCtrls;

type
  
{ DBDateTimePicker }

  
TDBDateTimePicker = class(TDateTimePicker)
  private
    { 
Variables for properties }
    
FDataLink: TFieldDataLink;

    { 
Procedures for setting property values }
    function 
GetDataField: string;
    function 
GetDataSource: TDataSource;
    function 
GetReadOnly: Boolean;
    
procedure SetDataField(const Value: string);
    
procedure SetDataSource(Value: TDataSource);
    
procedure SetReadOnly(Value: Boolean);
    
procedure DataChange(Sender: TObject);
    
procedure CloseUp(Sender: TObject);
    
procedure KeyPress(Sender: TObject; var Key: Char);

  protected
  public
    
constructor Create(AOwner: TComponent); override;
    
destructor Destroy; override;
  
published
    
{ Field in the database table }
    
property DataField: string read GetDataField write SetDataField;
    { 
Datasource attached to the database table }
    
property DataSource: TDataSource read GetDataSource write SetDataSource;
    { ReadOnly }
    
property ReadOnly: Boolean read GetReadOnly write SetReadOnly default False;
  
end;



procedure Register;

implementation

uses DateUtils
;

{ 
DBDateTimePicker }
{ 
Override the constructor to initialize variables }

constructor TDBDateTimePicker.Create(AOwner: TComponent);
begin
  
{ Inherit original constructor }
  
inherited Create(AOwner);
  { 
Add new initializations }
  
FDataLink := TFieldDataLink.Create;
  
FDataLink.OnDataChange := DataChange;
  
OnCloseUp:=CloseUp;
  
OnKeyPress:=KeyPress;
end;

{ 
Override the destructor to destroy variables }
destructor TDBDateTimePicker.Destroy;
begin
  FDataLink
.OnDataChange := nil;
  
FDataLink.Free;
  
inherited Destroy;
end;

{ 
Get database field }
function 
TDBDateTimePicker.GetDataField: string;
begin
  Result 
:= FDataLink.FieldName;
end;

{ 
Get datasource }
function 
TDBDateTimePicker.GetDataSource: TDataSource;
begin
  Result 
:= FDataLink.DataSource;
end;

{ 
Set database field }
procedure TDBDateTimePicker.SetDataField(const Value: string);
begin
  FDataLink
.FieldName := Value;
end;

{ 
Set datasource }
procedure TDBDateTimePicker.SetDataSource(Value: TDataSource);
begin
  FDataLink
.DataSource := Value;
end;

{ 
Set Date when data changes }
procedure TDBDateTimePicker.DataChange(Sender: TObject);
begin
  
if not (FDataLink.Field = nil) then
   
IF FDataLink.Field.AsString='' Then
    Begin
     Date
:=SysUtils.Date;
     
Format:='__________';
    
end
   
else
    
Begin
     Format
:='';
     
Date := FDataLink.Field.AsDateTime;
    
end;
end;

procedure TDBDateTimePicker.CloseUp(Sender: TObject);
begin
 
if  FDataLink.ReadOnly Then
  Begin
   Date
:=FDataLink.Field.AsDateTime;
  
end
 
else
  
Begin
   
if (FDataLink.DataSet.State=dsInsert) or (FDataLink.DataSet.State=dsEdit) then
    FDataLink
.Field.AsDateTime:=Date
   
Else
    
Date:=FDataLink.Field.AsDateTime;
  
end;
end;



{ 
Get ReadOnly }

function 
TDBDateTimePicker.GetReadOnly: Boolean;
begin
  Result 
:= FDataLink.ReadOnly;
end;

{ 
Set ReadOnly }

procedure TDBDateTimePicker.SetReadOnly(Value: Boolean);
begin
  FDataLink
.ReadOnly := Value;
end;

{ ----------------------------------------------------------------------------}

{ 
Register the components }
procedure Register;
begin
  RegisterComponents
('Fox Soft Plus', [TDBDateTimePicker]);
end;


procedure TDBDateTimePicker.KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 Then
if FDataLink.ReadOnly Then
  Abort
else
  
Begin
   
if not (FDataLink.DataSet.State=dsInsert) or not (FDataLink.DataSet.State=dsEdit) then   FDataLink.DataSet.Edit;
    
Begin
     FDataLink
.Field.AsDateTime:=Date;
    
end
  end
;
end;

end. 
الرد
#3
السلام عليكم ورحمة الله وبركاته

مشكور أخي الكريم على الرد ، ولكن كيف يمكن اضافة مكونات جديدة لنسخة دلفي 7 ؟
الرد
#4
wahaub كتب :كيف يمكن اضافة مكونات جديدة لنسخة دلفي 7 ؟

http://www.delphi4arab.net/forum/showthread.php?tid=490
الرد
#5
مشكور اخي الكريم nabilkeb , وكذلك الاخ/الكريم STRELiTZIA نجحت العملية
الرد


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


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