Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Внизвставка в DBGrid значения без потери опции RowSelect Найти похожие ветки
← →
Slisten (2003-04-09 22:01) [0]Имеется Таблица(DBGrid) с данными в которой в которой визуально выделена вся сточка(RowSelect). Как добится того чтобы при нажатии цифровой клавиши поисходило изменение значения данных в колонке но RowSelect сохронялся,,, Зарание Блогадарен
← →
Johnmen (2003-04-09 23:24) [1]> изменение значения данных в колонке
В какой колонке ?
← →
mike-d (2003-04-09 23:44) [2]если я правильно понял вопрос (в чем сомневаюсь), то наверное нет - сдается мне что при RowSelect выбор отдельного поля (колонки) в DBGrid не получится.
← →
ЮЮ (2003-04-10 03:18) [3]Сделать "свой RowSelect", т.е. раскрашивать все поля текушей записи, при этом не теряя возможностей доступа к отдельному полю
← →
Mike Kouzmine (2003-04-10 09:03) [4]На BeforeEdit - снимаешь, редактируешь, на AfterPost - ставишь
← →
Mike Kouzmine (2003-04-10 09:05) [5]Вернее не то. В ДБГридЭх - так возможно. В проперти оптионсэх.
← →
Соловьев (2003-04-10 09:28) [6]
> ЮЮ © (10.04.03 03:18)
Согласен. Использовать DrawColumnCell.
← →
REP (2003-04-10 12:18) [7]Если колонка, в которую собираешься вводить одна, то я делал так:
Если начинаешь в гриде вводить цифры. появляется (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;
Это у меня был список фамилий и сумма начислений к ним. Изменяю в гриде тольуо одну колонку!!!
← →
REP (2003-04-10 12:25) [8]А да еще:
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;
← →
Sliften (2003-04-12 03:36) [9]Большое Всем Спасибо!!!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c