Главная страница
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.045 c
14-1091210801
Soft
2004-07-30 22:06
2004.08.15
Кто хочет стать добровольным помощником Микрософт(Иудой)?


3-1090567749
}|{yk
2004-07-23 11:29
2004.08.15
Глюк в FastReport 2.5


3-1090273889
GanibalLector
2004-07-20 01:51
2004.08.15
тяжелое условие в ХП


14-1091180720
BiN
2004-07-30 13:45
2004.08.15
Всех сисадминов с профессиональным праздником !!!!!


8-1086102528
lelik
2004-06-01 19:08
2004.08.15
Shape под наклоном