Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

Про грид и InplaceEdit   Найти похожие ветки 

 
KSergey   (2003-11-05 15:02) [0]

Код примерно такой:

DBGrid.ShowEditor;
DBGrid.InplaceEditor.Text = "5";

Текст визуально появляется, однако при покидании строки значение это не записывается. Подозреваю, что InplaceEditor как-то должен оповещать грид, что значение из меня надо перечитать, т.к. оно изменилось, но ничего не могу подходящего найти в исходниках. Вопрос: как добиться, чтобы это значение (присвоенное InplaceEditor.Text) сохранялось в гриде (ну в DataSet"e, для особых эстетов ;)


 
Skier   (2003-11-05 15:03) [1]


> сохранялось в гриде (ну в DataSet"e, для особых эстетов
> ;)

Использовать TDBGrid


 
KSergey   (2003-11-05 15:17) [2]

Не понял...
Имелся в виду конечно же TDBGrid
Ремарка лишь чтобы не возникали стандартные реплики "данные хранятся не в гриде, а в ДетеСете" ;)


 
Skier   (2003-11-05 15:30) [3]

TDataSet.Edit и TDataSet.Post ?


 
pasha_golub   (2003-11-05 16:14) [4]

Ваще-то ИнпласеЭдитор конечно оповещает грид об изменении, но по идее нормальный человек напрямую этот эдитор вызывать не должон.

Советую посмотреть код VCL про ДБГрид и его ИнпласеЭдитор, токо внимательно, и сразу все станет ясно.


 
KSergey   (2003-11-06 08:26) [5]

токо внимательно, и сразу все станет ясно.

Про вас не сомневаюсь, но про себя, да еще чтобы "сразу" и "все" - ох как не уверен! ;) Ну т.е. ковыряюсь потихонечку, конечно, но пока не все до конца просекаю.

> [3] Skier © (05.11.03 15:30)
> TDataSet.Edit и TDataSet.Post ?

Да вот как-то тоже не проканывает до конца, надо признать... Т.е. все равно он не ловил мои изменения, хотя, надо заменить, если сделать InplaceEdit.Text := "что-то там" (например в обработчике OnKeyDown по какой-либо клавише с Ctrl), а после ввести хоть один символ - то все сохраняется! Т.е. как-то при вводе InplaceEditor оповещет грид, а иначе - нет... Попытки трассировки и изучения VCL пока к успеху не привели. Потому и уповаю на вас, мастера!

Вообще опишу задачу подробнее, может не так ее решаю: надо по нажатию каких-либо "горячих" клавиш вставлять в редактируемую ячейку грида некую последовательност символов.

Сйчас используется код:

procedure TForm1.grAdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssAlt in Shift then
if key= 78 then // ну пока, для тестов, буква "Т"
begin
if not (Grid.DataSource.DataSet.State in [dsInsert,dsEdit]) then
Grid.DataSource.DataSet.Edit;
Grid.ShowEditor;
GridInplaceEditor.SelText := "Text";
end;
end;


 
ЮЮ   (2003-11-06 09:04) [6]

А если вместо(или вместе) изменения в InplaceEditor-е вносить изменения непосредственно в поле ?
Grid.SelectedField.as... := ...


 
KSergey   (2003-11-06 10:22) [7]

В поле можно, конечно, но надо вставлять текст в позиции курсора, вот в чем "прикол"...



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

Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-56854
Sha-Man
2003-10-27 14:08
2003.11.17
Тут уже спрашивали, я знаю. Про ирландскую музыку.


1-56753
Максим
2003-11-06 16:43
2003.11.17
добавление TabControl(ов) в PageControl в runtime


14-56914
TCrash
2003-10-25 00:32
2003.11.17
Хандра :-(


14-56838
Dimonnn
2003-10-28 00:11
2003.11.17
Помогите найти


1-56665
TUser
2003-11-05 10:12
2003.11.17
Fonts in RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский