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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2018, 23:07   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от kostya_hor Посмотреть сообщение
а как сделать чтобы одна StringGrid была заполненной,а другая менялась при нажатии одной из кнопок?
так очевидно же - заполнить первый грид сразу при запуске программы.
а по кнопке менять только второй грид.
Массив A лучше сделать глобальным объектом (опишите его либо в свойствах вашей формы, либо в переменных (там где var Form4 : TForm4; )

Попробуйте, всё получится.
Если нет - пишите, подскажу.


что не получается
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.05.2018, 23:24   #12
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

я поставил ваш код на кнопку "Перестановка а" где должна быть перестановка столбцов,а оно работает так как показано на фотке
Изображения
Тип файла: png Безымянный.png (18.3 Кб, 121 просмотров)
kostya_hor вне форума Ответить с цитированием
Старый 24.05.2018, 23:43   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от kostya_hor Посмотреть сообщение
я поставил ваш код на кнопку "Перестановка а" где должна быть перестановка столбцов,а оно работает так как показано на фотке
Вы явно
1) не убрали с кнопки код заполнения матрицы a
2) не вынесли матрицу a в глобальные переменные.

покажите код модуля ЦЕЛИКОМ
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.05.2018, 23:45   #14
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Код:
unit Unit4;

interface

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

type
  TForm4 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);


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

var
  Form4: TForm4;

implementation

uses Unit5, Unit6;

{$R *.dfm}

Procedure TForm4.Button1Click(Sender: TObject);
const
     n=6;
     m=9;
var
  i,j:byte;
  x:integer;
  a:array[1..n,1..m] of integer;

begin

  for i:=1 to n do
    for j:=1 to m do
      begin
        a[i,j]:=random(20);
        StringGrid1.Cells[j,i] := IntToStr( a[i,j] );
      end;


   for j:=1 to m div 2 do
      for i:=1 to n do
       begin
         x:=a[i,j];
         a[i,j]:=a[i,m-j+1];
         a[i,m-j+1]:=x
       end;


  for i:=1 to m do
    for j:=1 to n do
       StringGrid2.Cells[j,i] := IntToStr( a[i,j] );

end;







  

procedure TForm4.Button2Click(Sender: TObject);
var
i:integer;
begin
with StringGrid1 do

  for i:=0 to ColCount-1 do
    Cols[i].Clear;
end;

procedure TForm4.Button4Click(Sender: TObject);

const n=6;
      m=9;
var a:array[1..n,1..m]of integer;
    i,j,s:integer;
begin
randomize;

for i:=1 to n do
  begin
    for j:=1 to m do
      begin
       a[i,j]:=random(20);
        StringGrid1.Cells[j,i] := IntToStr( a[i,j] );
      end;

  end;
for i:=1 to n div 2 do
for j:=1 to m do
   begin
     s:=a[i,j];
     a[i,j]:=a[n-i+1,j];
     a[n-i+1,j]:=s;
   end;

for i:=1 to n do
    for j:=1 to m do
     StringGrid2.Cells[j,i] := IntToStr( a[i,j] );
end;

procedure TForm4.Button3Click(Sender: TObject);
begin
close
end;

end.
kostya_hor вне форума Ответить с цитированием
Старый 24.05.2018, 23:51   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Сделайте двойнок клик по любому свободному месте в форме, появится процедура обработки события создания формы (это событие формы onCreate() )
напишите там вызов Randomize:
Код:
procedure TForm4.FormCreate(Sender: TObject);
var i, j : integer;
begin
  Randomize;
end;
и опять выложите сюда на форум получившийся код модуля (целиком)!

p.s. кнопки лучше переименовать
кнопку Button2 переименуйте, например, в buttonClear
кнопки Button1 и Button2 переиенуйта так, чтобы было понятно, какая из них отвечает за "Перестановка а)", а какая за "Перестановка б)"

Последний раз редактировалось Serge_Bliznykov; 24.05.2018 в 23:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.05.2018, 23:52   #16
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Вот вся сама программа
А именно что у меня не получается в Form4 находится
на другое не обращайте внимания
Там еще на украинском языке условие написано
кнопка "б" работает и с ней все хорошо
Вложения
Тип файла: rar Моя головная боль.rar (225.4 Кб, 8 просмотров)

Последний раз редактировалось kostya_hor; 25.05.2018 в 00:02. Причина: Дополнение
kostya_hor вне форума Ответить с цитированием
Старый 24.05.2018, 23:55   #17
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Мне наверное бы лучше сделать заполнение по кнопке
Вот вроде рабочий код
Код:
const
     n=6;
     m=9;
var i,j,a:integer;
begin
 
for i:=1 to m do
for j:=1 to n do   begin
a:=random(20);
 StringGrid1.Cells[i,j]:=inttostr(a);
end;
end;
kostya_hor вне форума Ответить с цитированием
Старый 25.05.2018, 00:14   #18
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

и вы не знаете как вывести результат в ворд потом?
kostya_hor вне форума Ответить с цитированием
Старый 25.05.2018, 00:30   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

попробуйте такой вариант.

Unit4.rar

Цитата:
и вы не знаете как вывести результат в ворд потом?
Может просто в текстовый файл сохранить?

потому что в MS Word можно выгрузить (относительно несложно), только если Word установлен на компьютере, где будет работать программа.
Тогда это можно сделать через OLE автоматизацию. Примеров в интернете полно.
А вот если Word не установлен - тогда просто так в формат Word не выгрузишь. Проще записать в текстовый документ или RTF формат.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.05.2018, 00:32   #20
kostya_hor
Пользователь
 
Регистрация: 23.05.2018
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Может просто в текстовый файл сохранить?

потому что в MS Word можно выгрузить (относительно несложно), только если Word установлен на компьютере, где будет работать программа.
Тогда это можно сделать через OLE автоматизацию. Примеров в интернете полно.
А вот если Word не установлен - тогда просто так в формат Word не выгрузишь. Проще записать в текстовый документ или RTF формат.
ворд будет на том компьютере где будет запускаться программа
kostya_hor вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данная целочисленная матрица размера M N, элементы которой могут приобретать значения от 0 до 100. Найти количество столбцов, похожих на последний столбец этой матрицы Nenero Помощь студентам 1 22.02.2018 08:39
Дана целочисленная матрица размера MXN. Найти ее столбцы, все элементы которых различны.Эти столбцы должны закрашиваться. Kate21143 Общие вопросы Delphi 2 11.06.2014 07:54
Найти ошибку в коде (Для данной целочисленной матрицы размером n*m найти матрицу из 0 и 1...) код на C camel5 Помощь студентам 1 26.11.2013 06:11
Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количе tanjusha Общие вопросы C/C++ 4 01.04.2010 20:03