![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вставка в DBGrid значения без потери опции RowSelect [D7, Paradox]
Slisten © (2003-04-09 22:01:00)Имеется Таблица(DBGrid) с данными в которой в которой визуально выделена вся сточка(RowSelect). Как добится того чтобы при нажатии цифровой клавиши поисходило изменение значения данных в колонке но RowSelect сохронялся,,, Зарание Блогадарен
Sliften (2003-04-12 03:36:00) [1]Большое Всем Спасибо!!!
REP (2003-04-10 12:25:00) [2]А да еще:
procedure TfMain.eSummaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=27 Then begin
eSumma.Visible:=False;
DBGrid1.SetFocus;
end Else begin
Case Key of
13,vk_Down:begin
Table1.Edit;
Table1.FieldByName("Summa").AsString:=eSumma.Text;
Table1.Post;
Table1.FlushBuffers;
eSumma.Visible:=False;
DBGrid1.SetFocus;
Table1.Next;
end;
vk_Up:begin
Table1.Edit;
Table1.FieldByName("Summa").AsString:=eSumma.Text;
Table1.Post;
Table1.FlushBuffers;
eSumma.Visible:=False;
DBGrid1.SetFocus;
Table1.Prior;
end;
end;
REP (2003-04-10 12:18:00) [3]Если колонка, в которую собираешься вводить одна, то я делал так:
Если начинаешь в гриде вводить цифры. появляется (Visible=True)TEdit:
eSumma - тот самый TEdit;
procedure TfMain.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
If (Key>="0") and (Key<="9") Then begin
eSumma.Visible:=True;
eSumma.SetFocus;
eSumma.Text:=Key;
eSumma.SelStart:=Length(eSumma.Text);
end;
end;
procedure TfMain.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If (gdFocused in state) Then begin
//Эта самая сумма находится в 4-й колонке
eSumma.SetBounds(
Rect.Left+DBGrid1.Left+1+
DBGrid1.Columns[0].Width+1+
DBGrid1.Columns[1].Width+1+
DBGrid1.Columns[2].Width+1,
Rect.Top+DBGrid1.Top+3,
DBGrid1.Columns[3].Width,
Rect.Bottom-Rect.Top-2);
eSumma.Text:=Table1.fieldbyName("Summa").AsString;
end;
Это у меня был список фамилий и сумма начислений к ним. Изменяю в гриде тольуо одну колонку!!!
Соловьев (2003-04-10 09:28:00) [4]
> ЮЮ © (10.04.03 03:18)
Согласен. Использовать DrawColumnCell.
Mike Kouzmine (2003-04-10 09:05:00) [5]Вернее не то. В ДБГридЭх - так возможно. В проперти оптионсэх.
Mike Kouzmine (2003-04-10 09:03:00) [6]На BeforeEdit - снимаешь, редактируешь, на AfterPost - ставишь
ЮЮ (2003-04-10 03:18:00) [7]Сделать "свой RowSelect", т.е. раскрашивать все поля текушей записи, при этом не теряя возможностей доступа к отдельному полю
mike-d (2003-04-09 23:44:00) [8]если я правильно понял вопрос (в чем сомневаюсь), то наверное нет - сдается мне что при RowSelect выбор отдельного поля (колонки) в DBGrid не получится.
Johnmen (2003-04-09 23:24:00) [9]> изменение значения данных в колонке
В какой колонке ?