IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> и опять TStringGrid
marwell
сообщение 7.04.2011 14:40
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

Репутация: -  1  +


Доброго времени суток
Само задание звучит так: Дана таблица целых чисел ai, bi. Выделить цветом все совпадающие пары и максимальную из них, указать позиции.
Нашел в инете как выделять цветом только отдельные ячейки, но не уверен что правильно ее применяю. Еще выдает ошибку "Project Projectl.exe raised exception class EConvertError with message'" Is not a valid integer value1. Process stopped. Use Step or Run to continue." Смысл ошибки понимаю, но не вижу в каком месте она появляется, вроде везде правильно работаю с ячейками

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
SG: TStringGrid;
Edit1: TEdit;
procedure FormPaint(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure SGDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var i:integer;
begin
with SG do begin
cells[0,0]:='N';
cells[0,1]:='ai';
cells[0,2]:='bi';
for i:=1 to ColCount do
cells[i,0]:=IntToStr(i);
end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var i:integer;
begin
SG.ColCount := StrToInt((Sender as TEdit).Text);
for i:=1 to SG.ColCount do
SG.cells[i,0]:=IntToStr(i);
end;

procedure TForm1.SGDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var i,j,max:integer;
begin
max:=0;
j:=0;
for i:=1 to sg.ColCount-1 do begin
if StrToInt(sg.Cells[i,j+1])=StrToInt(sg.Cells[i,j+2]) then sg.Canvas.Brush.Color:=clRed;
if StrToInt(sg.Cells[i,j])>max then
begin max:=StrToInt(sg.Cells[i,j]);
sg.Canvas.Brush.Color:=clBlue;
end;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2, Rect.Top+2, sg.Cells[i, j]);
sg.Canvas.Brush.Color:=clBlack;
end;
end;

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 7.04.2011 17:29
Сообщение #2


Гость






Цитата
вот здесь с границей массива ошибся:
Где именно? Вообще-то границы грида определяются значениями (0 .. RowCount) по вертикали и (0 .. ColCount) по горизонтали, так что никакой ошибки не будет - все в пределах допустимого.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
marwell   и опять TStringGrid   7.04.2011 14:40
мисс_граффити   вот здесь с границей массива ошибся: но это к де...   7.04.2011 17:14
marwell   а вот то, что заполняешь ты там только первую (ну...   7.04.2011 17:38
volvo   Где именно? Вообще-то границы грида определяются з...   7.04.2011 17:29
мисс_граффити   Где именно? Вообще-то границы грида определяются ...   11.04.2011 14:30
volvo   Нет... Смотри. Событие OnDrawCell происходит при ...   7.04.2011 18:23
marwell   кажется, я начал понимать ... if f=false then begi...   7.04.2011 18:26
marwell   добавил unit Unit1; interface uses Windows, ...   8.04.2011 12:56
volvo   Я имел в виду другое. unit Unit1; interface us...   8.04.2011 15:38
marwell   Я имел в виду другое. [hide="Смотри:"]...   8.04.2011 19:10
volvo   var value : Integer; // ... if TryStrToInt(Cel...   8.04.2011 19:35
marwell   var value : Integer; // ... if TryStrToInt(Ce...   8.04.2011 19:46
marwell   с TryStrToInt у меня проблема,никак не получается ...   10.04.2011 18:44
volvo   Это уж тебе решать, может оно и проще, а может и н...   11.04.2011 13:00
marwell   Это уж тебе решать, может оно и проще, а может и ...   11.04.2011 19:01
volvo   Я в твоем коде вижу несколько недочетов: Ветка els...   11.04.2011 20:09
marwell   ээ, черт, что-то я совсем того ... вот даже сейча...   11.04.2011 20:37
volvo   Надо просто лучше форматировать код. Считать end-ы...   11.04.2011 22:16
marwell   volvo ,спасибо за помощь   12.04.2011 15:49


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 15:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"