Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ширина и высота ячеек stringgrid вручную, Ширина и высота ячеек stringgrid вручную 
:(
    Опции темы
095
  Дата 22.1.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 3.10.2007

Репутация: нет
Всего: нет



Подскажите такую вещь:
как изменять вручную ширину столбцов или высоту строк когда в таблице Stringgrid отсутствуют фиксированные столбцы и фиксированные строки?
PM MAIL WWW   Вверх
095
  Дата 23.1.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 3.10.2007

Репутация: нет
Всего: нет



немного поэксперементировал:

Код

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, поправьте если где перезаморочено?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.