![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;
Этих строк нет. По ошибки написал.