Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Каким образом выйти из режима редактирования?   Найти похожие ветки 

 
denik   (2004-03-09 11:02) [0]

Я в ДБГриде редактирую запись, пишу
Edit;
Post;
А из режима редактирования не выхожу. Почему?


 
sniknik ©   (2004-03-09 11:11) [1]

может потому что там где ты это делаеш в него и входить не нужно. но кода чтобы точно понять привел явно недостаточно.


 
Desdechado ©   (2004-03-09 11:12) [2]

datasource проверь autoedit


 
Janbolat ©   (2004-03-09 11:17) [3]


> sniknik ©   (09.03.04 11:11) [1]
> может потому что там где ты это делаеш в него и входить
> не нужно. но кода чтобы точно понять привел явно недостаточно.

Полностью согласен. поставь вопрос по другому (по-конкретнее)


 
denik   (2004-03-09 11:31) [4]

В общем мне нужно менять в одном из полей флаг на True или False.
Когда в ДБГриде я нажимаю на соответствующее поле он меняется, но в БД не записывается. Изменяется он только тогда, когда фокус из этой ячейки перешел на другую.


 
Janbolat ©   (2004-03-09 11:39) [5]

а что тебя так не устраивает?
попробуй событие дбгрида ONENTER или другое какое нибудь событие


 
Anatoly Podgoretsky ©   (2004-03-09 11:48) [6]

Пока ты не ушел с поля никакой записи еще нет, ты можешь отменить редактирование на данном этапе. Не понятно раз ты работает в гриде, то зачем делаешь edit/post?


 
denik   (2004-03-09 12:43) [7]

>Anatoly Podgoretsky ©
>Пока ты не ушел с поля никакой записи еще нет, ты можешь >отменить редактирование на данном этапе.

Так каким образом, кликнув по ячейке сразу добавить значение в БД?


 
Vlad ©   (2004-03-09 12:46) [8]


> denik   (09.03.04 12:43) [7]

Ну кликнул ты по ячейке, тем самым перевел DataSet в состояние dsEdit. Новое значение еще не ввел.
Что должно по-твоему добавиться в БД ?


 
Janbolat ©   (2004-03-09 12:53) [9]

я как-то непонял зачем использовать такой метод? и так все хорошо


 
denik   (2004-03-09 13:02) [10]

>Vlad ©   (09.03.04 12:46) [8]
Кликнув по ячейки должно сразу добавиться TRUE или FALSE.


 
Vlad ©   (2004-03-09 13:07) [11]


> denik   (09.03.04 13:02) [10]

Еще раз.
Вот есть у тебя грид. Ты видишь ячейку в которой написано, допустим, True. Это значение уже есть в базе. Затем ты кликаешь мышкой на ячейку.
Что должно произойти ?


 
denik   (2004-03-09 13:17) [12]

> Vlad ©   (09.03.04 13:07) [11]
Оно меняется на FALSE. И моментально записывается в БД.


 
DenK_vrtz ©   (2004-03-09 13:21) [13]

>denik   (09.03.04 13:17) [12]

Если честно, то это глупость! ИМХО!


 
Anatoly Podgoretsky ©   (2004-03-09 13:23) [14]

Это был бы ужас, запись при каждом изменении, без возможности отменить, а сколько ошибок выдаст драйвер для недопусимых значениях просто уму не постижимо. А действия по переходу обратно в режим редактирования, это как же надо не любить пользователя.
Запись заносится в таблицу (не БД) или методом POST или автоматически переходом на другую запись, при этом тоже вызывается POST


 
Vlad ©   (2004-03-09 13:32) [15]


> denik   (09.03.04 13:17) [12]

Чушь конечно, но если очень надо, тогда в гриде на событие OnCellClick пишешь что-то вроде этого:
if Column.FieldName="Нужное_поле" then
begin
 with Column.Field.DataSet do
 begin
  if not(State in [dsEdit, dsInsert]) then Edit;
  FieldByName("Нужное_поле").AsBoolean:=not FieldByName("Нужное_поле").AsBoolean;
  Post;
  // Если была открыта транзакция - подтверждаем транзакцию.  
end;

Только имей ввиду - месть пользователей будет жестока.


 
denik   (2004-03-09 13:36) [16]

>Anatoly Podgoretsky ©   (09.03.04 13:23) [14]

Недопустимых значений быть не может! Так я у вас никак не добьюсь каким образом сразу в БД занести значение.


 
Anatoly Podgoretsky ©   (2004-03-09 13:42) [17]

очень просто может быть, вместо 123 вводим 1А3 при вводе получаем скандал.
Насчет добиться тебе уже несколько раз сказали, запись заносится методом POST


 
Janbolat ©   (2004-03-09 13:58) [18]

не знаю будет ли рабоать
> Vlad ©   (09.03.04 13:32) [15]

но попробуй использовать combobox или что то типа такое
это будет лучше наверное


 
DenK_vrtz ©   (2004-03-09 14:04) [19]

>Janbolat ©   (09.03.04 13:58) [18]
>не знаю будет ли рабоать

не знаешь - не пиши!


 
Vlad ©   (2004-03-09 14:05) [20]


> Janbolat ©   (09.03.04 13:58) [18]
> не знаю будет ли рабоать
> > Vlad ©   (09.03.04 13:32) [15]

