Показать сообщение отдельно
  #2  
Старый 02.06.2006, 12:14
ilya ilya вне форума
Прохожий
 
Регистрация: 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; 
Ответить с цитированием