Meu componente o que esta errado TDBDateTimePicker

Delphi

07/02/2005

Na hora que eu dou Post , ele nao salva as alterações ...NADA!!!

A unit dele está abaixo...

Obrigado!!!


unit DBDateTimePicker;

interface

uses
SysUtils, Classes, Controls, ComCtrls, Forms, Dialogs, Graphics, DBCtrls,
DB, stdctrls;

type
TDBDateTimePicker = class(TDateTimePicker)
private
{ Private declarations }
FDataLink : TFieldDataLink;
function GetDataField:String;
procedure SetDataField(const Value : string);
function GetDataSource:TDataSource;
procedure SetDataSource(const Value : TDataSource);
function GetField: TField;
protected
{ Protected declarations }
Procedure DataChange(Sender:TObject);
procedure UpdateData(Sender:TObject);
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
property Field: TField read GetField;
published
{ Published declarations }
property DataSource : TDataSource read GetDataSource Write SetDataSource;
property DataField : String read GetDataField write SetDataField;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents(´Fernando´, [TDBDateTimePicker]);
end;

{ TDBDateTimePicker }

constructor TDBDateTimePicker.Create(AOwner: TComponent);
begin
inherited;
FDataLink := TFieldDataLink.Create;
FDataLink.OnDataChange := DataChange;
FDataLink.OnUpdateData := UpdateData;
FDataLink.Control := self;
Width := 100;
end;

procedure TDBDateTimePicker.DataChange(Sender: TObject);
begin
Date := FDataLink.Field.AsDateTime;
end;

destructor TDBDateTimePicker.Destroy;
begin
FDataLink.Destroy;
inherited;
end;

function TDBDateTimePicker.GetDataField: String;
begin
Result := FDataLink.FieldName;
end;

function TDBDateTimePicker.GetDataSource: TDataSource;
begin
Result := FDataLink.DataSource;
end;

function TDBDateTimePicker.GetField: TField;
begin
Result := FDataLink.Field;
end;

procedure TDBDateTimePicker.SetDataField(const Value: string);
begin
FDataLink.FieldName := Value;
end;

procedure TDBDateTimePicker.SetDataSource(const Value: TDataSource);
begin
FDataLink.DataSource := Value;
end;

procedure TDBDateTimePicker.UpdateData(Sender: TObject);
begin
FDataLink.Field.AsDateTime := FDataLink.Field.AsDateTime;
end;

end.


Tremonti

Tremonti

Curtidas 0

Respostas

Edilcimar

Edilcimar

07/02/2005

provavelmente porque na última procedure vc diz que o campo é igual a ele mesmo
FDataLink.Field.AsDateTime := FDataLink.Field.AsDateTime;


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

07/02/2005

Colega,

Você não está colocando os dados e edição.

FDataLink.Edit;


Além de outras ´pequenas´ implementações que devem ser revisadas.


GOSTEI 0
Ivanh

Ivanh

07/02/2005

Pq vc não usa [b:7ade04fd7b]TJvDBDateEdit[/b:7ade04fd7b], que vem junto com o Jedi(OpenSource)


GOSTEI 0
Tremonti

Tremonti

07/02/2005

Galera...
Já Resolvi o problema...

Obrigado!!!


GOSTEI 0
POSTAR