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: 1317
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;
|
|
|