Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid [D7, WinXP]


VEZ ©   (2006-01-24 14:04:00) 

Нужно вставить в ячейку грида спинэдит, самый простой способ конечно подставить спинэдит под координаты ячейки, как правильно вычислить эти координаты.


Amoeba   (2006-01-25 11:34:00) [1]


> VEZ   (24.01.06 17:04) [7]
> XStringGrid и использую, только он немного глючный и неудобный,
>  и спинэдит там только целые значения понимает.

Посмотри, как это сделано в исходниках того-же XStrinGrid или DBGridEh (из EhLib) и сделай сам по аналогии.


VEZ   (2006-01-24 17:04:00) [2]

XStringGrid и использую, только он немного глючный и неудобный, и спинэдит там только целые значения понимает.


Amoeba   (2006-01-24 15:49:00) [3]

Используй XStringGrid. Бсплатный, с исходниками. Там это уже встроено.
http://www.eye.ch/~mduerig/prog/


Yanis   (2006-01-24 15:16:00) [4]


procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
var
 p: TPoint;
begin
 with StringGrid1 do
   begin
     P := Point(CellRect(ACol, ARow).Left, CellRect(ACol, ARow).Top);
     Caption := Format('Left %d, Top %d', [P.X, P.Y]);

     SpinEdit1.Width := StringGrid1.ColWidths[ACol] + GridLineWidth;
     SpinEdit1.Height := StringGrid1.RowHeights[ARow] + GridLineWidth;

     SpinEdit1.Left := P.X + GridLineWidth + 1 + Left;
     SpinEdit1.Top := P.Y + GridLineWidth + 1 + Top;
   end;
end;

Помоему внедрение компонентов делается немного не так...


Yanis   (2006-01-24 14:55:00) [5]

hopeless case


VEZ   (2006-01-24 14:46:00) [6]

Дак это понятно, но там координаты-то относительно чего выдаются, надо пересчитать координаты сспинэдита относительно них.


EvS   (2006-01-24 14:42:00) [7]

Delphi Help

CellRect method (TDrawGrid)
Returns the screen coordinates of a cell in the grid.

Delphi syntax:

function CellRect(ACol, ARow: Longint): TRect;

TRect defines a rectangle

TRect = packed record
 case Integer of
   0: (Left, Top, Right, Bottom: Integer);
   1: (TopLeft, BottomRight: TPoint);
end;


Yanis   (2006-01-24 14:41:00) [8]

function CellRect(ACol, ARow: Longint): TRect;
При помощи этой функции можно узнать положение клетки относительно "сетки". А дальше делай с этими координатами что пожелаешь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо