Форум: "Начинающим";
Текущий архив: 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