Работать будет, возможно есть какие-то ляпы (писал не проверяя прямо тут). Однако ИМХО, это некорректно - писать в базу не давая юзеру возможности откатить изменения на клиенте. Сам бы я так делать не стал.
"Такой хоккей нам не нужен" (с) кто-то из телекомментаторов :-)

> попробуй использовать combobox

А это тут причем ? Лучше уж CheckBox тогда, если поле boolean


 
sniknik ©   (2004-03-09 14:10) [21]

проедположение или совет чтото попробовать гораздо ценее высказывания вроде
DenK_vrtz ©   (09.03.04 13:21) [13]
ну это просто неоценимый вклад в дискуссию (в смысле ценность = 0 ;)


 
Vlad ©   (2004-03-09 14:12) [22]


> sniknik ©   (09.03.04 14:10) [21]

Чтож теперь не высказываться чтоли ? :-)


 
DenK_vrtz ©   (2004-03-09 14:12) [23]

>sniknik ©   (09.03.04 14:10) [21]

ну подколол! а смысл? :)


 
Janbolat ©   (2004-03-09 14:49) [24]


> DenK_vrtz ©   (09.03.04 14:04) [19]
> >Janbolat ©   (09.03.04 13:58) [18]
> >не знаю будет ли рабоать
>
> не знаешь - не пиши!

а какая тебе разница

>
> Vlad ©   (09.03.04 14:05) [20]
>
> > Janbolat ©   (09.03.04 13:58) [18]
> > не знаю будет ли рабоать
> > > Vlad ©   (09.03.04 13:32) [15]
>
> Работать будет, возможно есть какие-то ляпы (писал не проверяя
> прямо тут). Однако ИМХО, это некорректно - писать в базу
> не давая юзеру возможности откатить изменения на клиенте.
> Сам бы я так делать не стал.
> "Такой хоккей нам не нужен" (с) кто-то из телекомментаторов
> :-)
>
> > попробуй использовать combobox
>
> А это тут причем ? Лучше уж CheckBox тогда, если поле boolean

я не говорю что твой метод не будет работать
зачем писать коды когда можно использовать простые компоненты
ведь поле боолеан содердит токо две записи и удобнее было бы использовать combobox или какое нибудь другое средство


 
VLAD-MAL   (2004-03-09 14:56) [25]

Интересно, что структура классов VCL оказывает негативное влияние на понимание начинающими программистов системы доступа к данным. Нет ощущения различия средств представления и хранения.  Может, они и правы, так должно быть, но такого нет...


 
Vlad ©   (2004-03-09 14:59) [26]


> Janbolat ©   (09.03.04 14:49) [24]

Ты вопрос внимательно прочитай, человек не про это спрашивает, а про то как ему при изменении значения в DBGrid"e сразу отразить изменение в базе. Еще раз - причем тут комбобокс ?


 
denik   (2004-03-10 00:59) [27]

Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
подтвердить изменение значения этого поля? Например, представим
DBGrid:

Name  Flag
Саша  TRUE
Даша  TRUE
Миша  FALSE

Кликнул я по чекбоксу напротив ячейки Саша, значение поля Flag соответственно меняется на FALSE(в DBGrid`е!), но в БД оно не меняется, если, конечно, фокус остается в этой записи.

Естественно, если я перейду на другую запись, тогда всё отлично.


 
Германн ©   (2004-03-10 04:30) [28]

Что такое "поле с checkBox`ами"?
Что такое "чекбокс напротив ячейки Саша"?
Что такое "поле Flag"?


 
KSergey ©   (2004-03-10 08:56) [29]

> denik   (10.03.04 00:59) [27]
> Люди, я всего лишь хотел узнать как кликая по полю с checkBox`ами
> подтвердить изменение значения этого поля? Например, представим
> DBGrid:
> Кликнул я по чекбоксу напротив ячейки Саша, значение поля
> Flag соответственно меняется на FALSE(в DBGrid`е!), но в
> БД оно не меняется, если, конечно, фокус остается в этой
> записи.

Я так и не пойму: вы код Vlad ©   (09.03.04 13:32) [15] пробовали? Не работает? Или что??
Правда, я бы несколько его изменил, если позволите:

if Column.FieldName="Нужное_поле" then Post;

Хотя тоже на скорую руку, может чего и путаю ;)


 
Anatoly Podgoretsky ©   (2004-03-10 09:04) [30]

denik   (10.03.04 00:59) [27]
Последний раз - Post


 
Германн ©   (2004-03-11 01:55) [31]

2 Anatoly Podgoretsky ©   (10.03.04 09:04) [30]

> Последний раз - Post

Да. "Ждём"с "первой звезды"!". А пока - пост! :))



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

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.024 c
11-1058355768
ser_ker
2003-07-16 15:42
2004.04.04
Работа с KOlEDb


9-1063370175
lds
2003-09-12 16:36
2004.04.04
Старая добрая игра Элита (ZX-Spectrum)


14-1078418164
Knight
2004-03-04 19:36
2004.04.04
Нуна адресную книгу...


3-1078512446
Karlson
2004-03-05 21:47
2004.04.04
выделение нескольких строк в DbGride


8-1068235153
Delphi5.01
2003-11-07 22:59
2004.04.04
[Error] DirectDraw.pas(173): Type IDirectDrawSurface needs fina