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

Вниз

Проблема с DBGrid   Найти похожие ветки 

 
abp ©   (2002-11-25 15:23) [0]

У меня TDBGrid привязан к базе данных, созданных при помощи TClientDataSet. Вешаю на Грид обработчик OnKeyPressed. Код обработчика внизу:
procedure TTempOgrSpeed.DBGrid2KeyPress(Sender: TObject; var Key: Char);
var
s : string;
begin
if (Key = "s") then
begin
MarshDM.SetActiveBD;
if (DBGrid2.Col = 1) then
if (SelectUchastokForm.ShowModal = mrOK) then
begin
MarshDM.OgrSpeedTmpCDS.Edit;
MarshDM.OgrSpeedTmpCDSNAMEP.AsString:= MarshDM.Stanchya.FieldByNAme("NAMEC").AsString;
MarshDM.OgrSpeedTmpCDSONACHV.AsInteger:= MarshDM.Stanchya.FieldByNAme("OSNACH").AsInteger;
MarshDM.OgrSpeedTmpCDSOENDV.AsInteger:= MarshDM.Stanchya.FieldByNAme("OSEND").AsInteger;
MarshDM.OgrSpeedTmpCDSWAY.AsInteger:= MarshDM.Stanchya.FieldByNAme("WAY").AsInteger;
MarshDM.OgrSpeedTmpCDS.Post;
end;
end;
if (Key = #32) then
begin
if (DBGrid2.Col = 1) then
if (KoordForm.ShowModal = mrOk) then
begin
MarshDM.OgrSpeedTmpCDS.Edit;
MarshDM.OgrSpeedTmpCDSNAMEP.AsString:="Перегон "+IntToStr(KoordForm.SpinEdit1.Value)+"км"+IntToStr(KoordForm.SpinEdit2.Value)+"п-"+IntToStr(KoordForm.SpinEdit3.Value)+"км"+IntToStr(KoordForm.SpinEdit4.Value)+"п";
MarshDM.OgrSpeedTmpCDSONACHV.AsInteger:=((KoordForm.SpinEdit1.Value*1000+KoordForm.SpinEdit2.Value*100)-1100);
MarshDM.OgrSpeedTmpCDSOENDV.AsInteger:=((KoordForm.SpinEdit3.Value*1000+KoordForm.SpinEdit4.Value*100)-1100);
MarshDM.OgrSpeedTmpCDSWAY.AsInteger:=KoordForm.SpinEdit5.Value;
MarshDM.OgrSpeedTmpCDS.Post;
end;
if (DBGrid2.Col = 2) then
if (TimeForm.ShowModal = mrOk) then
begin
MarshDM.OgrSpeedTmpCDS.Edit;
MarshDM.OgrSpeedTmpCDSTNACH.AsInteger:= TimeForm.SpinEdit1.Value;
MarshDM.OgrSpeedTmpCDSMNACH.AsInteger:= TimeForm.SpinEdit2.Value;
MarshDM.OgrSpeedTmpCDSTKON.AsInteger:= TimeForm.SpinEdit3.Value;
MarshDM.OgrSpeedTmpCDSMKON.AsInteger:= TimeForm.SpinEdit4.Value;
if ((TimeForm.SpinEdit1.Value = 0) and (TimeForm.SpinEdit2.Value = 0)
and (TimeForm.SpinEdit3.Value = 0) and (TimeForm.SpinEdit4.Value = 0)) then
s:="до отмены";
if (((TimeForm.SpinEdit1.Value <> 0) OR (TimeForm.SpinEdit2.Value <> 0))
and ((TimeForm.SpinEdit3.Value = 0) and (TimeForm.SpinEdit4.Value = 0))) then
s:= "с "+IntToStr(TimeForm.SpinEdit1.Value)+"ч "+IntToStr(TimeForm.SpinEdit2.Value)+"мин и до отмены";
if (((TimeForm.SpinEdit1.Value <> 0) OR (TimeForm.SpinEdit2.Value <> 0))
and ((TimeForm.SpinEdit3.Value <> 0) OR (TimeForm.SpinEdit4.Value <> 0))) then
s:= "с "+IntToStr(TimeForm.SpinEdit1.Value)+"ч "+IntToStr(TimeForm.SpinEdit2.Value)+"мин по "+IntToStr(TimeForm.SpinEdit3.Value)+"ч "+IntToStr(TimeForm.SpinEdit4.Value)+"мин";
MarshDM.OgrSpeedTmpCDSTIMEP.Value:= s;
MarshDM.OgrSpeedTmpCDS.Post;
DBGrid2.Refresh;
end;
end;
end;

После выполнния обработчика в колонке данне не появляются, а появляется или S все забивается пробелом.

Не пойму где я маху дал??????


 
Johnmen ©   (2002-11-25 15:46) [1]

1.Если это не трехзвенка, то чем оправдано использование TClientDataSet вместо специализированных компонент ?
2. Разбираться в вышеприведенном коде вряд ли кто-то будет, в виду его крайней нечитабельности (мазохистов нет...:))


 
abp ©   (2002-11-25 16:13) [2]

Спасибо! Уже решил данную проблему



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
3-36049
Zn
2002-11-25 15:58
2002.12.12
Можно ли из Query обратиться к курсору.


3-36047
oleg_er
2002-11-25 15:33
2002.12.12
ADO запрос из нескольких директорий


3-35992
AM
2002-11-22 16:18
2002.12.12
Что за ошибка непонятная


1-36123
LongIsland
2002-12-02 15:46
2002.12.12
Недостаточно памяти для обработки команды


4-36466
Codec
2002-10-30 18:57
2002.12.12
Помогите, please, разобраться с TEdit