- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Infoga en TDateTimePicker i en TDBGrid Kategori: Komponenter
Inlagt: 2005-09-22
Läst: 1222
Inlagt av: Staffan Berg
Beskrivning
Detta exemplet visar hur du implementerar en TDateTimePickter i en TDBGrid-kontroll.
Kod
//Först måste vi se till att DateTimePickern flyttas till den cell där DateAdded-kolumnen visas. 
procedure TForm1.DBGrid1DrawColumnCell 
 (Sender: TObject;  
  const Rect: TRect;  
  DataCol: Integer;  
  Column: TColumn;  
  State: TGridDrawState); 
begin 
 if (gdFocused in State) then 
 begin 
  if (Column.Field.FieldName = 'DateAdded') then 
  with DateTimePicker do  
  begin 
   Left := Rect.Left + DBGrid1.Left + 1; 
   Top := Rect.Top + DBGrid1.Top + 1; 
   Width := Rect.Right - Rect.Left + 2; 
   Width := Rect.Right - Rect.Left + 2; 
   Height := Rect.Bottom - Rect.Top + 2; 
 
   Visible := True; 
  end; 
 end 
end; 
 
//Dölj kontrollen när cellen lämnas 
procedure TForm1.DBGrid1ColExit(Sender: TObject); 
begin 
 if DBGrid1.SelectedField.FieldName = 'DateAdded' then  
  DateTimePicker.Visible := False 
end; 
 
//Här ser vi till att alla tangenttryckningar skrivs in i DateTimePickern när den befinner sig i Edit-mode 
procedure TForm1.DBGrid1KeyPress 
(Sender: TObject; var Key: Char); 
begin 
 if (key = Chr(9)) then Exit; 
 
 if (DBGrid1.SelectedField.FieldName = 'DateAdded') then 
 begin 
  DateTimePicker.SetFocus; 
  SendMessage(DateTimePicker.Handle, WM_Char, word(Key), 0); 
 end 
end; 
 
//Sätt Datasetet i Editmode när användaren öppnar kalendern. 
procedure TForm1.DateTimePickerChange(Sender: TObject); 
begin 
 if DBGrid1.DataSource.State in [dsEdit, dsInsert] then 
  ADOTable1DateAdded.Value := DateTimePicker.DateTime; 
end; 
 
procedure TForm1.DateTimePickerDropDown(Sender: TObject); 
begin 
 DBGrid1.DataSource.Edit; 
end; 
 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -