Главная страница
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.017 c
1-36226
maSESter
2002-11-30 23:11
2002.12.12
Перекодировка DOS/WINDOWS


3-36016
Infinity
2002-11-24 22:52
2002.12.12
Вопрос об индексе


3-35990
AndrewVolkov
2002-11-21 16:17
2002.12.12
Столкнулся с сортировкой Lookup поля ((


7-36446
Евген
2002-10-07 15:44
2002.12.12
Событие при закрытии дверцы CD-ROM


1-36119
cher_gvf
2002-12-03 10:20
2002.12.12
String to array of char