|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.01.2011, 19:18 | #1 |
Регистрация: 15.01.2011
Сообщений: 9
|
Прокомментируйте код
Кто очень давно работает со средой Delphi, если Вас не затруднит, объясните мне как можно подробнее вот этот код (код не полный т.к. что означают некоторые функции я знаю):
Код:
Последний раз редактировалось Stilet; 15.01.2011 в 21:04. |
15.01.2011, 19:57 | #2 |
Форумчанин
Регистрация: 17.09.2010
Сообщений: 229
|
Что объяснить то? прям каждую строку?
Правильно заданный вопрос - половина ответа!
|
15.01.2011, 19:59 | #3 |
Регистрация: 15.01.2011
Сообщений: 9
|
|
16.01.2011, 13:09 | #4 |
Регистрация: 15.01.2011
Сообщений: 9
|
//поднять\\
|
16.01.2011, 13:18 | #5 |
Форумчанин
Регистрация: 24.04.2010
Сообщений: 205
|
Код давай целиком...
|
16.01.2011, 13:22 | #6 |
Регистрация: 15.01.2011
Сообщений: 9
|
Полный код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, Menus, StdCtrls,unit2; type TForm1 = class(TForm) grid: TStringGrid; Label1: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure FormCreate(Sender: TObject); procedure gridKeyPress(Sender: TObject; var Key: Char); procedure GridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; N:byte=5; M:byte=5; MaxRand:integer=2; Colors:array of array of TColor; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var count:integer; begin label1.Caption:=''; Grid.ColCount:=N+1; Grid.RowCount:=M+1; Setlength(colors,N+1,M+1); for count:=1 to M do grid.Cells[0,count]:=inttostr(count); for count:=1 to N do grid.Cells[count,0]:=inttostr(count); for count:=0 to M do Colors[0,count]:=clbtnface; for count:=0 to N do Colors[count,0]:=clbtnface; end; procedure TForm1.gridKeyPress(Sender: TObject; var Key: Char); begin case key of '0'..'9',#8,#13,',': begin end; else key:=chr(0); end;//case end; procedure TForm1.GridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin Grid.Canvas.Brush.Color :=Colors[ACol,Arow]; Grid.Canvas.FillRect (Rect); Grid.Canvas.TextRect (Rect, Rect.Left + 2, Rect.Top + 2, Grid.Cells[ACol,ARow]); end; procedure TForm1.Button1Click(Sender: TObject); var i,j:byte; begin Grid.OnDrawCell:=nil; for i:=1 to N do for j:=1 to M do begin grid.Cells[i,j]:=inttostr(random(2*MaxRand));//-MaxRand); end; end; procedure TForm1.Button2Click(Sender: TObject); var i,j:byte; Matrix:array of array of integer; k:integer; begin Grid.OnDrawCell:=GridDrawCell; k:=0; setlength(Matrix,N,M); setlength(Colors,N+1,M+1); for i:=1 to Grid.ColCount-1 do for j:=1 to Grid.RowCount-1 do Colors[i,j]:=clwindow; for i:=1 to N do for j:=1 to M do if (Grid.cells[i,j]='') then Matrix[i-1,j-1]:=0 else Matrix[i-1,j-1]:=strtoint(Grid.cells[i,j]); for i:=1 to N-2 do for j:=0 to M-1 do if (Matrix[i-1,j]<Matrix[i,j]) and (Matrix[i+1,j]>Matrix[i,j]) then begin inc(k); Colors[i+1,j+1]:=clRed; end; label1.Caption:='k='+inttostr(k); Grid.Invalidate; end; procedure TForm1.Button3Click(Sender: TObject); var i,j:byte; begin Grid.OnDrawCell:=nil; for i:=1 to N do for j:=1 to M do begin grid.Cells[i,j]:=''; end; end; procedure TForm1.Button4Click(Sender: TObject); begin unit2.Form2.Show; end; procedure TForm1.Button5Click(Sender: TObject); begin close; end; end. |
16.01.2011, 13:44 | #7 |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
Не, ну я понимаю если бы вы просили составить алгоритм к какой-то задаче, код программы или попросили бы написать алгоритм данной программы, но просить прокоментировать операторы готовой программы...
Вы что не в состоянии открыть любой самоучитель, справочник или наконец google и найти там что означают написанные в проге операторы и функции? и подписать их в коде? или вам просто лень это делать? Терпеть не могу таких тем, как и тем -"крутым программёрам эта задача влёт" - "обещал помочь девушке" - "интересная задача"
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
16.01.2011, 13:44 | #8 |
Форумчанин
Регистрация: 24.04.2010
Сообщений: 205
|
Код:
MaxRand:integer=2; // константа типа интежер Colors:array of array of TColor;//двойной динамический массив implementation//раздел ограниченного доступа (только из этого модуля) var count:integer;// объявление переменной Setlength(colors,N+1,M+1);// зарезервирована память для двухмерного массива for count:=1 to M do //цикл с парраметром grid.Cells[0,count]:=inttostr(count);//ввод в ячейку компонента (по видимому типа TGrid) строкового значения for count:=1 to N do//цикл с парраметром grid.Cells[count,0]:=inttostr(count);//ввод в ячейку компонента (по видимому типа TGrid) строкового значения for count:=0 to M do //цикл с парраметром Colors[0,count]:=clbtnface;//ввод в ячейку матрицы типа TColor (объявленной выше)какого-то значения for count:=0 to N do//цикл с парраметром Colors[count,0]:=clbtnface;//ввод в ячейку матрицы типа TColor (объявленной выше)какого-то значения procedure TForm1.gridKeyPress(Sender: TObject; var Key: Char);//функция нажатия на клавишу case key of// оператор выбора '0'..'9',#8,#13,',': begin end;//цифровые клавиши и клавиши управления курсором else key:=chr(0);//устанавливаем 0 end; Grid.OnDrawCell:=nil;//очищаем ячейку grid.Cells[i,j]:=inttostr(random(2*MaxRand));//вводим в ячейку какую-то строку Grid.OnDrawCell:=nil;//очищаем ячейку Grid.OnDrawCell:=GridDrawCell;//вводим в ячейку какое-то значение Matrix:array of array of integer;//объявляем двухмерный динамический массив setlength(Matrix,N,M);//задаем его размер setlength(Colors,N+1,M+1);//изменяем размер двухмерного массива типа TColor for i:=1 to Grid.ColCount-1 do//цикл с парраметром for j:=1 to Grid.RowCount-1 do//цикл с парраметром Colors[i,j]:=clwindow;//объявляем ячейкам двухмерного массива типа TColor цвет clwindow if (Grid.cells[i,j]='') then Matrix[i-1,j-1]:=0 else Matrix[i-1,j-1]:=strtoint(Grid.cells[i,j]);// если ячейка Грид равна пустой строке, то соответствующее значение массива интежер=0, иначе значение массива равно преобразованному в интежер значению ячейки Грид Grid.Invalidate; Grid.Canvas.Brush.Color :=Colors[ACol,Arow]; Grid.Canvas.FillRect (Rect); Grid.Canvas.TextRect (Rect, Rect.Left + 2, Rect.Top + 2, Grid.Cells[ACol,ARow]); Последний раз редактировалось baster128; 16.01.2011 в 13:59. |
16.01.2011, 14:52 | #9 | |
Регистрация: 15.01.2011
Сообщений: 9
|
Цитата:
Цитирую: "Рекомендации: Иногда заглядывайте в правила, они могут изменяться. Не публикуйте сообщения "читайте книгу", указывайте в какой книге, а лучше с ссылкой. Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ." |
|
16.01.2011, 14:52 | #10 | |
Регистрация: 15.01.2011
Сообщений: 9
|
Цитата:
Цитирую: "Рекомендации: Иногда заглядывайте в правила, они могут изменяться. Не публикуйте сообщения "читайте книгу", указывайте в какой книге, а лучше с ссылкой. Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ." |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Код написал код, но ответ постоянно один и тот же | SkuLLL | Помощь студентам | 4 | 14.12.2010 19:25 |
код С++ | bpystep | Помощь студентам | 4 | 19.09.2010 20:32 |
Прокомментируйте и объясните код | Serjuk | Помощь студентам | 1 | 18.05.2010 17:56 |
Прокомментируйте пож работу программы? | EugeneDanceR | Microsoft Office Word | 4 | 12.05.2010 22:41 |
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? | Mclaren | Помощь студентам | 2 | 27.04.2009 22:37 |