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

Вниз

Виртуальное поле   Найти похожие ветки 

 
малой   (2002-06-05 11:57) [0]

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

Еще раз: этого поля в базе нет. Как это сделать?


 
Kaban   (2002-06-05 12:08) [1]

А в чем проблема:
есть допустим TQuery, у него есть TField, метод Add
конечно не проверял, но, по идее, должно работать



 
Lusha ©   (2002-06-05 12:11) [2]

>малой (05.06.02 11:57)
SELECT Field1, Field2, ..., 0 AS VirtualField FROM TABLE1...


 
yozhik   (2002-06-05 12:14) [3]

используй CalculatedField


 
малой   (2002-06-05 12:15) [4]

Можно добавить поле FieldKind:=fkCalculated, но не могу менять значение, кроме как в OnCalcFields, но как это сделать ума не приложу


 
Val ©   (2002-06-05 12:21) [5]

не нужно делть CalculatedField - не поможет. Воспользуйтесь запросом по совету Lusha © (05.06.02 12:11)


 
малой   (2002-06-05 12:22) [6]

Спасибо, попробую


 
skiph ©   (2002-06-06 04:59) [7]

А можно вставить ComboBox в DBGrid.

Type TColumnAction = (caNotes, caGraphic, caCheck , caLength, caNone);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var CheckIt : Boolean;
Style : Integer;
begin
CheckIt := {выражение, которое определяет выставлена галочка или нет}
IF gdSelected IN State
Then Begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
End;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
// Temp - вспомогательная колонка, в которой и происходит
//прорисовка. Хоть она и вспомогательная, но она должна быть
// привязана к реальному полю таблицы иначе вылетит
if CompareText(Column.FieldName, "TEMP") = 0
then begin
IF CheckIt
Then Style := DFCS_CHECKED
Else Style := DFCS_BUTTONCHECK;
DrawFrameControl(TDBGrid(Sender).Canvas.Handle, Rect, DFC_BUTTON, Style);
end;
end;



 
Johnmen ©   (2002-06-06 09:26) [8]

Все несколько проще :

1.Создаешь поле char(1), в котором м.б. "0" или "1"
2.В гриде OnDrawDataCell отрисовываешь в соотв.колонке, напр."галочку", если "1", ничего - если "0"
3.Обрабатываешь OnMouseDown, OnKeyDown, чтобы менять "0"->"1" и наоборот.




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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
1-1040
strel
2002-06-18 00:49
2002.07.01
как <B>передавать параметры </B>по ссылке в функциях <B>DLL</B ??


14-1191
GenBr
2002-05-31 11:59
2002.07.01
Python for Delphi


7-1219
Aleksey_K
2002-04-04 18:35
2002.07.01
Com порт


1-1101
koks
2002-06-19 13:57
2002.07.01
переименовать модуль :((


1-1056
Alexander_D6_XP
2002-06-18 16:49
2002.07.01
Регистрация созданной формы