Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

проверка значения в ячейке 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
14-42138
Igorek
2003-10-21 13:28
2003.11.13
Покритикуйте пожалуйста мой второй сайт


3-40803
k_len
2003-10-22 09:49
2003.11.13
DBGrid


14-42097
ZeroDivide
2003-10-23 10:33
2003.11.13
Кто знает, чем закончилась


1-41583
AndDem
2003-10-27 12:45
2003.11.13
---|Ветка была без названия|---


3-40838
Александр из Минска
2003-10-20 15:53
2003.11.13
Хотелось бы научиться





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский