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

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

Как работать с TInplaceEdit [D6]


Tosov ©   (2001-12-15 10:43:00) 

Как "подключить" его к StringGrid и вообще работать с ним (если можно маленький пример)


Tosov   (2001-12-16 22:55:00) [1]

Suntechnic
Спасибо. Попробую сделать так..


Suntechnic   (2001-12-16 18:58:00) [2]

>Tosov © (16.12.01 09:13)
TMyGrid=class(TStringGrid)
public
Editor:TMyEdit;!!!!!!!!!Лишнее

Всё верно за исключением вот этой строчки. Editor и так существует, просто тебе надо положить туда свой.

И создавать вот так:
function TMyGrid.CreateEditor: TMyEdit;
begin
Result := TMyEdit.Create(Self);
end;


>У TInplaceEdit в хелпе нет ни функций ни событий связанных с окончанием >редактирования
А что тебе мешает их написать? Ведь ты же создаешь свой класс. Это в любом случае окно, а окно всегда получает фокус и теряет его.
...конкретно с началом и окончанием редактирования в InplaceEditor я не сталкивался так что могу многих камней не видеть, но копать надо именно здесь...


Tosov   (2001-12-16 09:13:00) [3]

TStringGrid наследник от TCustomGrid, а это значит, что всё то, что есть у TCustomGrid присутствует у TStringGrid и будет присутствовать у класса, который ты породишь от TStringGrid...
Я про то-же. Но где у TStringGrid InplaceEditor я не обнаружил.
Насколько я понял, ты предлагаешь следующее:

type
TMyEdit=class(TInplaceEdit)
public
function Что_то_наподобие_onEndEdit(llll);override;
end;

Type
TMyGrid=class(TStringGrid)
public
Editor:TMyEdit;
CreateEditor;override;
end;

procedure TMyGrid.CreateEditor;
begin
Editor:=TMyEdit.Create(nil);
end;

P.S. У TInplaceEdit"а Events нет :( В общем я уже запутался

С начала.. На форме есть TMyGrid (от TStringGrid)
1.юзер начинает редактировать ячейку -> Данные передаются в Editor и обрабатываются там
2.юзер завершает редактирование -> Данные из Editor"a передаются в редактируемую ячейку
3. Все это делается "автоматически" (мне надо создать Editor и "прицепить" его к определенному компоненту.
(это как я понимаю. если ошибся-поправь..)

? Как сказать Editor"у что твой грид =MyGird1 или как в TMyGrid создать Editor ?
? У TInplaceEdit в хелпе нет ни функций ни событий связанных с окончанием редактирования (может плохо хелп читал??)?


Suntechnic   (2001-12-16 08:19:00) [4]

Теперь я уже не понял... Ты про наследование когда-нибудь слыхал? TStringGrid наследник от TCustomGrid, а это значит, что всё то, что есть у TCustomGrid присутствует у TStringGrid и будет присутствовать у класса, который ты породишь от TStringGrid...


Tosov   (2001-12-16 07:09:00) [5]

Я пишу от TStringGrid(просто у TCustomGrid я нашел св-во InplaceEditor а у StringGrid"a не нашел. И как в таком случае мне с ним работать (у TInplaceEdit.Grid только для чтения :( )


Suntechnic   (2001-12-16 05:47:00) [6]

Извини, я сразу не нашёл тот вопрос, который ты первый раз задавал. Теперь по сути...

У TCustomGrid есть метод CreateEditor. Тебе надо его переопределить. Для того чтобы получить полный контроль над TInplaceEdit тебе также придётся от него отнаследоваться. Т.е. написать свой TInplaceEdit например TInplaceEditEx А в переопределённом методе CreateEditor создавай уже новый TInplaceEditEx.


Suntechnic   (2001-12-16 05:28:00) [7]

Ты лучше скажи, ты свой компонент на базе TStringGrid или TCustomGrid пишешь или просто добраться хочешь? Во втором случае никак. Надо наследоваться...


Tosov   (2001-12-16 00:10:00) [8]

Очень надо !!!


Tosov   (2001-12-15 22:10:00) [9]

И еще - в хелпе написано, что есть TCustomGrid.InplaceEditor TCustomGrid.CreateEditor и др. А е его потомке TStringGrid их нет.
Помогите разобраться с InplaceEdit.Очень надо !!!


Наверх

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