Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ширина и высота ячеек stringgrid вручную


Автор: 095 22.1.2010, 16:27
Подскажите такую вещь:
как изменять вручную ширину столбцов или высоту строк когда в таблице Stringgrid отсутствуют фиксированные столбцы и фиксированные строки?

Автор: 095 23.1.2010, 14:36
немного поэксперементировал:

Код

procedure TMainFRM.StringGrid3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var glc,i:integer;
begin
  StringGrid3.Cursor:=crDefault;
  Panel2.Caption:=IntToStr(X)+','+inttostr(Y);

  //надо менять курсор на разделительных линиях в гриде
  if StringGrid3.GridLineWidth>0 then
  begin
    glc:=0; //координата gridline;
    for i:=0 to StringGrid3.ColCount-2 do
    begin
      glc:=glc+StringGrid3.ColWidths[i]+StringGrid3.GridLineWidth;
      if (X>glc-1) and (X<glc+1) then
      begin
        StringGrid3.Cursor:=crHSplit;

        //коррекция по 0 в минус и в плюс
        GridCorr:=X;

        //зафиксить тек ширину столбца его номер (глобальные перем)
        GridColW1:=StringGrid3.ColWidths[i];
        GridColW2:=StringGrid3.ColWidths[i+1];
        GridCol1:=i;
        GridCol2:=i+1;

      end;
    end;

    {на будущее для строк
    glc:=0; //координата gridline;
    for i:=0 to StringGrid3.RowCount-2 do
    begin
      glc:=glc+StringGrid3.RowHeights[i]+StringGrid3.GridLineWidth;
      if (Y>glc-1) and (Y<glc+1) then StringGrid3.Cursor:=crVSplit;
    end;
    }
  end;

  //пытаемся отобразить смещение от 0
  //сделать проверку на заползание в другие ячейки {!}
  //Panel5.Caption:=IntToStr(X-GridCorr);
  //Panel6.Caption:=IntToStr(GridColW1)+','+IntToStr(GridColW2)+','+IntToStr(GridCol1)+','+IntToStr(GridCol2)+'|'+Panel5.Caption;


  if Panel2.Color=clBlue then
  begin
    StringGrid3.ColWidths[GridCol1]:=GridColW1+(X-GridCorr);
    StringGrid3.ColWidths[GridCol2]:=GridColW2-(X-GridCorr);
  end;

  if Panel2.Color=clRed then Panel2.Color:=clBlue;
end;



вроде работает . .. plz, поправьте если где перезаморочено?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)