المشاركات : 19
المواضيع 7
:
: 0
الإنتساب : Jul 2009
السلام عليكم ورحمة الله وبركاته
أين أجد العنصر DBdatetimepiker.:confused:
المشاركات : 452
المواضيع 69
:
: 0
الإنتساب : Feb 2008
و عليكم السلام و رحمة الله
يمكنك اخي اضافة مكونات جديدة لنسخة دلفي التي عندك...
المكون الذي تبحث عنه موجود في حزمة 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.
المشاركات : 19
المواضيع 7
:
: 0
الإنتساب : Jul 2009
السلام عليكم ورحمة الله وبركاته
مشكور أخي الكريم على الرد ، ولكن كيف يمكن اضافة مكونات جديدة لنسخة دلفي 7 ؟
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
wahaub كتب :كيف يمكن اضافة مكونات جديدة لنسخة دلفي 7 ؟
http://www.delphi4arab.net/forum/showthread.php?tid=490
المشاركات : 19
المواضيع 7
:
: 0
الإنتساب : Jul 2009
مشكور اخي الكريم nabilkeb , وكذلك الاخ/الكريم STRELiTZIA نجحت العملية