Главная страница
    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
15-1263159025
Юрий
2010-01-11 00:30
2010.03.28
С днем рождения ! 11 января 2010 понедельник


15-1263047943
AlexDan
2010-01-09 17:39
2010.03.28
Kepler ищет планеты..


15-1263151091
Дмитрий С
2010-01-10 22:18
2010.03.28
String в delphi2010


15-1263146426
Petr V. Abramov
2010-01-10 21:00
2010.03.28
RBC празднует :)


6-1215346193
Plotnick
2008-07-06 16:09
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский