Форум: "Начинающим";
Текущий архив: 2017.12.24;
Скачать: [xml.tar.bz2];
ВнизКак сделать sql запрос к нескольким таблицам (ADO,MS Access)? Найти похожие ветки
← →
gedevan (2016-01-28 13:02) [40]я понял он вылетает в Column.Field.Text этом месте когда Column.FieldName = "FourSearch", Т.е. туда должно было быть помещено значение помноженное на -1 или свичем полученное
← →
gedevan (2016-01-28 13:05) [41]т.к. Column.Field = nil тогда (
← →
sniknik © (2016-01-28 13:06) [42]> ошибка аксес виолейшн.
пятая дельфя и adoquery используешь?
http://www.delphisources.ru/pages/faq/base/ado_acc_viol_err.html
← →
sniknik © (2016-01-28 13:10) [43]> т.к. Column.Field = nil тогда (
как у булена с дефзначением вдруг значение nil???
+
AsBoolean должно преобразовывать в фалсе.
← →
gedevan (2016-01-28 13:28) [44]Делфи xe5 AdoDataSet использую.
В общем я сделал перерисовывание в ДБГриде. Но есть одна беда. Переодически после очередного запроса DBGrid начинает непрерывно и без остановки вызывать функцию (запрос при этом не вызывается вновь, т.е. оно "само")procedure TTv.TVTableLogDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: integer; Column: TColumn; State: TGridDrawState);
var
t: string;
begin
if ADODataSet1.FieldByName("tempfound").Value = true then
Font.Color := clGreen
else if ADODataSet1.FieldByName("tempfound").Value = false then
Font.Color := clred;
if (Column.FieldName = "Expr1000") or (Column.FieldName = "Name") or
(Column.FieldName = "ItemName") then
begin
with TVTableLog.Canvas do
begin
Brush.Color := clwhite;
if Column.Field <> nil then
begin
FillRect(Rect);
TextOut(Rect.Left + 2, Rect.Top + 2, Column.Field.Text);
end;
end;
end
else
begin
with TVTableLog.Canvas do
begin
Brush.Color := clwhite;
if Column.Field <> nil then
begin
t := Column.Field.Text;
if (Column.FieldName = "FourSearch") or
(Column.FieldName = "SearchFixed") or
(Column.FieldName = "anotherTime") then
begin
if t = "-1" then
t := "True"
else if t = "0" then
t := "False";
end;
FillRect(Rect);
TextOut(Rect.Right - 2 - TextWidth(t), Rect.Top + 2, t);
end;
end;
end;
end;
из за этого все мигает и криво перерисовывается. В принципе если вот это решить то тогда с остальным можно не мучиться.
← →
gedevan (2016-01-28 13:43) [45]глюк случается если в одной колонке в разных ячейках выполняются оба этих условия(т.е. есть и tempfound = true и tempfound = false в колонке):
if ADODataSet1.FieldByName("tempfound").Value = true then
Font.Color := clGreen;
//else if ADODataSet1.FieldByName("tempfound").Value = false then
// Font.Color := clred;
и вот если например, второе закомментировать, то глюка нет. А как тогда раскрасить в разные цвета? (
← →
gedevan (2016-01-29 08:46) [46]разобрался TVTableLog.Canvas.Font.Color := clGreen; нужно писать
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.12.24;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.003 c