Delphi: DBDateEdit-hez kapcsolódó eljárások

Programozással kapcsolatos cikkek / Delphi (1652 katt)

Az RX komponenscsomag része a TDBDateEdit vizuális elem, ami a RXDBAware fülön található. Feladata, hogy egy adott adatbázis dátummezőjének értéket adhassunk. Azonban szerencsés dolog lehet, ha adunk egy a fehértől eltérő színt, amikor is ki lett töltve a dátumértek. Így azonnal látható, hogy van-e értéke, vagy nincsen.

Az alábbi eljárást az onChange eseményben kell meghívni:

// Dátumok színezése, ha ki van töltve
Procedure HatarIdoColor(Sender:TObject);
Begin
If (sender as TDBDateEdit).DataSource.DataSet.FieldByName(
(sender as TdbDateEdit).DataField).IsNull then
(sender as TDBDateEdit).Color := clWindow
Else (sender as TDBDateEdit).Color := $00BFC197;
End;

procedure TForm1.DBDateEdit1Change(Sender: TObject);
begin
HatarIdoColor(Sender);
end;



A másik eljárás, amire szükség lehet, a dátum törlése az adatbázisból. Ezt az alábbi eljárás végzi el. Meghívni az OnKeyDown eseményben kell.

// Dátumok törlése, ha nem kell 
Procedure DBDateDelete(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = 46 then
Begin
If (Not ((sender as TDBDateEdit).DataSource.DataSet.State in
[dsEdit, dsInsert])) Then
(sender as TDBDateEdit).DataSource.DataSet.Edit;

// Általánossá tett dátumtörlés
(sender as TDBDateEdit).DataSource.DataSet.FieldByName(
(sender as TdbDateEdit).DataField).asString := '';
If (Not ((sender as TDBDateEdit).DataSource.DataSet.State in
[dsInsert])) Then
Begin
DM.ZConnection.StartTransaction;
Try
(sender as TDBDateEdit).DataSource.DataSet.Post;
DM.ZConnection.Commit;
Except
DM.ZConnection.Rollback;
End;
End;

HatarIdoColor(Sender);
End;
end;

procedure TForm1.DBDateEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: ShiftState);
begin
DBDateDelete(Sender, Key, Shift);
end;


Előző oldal samuraj