Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизПолучение значения редактируемого поля в DBGrid Найти похожие ветки
← →
needle (2003-06-02 14:56) [0]При редактировании поля в DBGrid как получить вводимое значение, пока оно еще не отправлено в буфер записи, иначе говоря отловить событие аналогичное OnChange TEdit и выполнить какое-то действие, например произвести инкрементный поиск, отфильтровать LookupDataSet.
← →
Mike Kouzmine (2003-06-02 15:04) [1]onchange - onvalidate - onsettext
← →
needle (2003-06-02 15:50) [2]мляха, onchange - onvalidate - onsettext это методы TField и срабатывают перед отправкой данных в буфер, т.е. когда уже отредактированы в DBGrid. а мне нужно получить эти данные при редактировании, на лету.
← →
Mike Kouzmine (2003-06-02 15:55) [3]onKeyPress, onKeyDown
← →
Соловьев (2003-06-02 15:58) [4]
> needle © (02.06.03 15:50)
откажысь от DBEdit и сделай все с Edit
← →
needle (2003-06-02 16:01) [5]onkeypress? ну ладно. тогда скажи где находится это редактируемый техт?
← →
Mike Kouzmine (2003-06-02 16:07) [6]DBEdit.Text + Key
← →
Mike Kouzmine (2003-06-02 16:08) [7]А вообще, если ты все знаешь, то что спрашивать?
← →
Соловьев (2003-06-02 16:10) [8]
> Mike Kouzmine © (02.06.03 16:07)
> DBEdit.Text + Key
не очень хорошо, так как для редактирования прийдется очень помучаться...
← →
needle (2003-06-02 16:11) [9]млях
поставлю вопрос по-другому:
в DBGrid отображается некая таблица. при редактировании записи или вводе новой строки вываливается DropDownBox, где отображуется другая табличка. так вот, при вводе символов в поле, например пользователь нажал "1" - показывались записи начинаещиеся с "1", нажал далее "2" - записи с "12". как это сделать?
← →
Mike Kouzmine (2003-06-02 16:13) [10]Соловьев © (02.06.03 16:10) Поставь провеку печ. символов + учет упр. символов и все. Правда если это мучительно из-за политических убеждений, то тогда не знаю.
← →
NAlexey (2003-06-02 16:19) [11]Обрабатывай события InplaceEditor. Это как раз то что тебе надо.
← →
Соловьев (2003-06-02 16:21) [12]
> Mike Kouzmine © (02.06.03 16:13
не не из-за политических :)))
при желании можно и текстовый редактор написать:)
набираемляляля|
, курсор в конце, потом мышкой ставимлял|яля
, что получим если начнем нажимать кнопочки?
← →
Mike Kouzmine (2003-06-02 16:23) [13]Соловьев © (02.06.03 16:21) Ты будешь смеяться, но "ляляля"
← →
Соловьев (2003-06-02 16:25) [14]
> Mike Kouzmine © (02.06.03 16:23
мы получим ляляля + то что нажимали, а не лял + то что нажимали + яля. Так или я что-то дегононяю, что возможно :)))
← →
Mike Kouzmine (2003-06-02 16:27) [15]Это был намек и все уже поняли, что надо обрабатывать Up, а не даун.
← →
needle (2003-06-02 16:31) [16]> Mike Kouzmine Соловьев
Вы обкурились что-ли? в DBEdit все просто - onchange и читаем свойство Text или EditText.
Вы лучше подумайте над моим вопросом
← →
Соловьев (2003-06-02 16:31) [17]
> Это был намек и все уже поняли, что надо обрабатывать Up,
> а не даун.
а какая разница? результат один и тот же. или я в конце дня вообще не пойму ..... :)
← →
needle (2003-06-02 16:34) [18]-> NAlexey
наконец-то именно то что я хотел услышать :-)
теперь дело за малым - как получить этот InPlaceEditor, в каком свойстве DBGrid он хранится?
← →
Danilka (2003-06-02 16:35) [19]needle © (02.06.03 16:31)
Дружище, тебя что, мама с папой не учили, что когда кого-нибудь просишь о чем-либо, надо говорить "пожалуйста" и "спасибо", а не как "Вы обкурились что-ли"?
← →
needle (2003-06-02 16:38) [20]-> Danilka
что вы, что вы, как можно, конешно, пожалуйста, заранее спасибо ;-)
← →
Sandman25 (2003-06-02 16:45) [21]Danilka
Обратите внимание на needle © (02.06.03 16:01)
Все же просто должны быть благодарными ему, за то что он выслушивает их советы...
← →
Mike Kouzmine (2003-06-02 17:11) [22]Соловьев © (02.06.03 16:31) Я сам не понял, пока не попробовал.
Когда на даун - кей не добален, когда на ап - добавлен.
Пример: на OnKeyUp делаешь Label1.Caption := DBEdit1.Text;, то все окейно.
← →
Mike Kouzmine (2003-06-02 17:16) [23]Прошу прощения. Это DBGrid. Путаю педали :)
← →
needle (2003-06-02 17:21) [24]все, нашел, епт :-)
DBGrid.InPlaceEditor.OnChange:=MyMethod(Sender: TObject);
и там творю что хочу с DBGrid.InPlaceEditor.Text
:-)
← →
Mike Kouzmine (2003-06-02 17:23) [25]procedure TForm1.DBGridEh1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Caption := DBGridEh1.InplaceEditor.EditText;
end;
Так проще. Но вежливости поучиться немешало бы. Что есть, то есть.
← →
needle (2003-06-02 18:03) [26]да мляха, на х.. все эти китайские церемонии? я спрашивал о DBGrid, понеслась дискуссия о DBEdit, одернул немного. тогда уж отдельный топик заводите, что лучше - ап или даун :-))
← →
Anatoly Podgoretsky (2003-06-02 20:13) [27]Кажется ты перепутал платную службу поддержки с форумом.
← →
Dred2k (2003-06-02 21:16) [28]2needle
Обрати внимание на OnChange у TField в купе с:
Represents the original value of the field (as a Variant).
property OldValue: Variant;
Description
Read the OldValue property to examine or retrieve the original value of the field that was obtained from the dataset before any new values were written to the record buffer. For example, this code replaces current pending changes with a field’s original value:
NewValue := OldValue;
Once records are posted successfully, the old field value cannot be retrieved.
Note: Cached updates must be enabled.
CachedUpdates не пробовал? Говорят - помогает (эт насчет последней строчки читаты).
А так одно - когда эмоций много, тогда Ленинград отдыхает ;)
Только так вопросы обсуждать сложно.
(насчет результата изысканий постуй тчк).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.03 c