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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2019, 18:49   #1
dol
Пользователь
 
Регистрация: 02.12.2018
Сообщений: 12
Радость delphi Задать кол-во строк StringGrid через MainMenu

Здравствуйте.
Нужно создать матрицу и заполнить случайными числами. Количество столбцов задается через ComboBox, а строк через главное меню.
Подскажите, пожалуйста, как исправить, чтобы вводились строки через главное меню программы, не могу ничего найти по этой теме.
Спасибо.

Сейчас у меня строки и столбцы выбираются через ComboBox вот так
Код:
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,n,m: Integer;
  a:array[0..50, 0..50] of Integer; 

begin

  randomize;
  n:=StrToInt(ComboBox2.Text);
  m:=StrToInt(ComboBox1.Text);
  with StringGrid1 do
  begin
    RowCount:=n+1;
    ColCount:=m+1;
    for i:=0 to n-1 do
    for j:=0 to m-1 do
    begin
      a[i,j]:=-100+Random(201);
      Cells[j+1,i+1]:=inttostr(a[i,j]);
    end;
  end;
Пытался создавать процедуры для каждого пункта меню, в которых указаны количества строк, но что-то не так делаю.
Код:
procedure N11Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N31Click(Sender: TObject);

procedure TForm1.N11Click(Sender: TObject);
begin   
    StringGrid1.RowCount := StrToInt(TMenuItem(Sender).Caption);
end;
procedure TForm1.N21Click(Sender: TObject);
begin
     StringGrid1.RowCount := StrToInt(TMenuItem(Sender).Caption);
end;
procedure TForm1.N31Click(Sender: TObject);
begin
     StringGrid1.RowCount := StrToInt(TMenuItem(Sender).Caption);
end;
На скриншоте то, как выглядит главное меню сейчас
Изображения
Тип файла: jpg 1.jpg (9.4 Кб, 84 просмотров)
dol вне форума Ответить с цитированием
Старый 13.05.2019, 10:33   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,n,m: Integer;
  a:array[0..50, 0..50] of Integer; 

begin

  randomize;
  n:=StrToInt(ComboBox2.Text);
  m:=StrToInt(ComboBox1.Text);
// мы ведь УЖЕ установили размеры как надо и вовсе НЕ через comboBox (по крайней мере один из размеров)
  n:=StringGrid.RowCount;
  m:=StringGrid.ColCount;
...
end;
TMenuItem.OnClick как и было (установка размера через меню)

+ событие TComboBox.OnSelect (установка размера через combobox)
Код:
procedure Tform1.ComboBox2OnSelect(sender: TObject);
begin
  StringGrid.colcount:=strtoint((sender as TcomboBox).Text);
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.05.2019, 14:05   #3
dol
Пользователь
 
Регистрация: 02.12.2018
Сообщений: 12
По умолчанию

Спасибо за ответ!
dol вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Как задать массив строк целиком? Lion-Tiger Помощь студентам 12 06.08.2023 18:05
Сумма всех строк в одном столбце StringGrid (Delphi) Саюри Помощь студентам 1 19.11.2014 21:36
не разобрался в написании программы расчета рисков через StringGrid Delphi Rusik1992 Помощь студентам 2 17.04.2012 19:50
Как задать количество строк Delphi BelialL Помощь студентам 12 12.11.2010 21:46
Delphi: Сортировка строк в StringGrid, критерий - элемент ячейки Andris Помощь студентам 9 09.03.2008 23:04