Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2016, 01:34   #31
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Заснула что ли?
ura_111 вне форума Ответить с цитированием
Старый 27.10.2016, 01:39   #32
Moraine93
Пользователь
 
Регистрация: 23.10.2016
Сообщений: 57
По умолчанию

Да меняется
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    PopupMenu1: TPopupMenu;
    Stolbec1: TMenuItem;
    N71: TMenuItem;
    N81: TMenuItem;
    N91: TMenuItem;
    N101: TMenuItem;
    Stroka1: TMenuItem;
    N72: TMenuItem;
    N82: TMenuItem;
    N92: TMenuItem;
    N102: TMenuItem;
    Reresech11: TMenuItem;
    StringGrid1: TStringGrid;
    procedure draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
      State: TGridDrawState);
    procedure menu_stolbec_8(Sender: TObject);
    procedure menu_stolbec_9(Sender: TObject);
    procedure menu_stolbec_7(Sender: TObject);
    procedure menu_stolbec_10(Sender: TObject);
    procedure menu_stroka_7(Sender: TObject);
    procedure menu_stroka_8(Sender: TObject);
    procedure menu_stroka_9(Sender: TObject);
    procedure menu_stroka_10(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
//var
//A:array [0..n],[0..m] of integer;
//i,j:integer;
//begin
//for i := 0 to n do
//for j := 0 to m do
//A[i,j]:=Random(200);
//if(A>100) {A=(-1)*(A-100);}
 //A:=Random(201)-100;
//end;
implementation

{$R *.dfm}
  procedure TForm1.menu_stolbec_7(Sender: TObject);

var
   x, y : integer;
begin
   // Задаем число столбцов и строк таблицы
   StringGrid1.ColCount := 8;
 //  StringGrid1.RowCount := 7;

   // Задаем шируну и высоту ячеек
   StringGrid1.DefaultColWidth := 30;
   StringGrid1.DefaultRowHeight:= 30;

   // раставляем цифры от 1 до 9 в
   // горизонтальной области заголовка
  // for x := 1 to StringGrid1.ColCount - 1  do
  //  StringGrid1.Cells[x, 0] := IntToStr(x);

   // растравляем цифры от 1 до 9 в
   // вертикальной области заголовка
   //for y := 1 to StringGrid1.ColCount - 1  do
   // StringGrid1.Cells[0, y] := IntToStr(y);

  // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);
end;

procedure TForm1.menu_stolbec_8(Sender: TObject);
  var
   x, y : integer;
begin

   // Задаем число столбцов и строк таблицы
   StringGrid1.ColCount := 9;
 //  StringGrid1.RowCount := 7;

   // Задаем шируну и высоту ячеек
   StringGrid1.DefaultColWidth := 30;
   StringGrid1.DefaultRowHeight:= 30;

   // раставляем цифры от 1 до 9 в
   // горизонтальной области заголовка
  // for x := 1 to StringGrid1.ColCount - 1  do
  //  StringGrid1.Cells[x, 0] := IntToStr(x);

   // растравляем цифры от 1 до 9 в
   // вертикальной области заголовка
   //for y := 1 to StringGrid1.ColCount - 1  do
   // StringGrid1.Cells[0, y] := IntToStr(y);
    // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);


end;

   // Задаем число столбцов и строк таблицы
  procedure TForm1.menu_stolbec_9(Sender: TObject);
    var
   x, y : integer;
begin
     // Задаем число столбцов  таблицы
   StringGrid1.ColCount := 10;
    // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);

end;
procedure TForm1.menu_stolbec_10(Sender: TObject);
   var
   x, y : integer;
begin
     // Задаем число столбцов  таблицы
   StringGrid1.ColCount := 11;
 // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);
end;

procedure TForm1.menu_stroka_7(Sender: TObject);
  var
   x, y : integer;
begin

   // Задаем число столбцов и строк таблицы
   //StringGrid1.ColCount := 9;
    StringGrid1.RowCount := 8;
      // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);
 end;
 
procedure TForm1.menu_stroka_8(Sender: TObject);
 var
   x, y : integer;
begin

   // Задаем число столбцов и строк таблицы
   //StringGrid1.ColCount := 9;
    StringGrid1.RowCount := 9;
      // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);
end;

procedure TForm1.menu_stroka_9(Sender: TObject);
   var
   x, y : integer;
begin
   // Задаем число строк таблицы
    StringGrid1.RowCount := 10;
       // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);
end;

procedure TForm1.menu_stroka_10(Sender: TObject);
     var
   x, y : integer;
begin
   // Задаем число строк таблицы
    StringGrid1.RowCount := 10;
  // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);

end;
  procedure TForm1.draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
  State: TGridDrawState);
begin
if ARow mod 2=0 then
   StringGrid1.Canvas.Brush.Color := cllime
   else  StringGrid1.Canvas.Brush.Color := clRed;
 StringGrid1.Canvas.FillRect( Rect );
 StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
end;
end.
Moraine93 вне форума Ответить с цитированием
Старый 27.10.2016, 01:44   #33
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вроде нормально...

Так, скажи мне: "Ты проверяла меню? Размер массива-отображения меняется?"
ura_111 вне форума Ответить с цитированием
Старый 27.10.2016, 01:48   #34
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Отлично, что меняется размер...

А теперь скажи: ты же понимаешь, что размер отображения матрицы не должен меняться при работе с меню, а должен поменяться когда....
Когда? ПОСМОТРИ В ЗАДАНИИ.

P.S.: может тебе по чаще страницу браузера обновлять.

Последний раз редактировалось ura_111; 27.10.2016 в 01:54.
ura_111 вне форума Ответить с цитированием
Старый 27.10.2016, 10:54   #35
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Вот эти места:
".... размеры задаются В МЕНЮ...
...Занесение исходных значений в матрицу производится ПО ДВОЙНОМУ ЩЕЛЧКУ МЫШИ....
....создать программный проект отображения средствами компонента StringGrid матрицы ЗАДАННОГО РАЗМЕРА...."

Ты понимаешь что надо делать дальше? (на матрицу А[][] пока не обращай внимание - она будет создана потом).

Итак, твои задания (наконец то, полноценные задания) :

1) Создай обработчик события "двойной щелчок мыши по StringGrid". (в видеоролике это информация есть); и пропиши код рисование матрицы, НО кол-во столбцов/ строк должно равняться m/n, т.е:
Код:
.....
begin
   // Задаем число столбцов и строк таблицы
   StringGrid1.ColCount := m;
   StringGrid1.RowCount := n;
......
Что такое m, n? (я имею ввиду, где их объявить?) Читай следующий пункт ниже.

2) Найди информацию по "глобальной переменной". Как её задавать? Где прописать?

Небольшие пояснения.
Когда ты описываешь переменные, например здесь:
Код:
procedure TForm1.menu_stolbec_8(Sender: TObject);
  var
   i, j : integer;
begin...
то "поле видимости" таких переменных ("i,j") только в пределах одной процедуры... А по твоему задаю необходимо: изменять n, m в одних процедурах (menu_...), а использовать для построения таблицы в другой - обработчике 2-го клика.

Ты меня понимаешь?

а) объявляешь 2-е глобальные переменные: n, m.
б) В обработчике менюшек меняешь код (в соответствии с тем, что выбрал пользователь). Например:

Код:
procedure TForm1.menu_stroka_10(Sender: TObject);
begin
  m=10;
end;
или

Код:
 procedure TForm1.menu_stolbec_7(Sender: TObject);
begin
  n=7;
end;
а в обработчике двойного клика по StringGrid - строишь таблицу по уже определенным значениям "m, n".
___________________________________ _____________________________

p.s.1: В интернете (или скачай книгу по Delhfi) найди пример как объявляется глобальная переменная (переменная с полем видимости всех процедур и обработчиков программы). Это должно быть просто; можно сказать, что взглянув "одним глазком" на программу на эту тему - ты всё сразу поймешь...

p.s.2: Ну поправь свой код (см. выше, после моих слов "Ты меня понимаешь?").

p.s.3: Присылай мне в дальнейшем только исполнительные модули (для контроля наполняемости программы):

10.jpg

Они у меня нормально открываются. Перед отправкой убедись, что всё корректно работает.

p.s.4: Раскраску пока не трогай - потом будем думать что с ней делать ( вопрос: ты же понимаешь, что тебе надо по другому раскрашивать StringGrid?)

Последний раз редактировалось ura_111; 27.10.2016 в 11:47.
ura_111 вне форума Ответить с цитированием
Старый 29.10.2016, 17:10   #36
Moraine93
Пользователь
 
Регистрация: 23.10.2016
Сообщений: 57
По умолчанию

глобальную переменную объявила
насчет раскраски я знаю, что подругому нужно
после вот этого
Код:
procedure TForm1.menu_stroka_10(Sender: TObject);
begin
  m=10;
end;
меню перестало работать
вот код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Menus;
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    PopupMenu1: TPopupMenu;
    Stolbec1: TMenuItem;
    N71: TMenuItem;
    N81: TMenuItem;
    N91: TMenuItem;
    N101: TMenuItem;
    Stroka1: TMenuItem;
    N72: TMenuItem;
    N82: TMenuItem;
    N92: TMenuItem;
    N102: TMenuItem;
    Reresech11: TMenuItem;
    StringGrid1: TStringGrid;
    procedure draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
      State: TGridDrawState);
    procedure menu_stolbec_8(Sender: TObject);
    procedure menu_stolbec_9(Sender: TObject);
    procedure menu_stolbec_7(Sender: TObject);
    procedure menu_stolbec_10(Sender: TObject);
    procedure menu_stroka_7(Sender: TObject);
    procedure menu_stroka_8(Sender: TObject);
    procedure menu_stroka_9(Sender: TObject);
    procedure menu_stroka_10(Sender: TObject);
    procedure dblclick(Sender: TObject);

  //  procedure dblclik(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
   m,n:integer;

implementation

{$R *.dfm}
  procedure TForm1.menu_stolbec_7(Sender: TObject);

begin
n:=7;
   // Çàäàåì ÷èñëî ñòîëáöîâ òàáëèöû
   //StringGrid1.ColCount := 7;
end;
procedure TForm1.menu_stolbec_8(Sender: TObject);

begin
n:=8;
   // Çàäàåì ÷èñëî ñòîëáöîâ òàáëèöû
  // StringGrid1.ColCount := 8;
end;
   // Çàäàåì ÷èñëî ñòîëáöîâ òàáëèöû
  procedure TForm1.menu_stolbec_9(Sender: TObject);

begin
    n:=9;
     // Çàäàåì ÷èñëî ñòîëáöîâ  òàáëèöû
  // StringGrid1.ColCount := 9;
end;
procedure TForm1.menu_stolbec_10(Sender: TObject);

begin
   n:=10;
     // Çàäàåì ÷èñëî ñòîëáöîâ  òàáëèöû
   //StringGrid1.ColCount := 10;
end;
procedure TForm1.menu_stroka_7(Sender: TObject);

begin
m:=7;
   // Çàäàåì ÷èñëî ñòðîê òàáëèöû
   // StringGrid1.RowCount := 7;
 end;
procedure TForm1.menu_stroka_8(Sender: TObject);

begin
   m:=8;
   // Çàäàåì ÷èñëî ñòðîê òàáëèöû
   // StringGrid1.RowCount := 8;
end;
procedure TForm1.menu_stroka_9(Sender: TObject);

begin
m:=9;
   // Çàäàåì ÷èñëî ñòðîê òàáëèöû
   // StringGrid1.RowCount := 9;
end;
procedure TForm1.menu_stroka_10(Sender: TObject);

begin
   m:=10;
   // Çàäàåì ÷èñëî ñòðîê òàáëèöû
    //StringGrid1.RowCount := 10;
end;
  procedure TForm1.draw(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
  State: TGridDrawState);
begin
if ARow mod 2=0 then
   StringGrid1.Canvas.Brush.Color := cllime
   else  StringGrid1.Canvas.Brush.Color := clRed;
 StringGrid1.Canvas.FillRect( Rect );
 StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
end;

 procedure TForm1.dblclick(Sender: TObject);

 begin
 // Çàäàåì ÷èñëî ñòîëáöîâ è ñòðîê òàáëèöû
   StringGrid1.ColCount := m;
   StringGrid1.RowCount := n;
end;

end.
Moraine93 вне форума Ответить с цитированием
Старый 29.10.2016, 18:02   #37
Moraine93
Пользователь
 
Регистрация: 23.10.2016
Сообщений: 57
По умолчанию

можно сделать с
RowCount ColCount
а не n,m=
Moraine93 вне форума Ответить с цитированием
Старый 29.10.2016, 18:04   #38
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Moraine93, а где рисование таблицы?

Это только часто кода:

Код:
procedure TForm1.dblclick(Sender: TObject);
 begin
   StringGrid1.ColCount := m;
   StringGrid1.RowCount := n;
end;
А вот продолжение (оно стандартное - 20 раз уже себе писала):

Код:
   // Задаем шируну и высоту ячеек
   StringGrid1.DefaultColWidth := 30;
   StringGrid1.DefaultRowHeight:= 30;

  // выводим результаты умножения в ячейки таблицы
   for x := 1 to StringGrid1.ColCount - 1  do
    for y := 1 to StringGrid1.RowCount - 1 do
    StringGrid1.Cells[x, y] := IntToStr(Random(201)-100);

p.s.: надо будет тебя по программе погонять (на знание частей программы).

Последний раз редактировалось ura_111; 29.10.2016 в 18:12.
ura_111 вне форума Ответить с цитированием
Старый 29.10.2016, 18:14   #39
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я же писал:

Код:
.....
begin
   // Задаем число столбцов и строк таблицы
   StringGrid1.ColCount := m;
   StringGrid1.RowCount := n;
......

Точки (......) означают продолжение кода оставить.


Кстате, а что это такое:

// Çàäàåì ÷èñëî ñòîëáöîâ è ñòðîê òàáëèöû

?

Последний раз редактировалось ura_111; 29.10.2016 в 18:21.
ura_111 вне форума Ответить с цитированием
Старый 29.10.2016, 19:42   #40
Moraine93
Пользователь
 
Регистрация: 23.10.2016
Сообщений: 57
По умолчанию

это текст русский
Moraine93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование блок схема. пожалуйста, нарисуйте блок схему. очень срочно нужно! Bogdan96 Помощь студентам 4 22.09.2015 09:33
Pascal ABC(нарисуйте пожалуйста блок-схему, очень нужно) Deril Паскаль, Turbo Pascal, PascalABC.NET 2 05.01.2015 10:18
помогите пожалуйста написать решение задачи и блок схему к ней очень нужно( Alexandr1806 Помощь студентам 1 16.06.2014 22:31
помогите пожалуйста очень нужно решение задачки Satenka Microsoft Office Excel 4 28.05.2014 21:57
Нарисуйте пожалуйста блок-схему лёгкой задачки, не знаю как,очень нужно... prikolist Паскаль, Turbo Pascal, PascalABC.NET 2 28.11.2008 15:27