Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];

Вниз

Ширина и высота ячеек stringgrid вручную   Найти похожие ветки 

 
timekiller ©   (2010-01-22 16:20) [0]

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


 
{RASkov} ©   (2010-01-22 16:35) [1]

> [0] timekiller ©   (22.01.10 16:20)
> как изменять вручную

что значит "в ручную"?


 
timekiller ©   (2010-01-22 16:42) [2]

ну мышкой двигать


 
Сергей М. ©   (2010-01-22 16:47) [3]


> ну мышкой двигать


Ну так у грида как и у любого контрола есть мышиные события - Down/Up/Move

Лови их и расчитывай все что тебе нужно на основании мышиных координат, передаваемых в обработчики этих событий отн-но клиентской области грида


 
timekiller ©   (2010-01-22 16:49) [4]

...кажется именно [3] и попробую, спасиб


 
timekiller ©   (2010-01-23 14:37) [5]

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

[code]
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;

[/code]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
4-1231611546
AzzHell
2009-01-10 21:19
2010.03.28
Как узнать размер большого файла


6-1214858864
cerber
2008-07-01 00:47
2010.03.28
сохранить картинку


15-1261889617
NewZ
2009-12-27 07:53
2010.03.28
Paradox.


3-1236248813
gnom
2009-03-05 13:26
2010.03.28
EhLib работа с данными


1-1246429266
Василий Иванов_22
2009-07-01 10:21
2010.03.28
меню в ресурсе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский