Главная страница
    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.47 MB
Время: 0.032 c
3-41099
dimablind
2003-10-23 00:05
2003.11.13
Сортировка в TQuery


9-40778
Никита
2003-05-08 18:49
2003.11.13
Помогите решить маленькую задачку !!!


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


1-41335
Ganjo
2003-10-30 18:27
2003.11.13
Компонет Edit: Как запретить ввод буквенных символов


1-41449
gestern
2003-10-29 12:15
2003.11.13
db





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский