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

Вниз

проверка значения в ячейке StringGrida   Найти похожие ветки 

 
denis24   (2003-10-29 17:10) [0]

Проверяю значение в сабже
try

if StrToFloat(StringGrid1.Cells [acol,arow])< 0 then
begin
With TStringGrid(Sender),TStringGrid(Sender).Canvas Do
.
.
.
end;
except
exit;
end;

Вылазит ощибка при strtofloat (это понятно там string),но вот почему не перескакивает на следующую ячейку и не рисует в ней?
Зациклилось на этой?


 
BOA_KAA ©   (2003-10-29 17:14) [1]

Что не перескакивает? Что не рисует? Что зациклилось?


 
denis24   (2003-10-29 17:20) [2]

procedure Tmainform.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);


 
Eugene1501 ©   (2003-10-29 17:22) [3]

Полностью текст процедуры приведи.


 
BOA_KAA ©   (2003-10-29 17:23) [4]

вопрос.абсолютно.непонятен.

Что нужно получить?


 
denis24   (2003-10-29 17:27) [5]

procedure Tmainform.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
try
if (arow<>0) and (acol<>0) then
begin
if StrToFloat(StringGrid1.Cells [acol,arow])< 0 then
begin
With TStringGrid(Sender),TStringGrid(Sender).Canvas Do
Begin
FillRect(Rect);
Brush.Color:=ClYellow; //


 
denis24   (2003-10-29 17:29) [6]

хочу что бы рисовало отрицат число другим цветом


 
denis24   (2003-10-29 17:48) [7]

никто не знает?


 
Kudesnik   (2003-10-29 18:15) [8]

Как я понимаю, не рисует в следующей ячейке, потому что ей первую никак не дорисовать. Она начинает, получет ошибку вылетает. Понимает, что ячейка так и не нарисовалась, пытается снова, и т. д. Не очень понял что именно понятно о вылезании ошибки. На самом деле она вылезает когда таблица рисуется первый раз и ячейки ещё пустые. StrToFloat получает на входе пустую строку, а ей это страшно не нравится (нет чтобы просто в 0 отконвертить...) Если убрать эту ошибку, то всё работает. Вот текст рабочей процедуры:

procedure Tmainform.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
fTemp: real;
begin
try
if (ARow<>0) and (ACol<>0) then
begin
if StringGrid1.Cells [ACol,ARow] <> "" then
fTemp := StrToFloat(StringGrid1.Cells [ACol,ARow])
else
fTemp := 0;
if fTemp < 0 then
begin
with TStringGrid(Sender),TStringGrid(Sender).Canvas Do
begin
FillRect(Rect);
Brush.Color:=ClYellow;
Font.Color:=ClBlue;
Font.Style:=[fsBold];
Font.Size:=14;
TextOut(Rect.Left+2,Rect.Top+2,Cells[ACol,ARow]);
end;
end;
end;
except
exit;
end;
end;


 
BOA_KAA ©   (2003-10-29 18:24) [9]

Чтобы не вылетало для OnCreate формы сделать StringGrid1.OnDrawCell:=nil;

Затем вернуть (где надо) StringGrid1.OnDrawCell:=StringGrid1DrawCell;

Все остальное - FAQ"овый вопрос (см.
> Kudesnik (29.10.03 18:15) [8]
)
Только вот путаница: сначала Brush установить, потом FillRect


 
Anatoly Podgoretsky ©   (2003-10-29 21:22) [10]

Ошибка вылетать не может она подавлена блоком

try
except
end;


может только в ИДЕ при неверной настройки. Зацикливание на 1,1 тоже только при просмотре в ИДЕ, поскольку придется перерисовываться после каждого просмотра.

Запускался ли проект вне среды и была ли ошибка, если была то какая.


 
denis24   (2003-10-30 11:43) [11]

точно .только в иде.
Спасибо Anatoly Podgoretsky


 
ZEE ©   (2003-10-30 11:58) [12]

так чтоб в ИДЕ работало надо читать Kudesnik (29.10.03 18:15) [8]
if StringGrid1.Cells [ACol,ARow] <> "" then...



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

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

Наверх




Память: 0.49 MB
Время: 0.039 c
1-41359
kiril-
2003-10-30 17:15
2003.11.13
Как сохранить документ с помощью TWordDocument


14-41881
Chuha
2003-10-21 21:35
2003.11.13
Вопрос :)


1-41159
vvvaaa
2003-11-03 08:59
2003.11.13
Как изменить ScrollBar?


4-42278
bfg1000ke
2003-09-18 13:09
2003.11.13
Создание кнопки с картинкой.


1-41212
ah
2003-11-04 18:36
2003.11.13
можно ли каким нить образом восстановить исходник проги