|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2012, 15:48 | #1 |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
никак неполучается обновить dbgrid
использую базу access у меня есть dbgrid а в нем процедура, которая при окраске ячейки (окрашивается она по разному по наступлению даты) выводит на форму label с текстом и в зависимости от цвета(а значит и даты) текст всегда разный.
проблема заключается в том что когда наступает одна дата текст вылазиет, потом вторая то вылазиет другой текст, но при этом этот остается!!!!!!! А самое главное что если выйти из проги и зайти то все супер, выходит нужно обновить грид или его процедуры, процедуры не знаю как , а сам грид, адо конектион все перепробывал ни черта только с презапуском программы |
19.01.2012, 16:05 | #2 | |||
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Может вы лучше покажите кусок кода, где всё это происходит.
А то я слабо понял допустим что значит 1 Цитата:
2 Цитата:
3 Цитата:
ЗЫ телепатну, вы создаёте label программно, а потом не уничтожаете его, или не меняете его текст, а просто создаёте ещё 1. Последний раз редактировалось vovk; 19.01.2012 в 16:07. |
|||
19.01.2012, 16:16 | #3 |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
нет у меня заготовлены 3 label с текстом все невидимы
в дбгриде есть дата, за один день до которой, в день которой, по истечении которой меняется цвет ячейки в гриде и на форме 1 из 3 label взависимости от события показывается. когда например я ставлю в грид 20 число текст проявляется с надписью НАСТУПИЛО , потом меняю число на 23 появляется надпись ПРОСРОЧЕНО , беда в том что НАСТУПИЛО тоже остается и убирается только после презапуска программы вот код procedure TForm13.DBGrid1DrawColumnCell(Sende r: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var day, month, year : word; begin if Column.Field.FieldName = 'oplachenodo' then begin DecodeDate( Column.Field.AsDateTime, year, month, day ); // заранее if (Column.Field.AsDateTime > Now) and (DaysBetween(Now, EncodeDate( YearOf(Now), month, day )) = 0) then TDBGrid(Sender).Canvas.Brush.Color := clYellow; if (Column.Field.AsDateTime > Now) and (DaysBetween(Now, EncodeDate( YearOf(Now), month, day )) = 0) then label9.Visible:=true ; //сегодня if (Column.Field.AsDateTime < Now) and (DaysBetween(Now, EncodeDate( YearOf(Now), month, day )) = 0) then TDBGrid(Sender).Canvas.Brush.Color := clRed ; if (Column.Field.AsDateTime < Now) and (DaysBetween(Now, EncodeDate( YearOf(Now), month, day )) = 0) then label8.Visible:=true; //просрочили! if (Column.Field.AsDateTime < Now) then TDBGrid(Sender).Canvas.Brush.Color := clred ; if (Column.Field.AsDateTime < Now) then label10.Visible:=true; end; TDBGrid(Sender).Canvas.FillRect(Rec t); TDBGrid(Sender).Canvas.TextRect(Rec t,Rect.Left+2,Rect.Top+2,Column.Fie ld.Text); |
19.01.2012, 16:20 | #4 |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
я помню что в институте как то делали обновление процедуры, то есть если бы она опять заново сработала то показывала бы правильны текст
|
19.01.2012, 16:28 | #5 |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
даже помню как то так выглядело
form13.DBGrid1DrawColumnCell(refres h); |
19.01.2012, 17:24 | #6 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Код:
Уж не знаю для чего вы так всё это используете, ну да ладно. |
19.01.2012, 17:39 | #7 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
а вообще для обновления следуют юзать Refresh.
|
20.01.2012, 09:16 | #8 | |
Пользователь
Регистрация: 26.12.2009
Сообщений: 95
|
Цитата:
Все очень просто, это раздел в моей клиентской программе с абонентской платой, то есть когда наступит время им платить или отключать им оборудование, чтобы это выводилось в виде текста крупно а в гриде они подсвечивались, клиентов >тысячи , такая вещь полезна)) Спасибо большое за помощь! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++..неполучается задача | MaxStill | Общие вопросы C/C++ | 1 | 11.10.2011 15:38 |
Неполучается разослать почту. | mylifeyd | Помощь студентам | 0 | 03.07.2011 23:31 |
как обновить DBGrid | bmb_66 | БД в Delphi | 0 | 29.11.2010 14:48 |
Обновить данные в DBGRID | sl963 | БД в Delphi | 7 | 04.06.2010 18:06 |