DELPHI STRINGGRID КАЛЕНДАРЬ
StringGrid - это компонент в Delphi, который позволяет отображать и редактировать таблицы. Каждая ячейка может содержать текст, число, дату и время. Как использовать его в качестве календаря?
Один способ - добавить в StringGrid компонент TDateTimePicker. Каждый раз, когда пользователь кликает на ячейку StringGrid, вы можете отобразить TDateTimePicker в этой ячейке. Затем, когда пользователь выбирает дату, вы можете сохранить ее в ячейке StringGrid.
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);var DateTimePicker: TDateTimePicker;begin if (ACol = 2) and (ARow = 2) then // если выбрана нужная ячейка begin DateTimePicker := TDateTimePicker.Create(Form1); // создаём DateTimePicker DateTimePicker.Time := SysUtils.Now; // задаём текущее время DateTimePicker.Left := StringGrid1.Left + StringGrid1.CellRect(ACol, ARow).Left; // задаём положение DateTimePicker.Top := StringGrid1.Top + StringGrid1.CellRect(ACol, ARow).Top; DateTimePicker.Width := StringGrid1.CellRect(ACol, ARow).Width; // задаём размеры DateTimePicker.Parent := Form1; // задаём родителя DateTimePicker.Visible := True; // делаем видимым end;end;
Еще один способ - использовать в StringGrid режим рисования OwnerDraw. В этом режиме вы можете нарисовать календарь в выбранной ячейке StringGrid.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);var Date: TDateTime; Year, Month, Day: Word; S: string;begin if (ACol = 2) and (ARow = 2) then // если выбрана нужная ячейка begin Date := StrToDate(StringGrid1.Cells[ACol, ARow]); DecodeDate(Date, Year, Month, Day); S := Format('%d.%d.%d', [Day, Month, Year]); StringGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, S); // рисуем текст end;end;
15 TStringGrid Delphi
Delphi 20 StringGrid / 5 Click Cells Update
038-Import From Excel File Delphi قراءة بيانات ملف إكسل
Delphi: візуальні компоненти StringGrid, ListBox, ComboBox, ScrollBar, BitBtn
Delphi 20 StringGrid / 3 Add Text in Cells
Delphi cxgrid checkbox and multiselect