02.06.2006, 12:14
|
Прохожий
|
|
Регистрация: 01.06.2006
Сообщения: 3
Репутация: 10
|
|
Кое-что поменял
PHP код:
procedure TDatePickerGrid.OnExitGrid(Sender: TObject);
var FParent: TWinControl;
begin
inherited destroy; //Ушли из ячейки ничего не меняем
end;
procedure TDatePickerGrid.KeyPressEsc(Sender: TObject; var Key: Char);
var vFParent: TWinControl;
begin
if key = #13 then begin //Вводим значение
vfparent := parent;
(vFParent as TStringGrid).Cells[(vFParent as TStringGrid).Col,(vFParent as TStringGrid).Row] := datetostr(DateTime);
inherited destroy;
end;
if key = #27 then inherited destroy; // Esc ничего
//здесь медод free может не работать есть подозрение что Key куда-то
//передается поэтому и вылетает ошибка => либо inherited destroy
// или так key = #0 затем free
//как лучше, незнаю?
end;
procedure TDatePickerGrid.RectSet; // так будет правильно
var vFParent: TWinControl;
i : integer;
begin
vfparent := parent;
for i := 0 to (vFParent as TStringGrid).FixedCols-1 do
Left := Left + (vFParent as TStringGrid).ColWidths[i];
for i := (vFParent as TStringGrid).LeftCol to (vFParent as TStringGrid).Col-1 do
Left := Left + (vFParent as TStringGrid).ColWidths[i]+1;
Left := Left + (vFParent as TStringGrid).Left;
for i := 0 to (vFParent as TStringGrid).FixedRows-1 do
Top := Top + (vFParent as TStringGrid).RowHeights[i];
for i := (vFParent as TStringGrid).TopRow to (vFParent as TStringGrid).Row-1 do
Top := Top + (vFParent as TStringGrid).RowHeights[i]+1;
Top := Top + (vFParent as TStringGrid).Top;
Width := (vFParent as TStringGrid).ColWidths[(vFParent as TStringGrid).Col]+3;
Height := (vFParent as TStringGrid).RowHeights[(vFParent as TStringGrid).row]+3;
end;
|