Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:41 24.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема Post,commit при редакт.в клетка на таблица ?нови  
Автор gydi (engineer)
Публикувано15.06.06 17:12



Имам фаил (дбф) показан в таблица. Как, когато променя стойността в клетка от таблицата, промяната да се запише във файла, без да сменям реда. само въвеждам [enter] ,или вместо ентер чукам с мишката на съседна клетка.
(използвам табле-датасорсе-грид)



Тема Re: Post,commit при редакт.в клетка на таблица ? [re: gydi]  
Авторeмил (Нерегистриран)
Публикувано15.06.06 17:39



Виж събитията на DBGrid.

(Това което искаш не е хубаво да се прави така)



Тема Re: Post,commit при редакт.в клетка на таблица ?нови [re: eмил]  
Автор gydi (engineer)
Публикувано15.06.06 17:53



пробвах ги повечето но нищо не стана. Въпроса е ако някой го е правил кое по точно събитие.



Тема Re: Post,commit при редакт.в клетка на таблица ?нови [re: gydi]  
Авторeмил (Нерегистриран)
Публикувано15.06.06 18:51



Няма да минеш само с едно събитие.
Трябва да ловиш много неща. Виж OnColEnter или OnColExit, но
няма да е достатъчно. Ще трябва да ловиш например
натискането на Enter и сигурно и на други навигационни клавиши.
Какво да стане като цъкаш извън грида например? (когато губи фокус)
Ще стане сигурно, но ще изглежда много оплетено.

Друг начин би бил да се разгледа реализацията на DBGrid кога
и как той влиза в режим на редакция на клетка и кога приключва
редакцията. И да се направи собствен грид, които има събите
от рода на "приключване на редакция на клетка". (ако например
в програмата има много гридове, които трябва да се държат така,
то това ще е по-добрия вариант)

ПП:А така става защото това което искаш е противоестествено.
Естественото е целия запис да се записва наведнъж. Какво би
станало ако например се добави нов запис и в него има
попълнено само едно поле, а липсва някое ключово? Например
въвел си име на човек, но ЕГН не, а то е задължителен атрибут.
Как да се процедира тогава? Още повече, че ти имаш DBF, който
ще позволи това, но ако таблицата беше на някой SQL сървер,
то този фокус посмъртно няма да стане :)



Тема Re: Post,commit при редакт.в клетка на таблица ?нови [re: gydi]  
Авторeмил (Нерегистриран)
Публикувано15.06.06 19:36



хм.. пробвай така:



TForm1 = class(TForm)
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
procedure FieldChange(Sender: TField);
private
{ Private declarations }
public
{ Public declarations }
end;


...
var
Form1: TForm1;
AlreadyChangedFlag:boolean;
....

procedure TForm1.FormCreate(Sender: TObject);
var k:integer;
begin
AlreadyChangedFlag:=false;
for k:=0 to table1.FieldCount-1
do table1.Fields[k].OnChange:=FieldChange;
end;

procedure TForm1.FieldChange(Sender: TField);
begin
if AlreadyChangedFlag then Exit;
AlreadyChangedFlag:=true;
try
if (Sender as TField).DataSet.State in [dsEdit,dsInsert] then
begin
(Sender as TField).DataSet.Post;
(Sender as TField).DataSet.Edit;
end;
finally
AlreadyChangedFlag:=false;
end;
end;


като ще е гарга да е рошава :)



Тема Re: Post,commit при редакт.в клетка на таблица ?нови [re: gydi]  
Автор avatarx (Mr.)
Публикувано27.06.06 23:30



Незнам за какво ти е точно така да изглежда, но Емил е прав - така не се прави! От друга страна пък, откъде ги изкопавате тия вехти формати :)

Avatarx



Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.