Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Изменение ширины кнопок вместе с шириной строк в StringGrid-е   Найти похожие ветки 

 
Dmirty   (2004-07-29 13:08) [0]

Создаю я кнопочки в stringGrid-е... по две в строке... А как можно сделать, чтобы они изменялись по ширине стобца?

Создаю кнопочки я так...

with TButton.Create(StringGrid1) do
 begin
 Parent:=StringGrid1;
 BoundsRect:=StringGrid1.CellRect(6, StringGrid1.RowCount-2);
 Tag:=StringGrid1.RowCount-3; // Для того чтобы знать на какой строке она находится при ее нажатии...
 ...
 end;

with TButton.Create(StringGrid1) do
 begin
 Parent:=StringGrid1;
 BoundsRect:=StringGrid1.CellRect(7, StringGrid1.RowCount-2);
 Tag:=StringGrid1.RowCount-3;
 end;

В событии MouseUp я пишу...

var
i: integer;

if StringGrid1.Widths[0]<>.. and и т.д. then
 begin
 for i:=StringGrid1.ControlCount-1 downto 0 do
   begin
   if ((StringGrid1.Controls[i]) is TButton) then
     begin
     StringGrid1.Controls[i].BoundsRect:=StringGrid1.CellRect(6, i+1);
     end;
   end;

Но это только для одной... а как для двух?


 
don-do   (2004-07-29 14:04) [1]

Есть предложение
Создать наследника
перекрыть процедуру CalcSizingState override
например
proc CalcSizingState
begin
inherited CalcSizingState;
//можно объявить отработчик события
end;


 
Dmirty   (2004-07-29 16:27) [2]

Можно, но мне так хотелось бы... как у меня только с двумя кнопками...


 
Dmirty   (2004-07-29 16:46) [3]

Я все пытаюсь что-то сделать... что-то не получается... :(


 
Almaz ©   (2004-07-29 19:17) [4]


> Dmirty   (29.07.04 13:08)  
> Создаю я кнопочки в stringGrid-е... по две в строке... А
> как можно сделать, чтобы они изменялись по ширине стобца?

Попробуйте видоизменить свой код следующим образом:

Создание кнопки:

with TButton.Create(StringGrid1) do
begin
 Parent:=StringGrid1;
 BoundsRect:=StringGrid1.CellRect(6, StringGrid1.RowCount - 2);
 // Используйте свойство Tag как хранилище строки и столбца, в котором расположена кнопка.
 Tag := MakeLong(6, StringGrid1.RowCount - 2);  
end;


Обновление размеров и положения кнопок, в таком случае, будет таким:
var
 I: Integer;
begin
 for I := 0 to StringGrid1.ControlCount - 1 do
   if ((StringGrid1.Controls[i]) is TButton) then
   with StringGrid1.Controls[i] do
     BoundsRect := StringGrid1.CellRect(LoWord(Tag), HiWord(Tag));
end;


Удачи.



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

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
1-1091352886
i-s-v
2004-08-01 13:34
2004.08.15
Как сфоткать полупрозрачные окна


1-1091529095
V l a d i m i r
2004-08-03 14:31
2004.08.15
Поиск в предложении по комбинации букв


1-1091198878
Antonmm
2004-07-30 18:47
2004.08.15
GIF на форме


3-1089877633
just
2004-07-15 11:47
2004.08.15
MS SQL + ADO


1-1091009955
Slaga
2004-07-28 14:19
2004.08.15
Как передать параметр в CMD