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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> и опять TStringGrid
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

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

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


Цитата
Ветка else, где выводится MessageDlg, относится к самому первому If-у, так?

ээ, черт, что-то я совсем того ...
вот даже сейчас смотрю, и мне кажется что эта ветка относится сюда blink.gif
...
if TryStrToInt(Cells[i, 1], IntValue) then
...

видать надо выспаться
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 7.09.2025 19:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name