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

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

Stringgrid и Edit [D7, WinXP]


xsh ©   (2005-03-15 18:49:00) 

Здравствуйте! Возникла задача при клике на ячейку Stringgrid'a вставлять в нее TEdit, написал код

procedure TForm1.StringGrid1Click(Sender: TObject);
var
Rect:TRect;
begin
Edit1.Parent:=Stringgrid1;
Edit1.Text:=Stringgrid1.cells[Stringgrid1.Col,Stringgrid1.Row];
Rect:=Stringgrid1.CellRect(Stringgrid1.Col,Stringgrid1.row);
Rect.Left:=Rect.Left+50;
Rect.top:=Rect.top+50;
edit1.BoundsRect:=rect;
end;

Вроде все правильно, но TEdit вообще не отображается. Помогите пожалуйста разобраться.


xsh   (2005-03-17 08:55:00) [1]

Огромное человеческое спасибо!


ЮЮ   (2005-03-17 05:06:00) [2]

Если без создания наследника, где всё это сделать красиво, то, например в обработчике StringGrid.OnGetEditText, который вызывется, когда редактор уже создан и им можно управлять:

procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol,
 ARow: Integer; var Value: String);
var
 ie: TInplaceEditAccess;
begin
 ie := TInplaceEditAccess(TCustomGridAccess(Sender).InplaceEditor);
 if ie <> nil then begin
   ie.Color := clYellow;
   ie.Font.Color := clRed;
 end;
end;

где

type
 TCustomGridAccess = class(TCustomGrid);
 TInplaceEditAccess = class(TInplaceEdit);

описаны в этом же модуле, что обеспечивает доступ к protected свойствам


xsh   (2005-03-16 16:04:00) [3]


> Попробуй изменить цвет и шрифт InplaceEdit-а

Можете подсказать как?


ЮЮ   (2005-03-16 04:52:00) [4]

>Тем что я не могу изменить цвет и шрифт ячейки во время ее редактирования.

Ячейку во время редактирования все-равно не видно, она перекрыты InplaceEdit-ом :) Попробуй изменить цвет и шрифт InplaceEdit-а


xsh   (2005-03-15 19:48:00) [5]


> Что-то я не пойму... а чем встроенный InplaceEdit не угодил?

Тем что я не могу изменить цвет и шрифт ячейки во время ее редактирования.


GanibalLector   (2005-03-15 19:36:00) [6]

2 Юрий Зотов ©   (15.03.05 19:14) [4]
>а чем встроенный InplaceEdit не угодил?
Бывает и такое.Я когда-то тоже пробовал все на   InplaceEdit сделать(нужно было блокировать ввод букв,допускать только вещ.числа #,##).В общем кода получилось намного больше(и то,он не решал всех проблем) ,чем если вставить TCurrencyEdit.


Набережных С.   (2005-03-15 19:29:00) [7]

Edit1.Show ?


Юрий Зотов   (2005-03-15 19:14:00) [8]

Что-то я не пойму... а чем встроенный InplaceEdit не угодил?


xsh   (2005-03-15 19:09:00) [9]

Его просто не видно, этого Edit'a
Edit1.Parent:=Stringgrid1;

Убрать, то тоже самое.


Virgo_Style   (2005-03-15 18:58:00) [10]

Почему-то мне кажется, что Edit оказался ПОД StringGrid'ом... Проверь :-)


xsh   (2005-03-15 18:51:00) [11]

Rect.Left:=Rect.Left+50;
Rect.top:=Rect.top+50;
Этих строк нет. По ошибки написал.


Наверх

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