Главная страница
    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.032 c
6-41787
Strayker
2003-09-18 23:40
2003.11.13
Как выключить все компьютеры в сети?


14-42107
Delirium^.Tremens
2003-10-22 09:27
2003.11.13
Ищу работу!


8-41738
miguel1
2003-07-15 16:54
2003.11.13
Проблема с записью WAV файла через MediaPlayer


3-40922
Olivka
2003-10-19 14:42
2003.11.13
FIBplus - не находит новое поле


3-40873
Max654
2003-10-25 17:12
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский