Meu componente o que esta errado TDBDateTimePicker
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.
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
Curtidas 0
Respostas
Edilcimar
07/02/2005
provavelmente porque na última procedure vc diz que o campo é igual a ele mesmo
FDataLink.Field.AsDateTime := FDataLink.Field.AsDateTime;
FDataLink.Field.AsDateTime := FDataLink.Field.AsDateTime;
GOSTEI 0
Aroldo Zanela
07/02/2005
Colega,
Você não está colocando os dados e edição.
Além de outras ´pequenas´ implementações que devem ser revisadas.
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
07/02/2005
Pq vc não usa [b:7ade04fd7b]TJvDBDateEdit[/b:7ade04fd7b], que vem junto com o Jedi(OpenSource)
GOSTEI 0
Tremonti
07/02/2005
Galera...
Já Resolvi o problema...
Obrigado!!!
Já Resolvi o problema...
Obrigado!!!
GOSTEI 0