Главная страница
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.02 c
1-36267
DiJeT
2002-11-20 01:59
2002.12.12
OpenGL и всё такое


7-36422
Геннадий
2002-10-09 20:38
2002.12.12
Как обратиться к IE как к серверу COM ?


3-36007
----
2002-11-23 17:38
2002.12.12
Как в IB6 взять BLOB-поле(текст) и выбрать из него нужные значе..


1-36124
Vick
2002-12-03 13:43
2002.12.12
Присвоение компоненту Eventа в RunTime-режиме


3-35973
Igoryan
2002-11-22 13:08
2002.12.12
Работа с парадоксовской базе