Консультация # 198499: Здравствуйте! У меня возникли сложности с таким вопросом: Необходимо: 1) Сформировать матрицу, количество строк и столбцов которой случайное число в интервале от 2 до 10, и заполнить её элементами ряда. Это задание я выполнил, но с формулой видимо накосячил. 2) Вывести указанные элементы в строку по правилу: - при щелчке левой кнопкой...
Здравствуйте! У меня возникли сложности с таким вопросом: Необходимо: 1) Сформировать матрицу, количество строк и столбцов которой случайное число в интервале от 2 до 10, и заполнить её элементами ряда. Это задание я выполнил, но с формулой видимо накосячил. 2) Вывести указанные элементы в строку по правилу: - при щелчке левой кнопкой мыши вывести строку по которой щелкнули; - при щелчке правой мыши, вывести столбик на который щелкнули. На данный момент имеют такой код, который
необходим естественно в доработке...
procedure TForm1.ButtonFirstClick(Sender: TObject);
var i,j:integer;
n:real;
begin
Randomize;
StringGridFirst.ColCount:=2+Random(8);
StringGridFirst.RowCount:=2+Random(8);
n:=1;
for i:=0 to StringGridFirst.ColCount -1 do
for j:=0 to StringGridFirst.ColCount -1 do
begin
StringGridFirst.Cells[i,j]:=FloatToStr(exp(n*ln(sqr(2*n))+3)/ sqr(n)+4);
StringGridStr.ColCount:= StringGridFirst.ColCount;
end;
end;
procedure TForm1.ButtonFirstMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TForm1.StringGridFirstClick(Sender: TObject);
begin
end;
procedure TForm1.StringGridFirstMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var nc, nr:integer;
begin
StringGridFirst.MouseToCell(X,Y,nc,nr);
if (nc> StringGridFirst.ColCount-1) or (nr > StringGridFirst.ColCount-1) or
(nc<0) or (nr<0) then
begin
ShowMessage ('Неверное указание ячейки');
exit;
end;
end;
end.
Саму практическую можно посмотреть во вложении. 1 часть задания выполнил, спасибо огромное Зенченко Константину Николаевичу Необходимо выполнить САМОСТОЯТЕЛЬНОЕ ЗАДАНИЕ 2 ЧАСТИ ДЛЯ 1 ВАРИАНТА...
//обработчик кнопки
procedure TForm1.ButtonFirstClick(Sender: TObject);
var
i,j:integer;
n:real;
begin
{случайный размер Грида}
Randomize;
StringGridFirst.ColCount:=2+Random(8);
StringGridFirst.RowCount:=2+Random(8);
{заполняем Грид}
n:=1;
for i:=0 to StringGridFirst.ColCount -1 do
for j:=0 to StringGridFirst.RowCount -1 do
StringGridFirst.Cells[i,j]:=FloatToStr(exp(n*ln( ( 2*sqr(n)+3 )/( sqr(n)+4 ) )));
end;
//обработчик кнопки мыши
procedure TForm1.ButtonFirstMouseDown(Sender: TObject;
Button: TMouseButton;Shift: TShiftState;X, Y: Integer);
begin
{строк в целевом Гриде всегда 1}
StringGridStr.RowCount:=1;
case Button of
mbleft:begin{нажата левая кнопка мыши}
StringGridStr.ColCount:=StringGridFirst.ColCount;{размер строки}
for i:=0 to StringGridStr.ColCount -1 do{копируем в цикле}
StringGridStr.Cells[i,0]:=StringGridFirst.Cells[i,StringGridFirst.Row];
end;
mbRight:begin{нажата правая кнопка мыши}
StringGridStr.ColCount:=StringGridFirst.RowCount;{размер столбца}
for i:=0 to StringGridStr.ColCount -1 do{копируем в цикле}
StringGridStr.Cells[0,i]:=StringGridFirst.Cells[StringGridFirst.Col,i];
else ShowMessage('Error, please select again');
end;
end;
end.
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!