Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП, Массив 
:(
    Опции темы
aleksandrfnsv1
  Дата 1.5.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 5.4.2008

Репутация: нет
Всего: нет



сделал конструктоы классов, а также процедуру add для класса Tmas, теперь хочу начать заполнение массива и видеть содержимое, а как это сделать.
Код

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
    type
  TPismo = class
         private
         kolp,size,prioritet:integer;
         public
        constructor Create (akolp,asize,aprioritet:integer);
    end;

  type
  TMas = class
  private
      count:integer;
      mas:array [1..18] of TPismo;
  public
      constructor Create ;
      procedure add( aPismo:TPismo; ai: integer);
  end;

var
  Form1: TForm1;
  Mas1:TMas;
implementation

{$R *.dfm}
        constructor TPismo.Create (akolp,asize,aprioritet:integer);
        begin
        kolp:=akolp;
        size:=asize;
        prioritet:=aprioritet;
        end;

        constructor TMas.Create;
        begin
            Mas1:=TMas.Create;
        end;

        procedure TMas.add(aPismo:TPismo; ai:integer);
        begin
            TPismo.Create(random(5)+1,random(6)+1,random(3)+1);
        end;

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.clear;
memo2.clear;

end;

end.

PM MAIL   Вверх
THandle
Дата 1.5.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Какой ужос smile 

Оформление кода ужасное.


Цитата(aleksandrfnsv1 @  1.5.2008,  21:26 Найти цитируемый пост)
        constructor TMas.Create;
        begin
            Mas1:=TMas.Create;
        end;


Это вообще что такое? smile 


Цитата(aleksandrfnsv1 @  1.5.2008,  21:26 Найти цитируемый пост)
        procedure TMas.add(aPismo:TPismo; ai:integer);
        begin
            TPismo.Create(random(5)+1,random(6)+1,random(3)+1);
        end;


Супер.



Я так понял тебе надо по таймеру(как во соседней темке заполнять массив).

Лови код:
Код


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TPismo = class
    private
      kolp, size, prioritet : integer;
    public
      constructor Create(akolp, asize, aprioritet : integer);
    end;

  TMas = class
  private
    count : integer;
    mas : array [1..18] of TPismo;
  public
    constructor Create;
    procedure add(aPismo : TPismo; ai : integer);
  end;

var
  Form1: TForm1;
  Mas1:TMas;
  x : integer = 0;
implementation

{$R *.dfm}
constructor TPismo.Create(akolp,asize,aprioritet:integer);
begin
  kolp := akolp;
  size := asize;
  prioritet := aprioritet;
end;

procedure TMas.add(aPismo:TPismo; ai:integer);
begin
  if ai in [1..18] then
    if aPismo <> nil then
      mas[ai] := aPismo
    else
      begin
        mas[ai].kolp := random(5) + 1;
        mas[ai].size := random(6) + 1;
        mas[ai].prioritet := random(3) + 1;
      end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  memo1.clear;
  memo2.clear;
  mas1 := TMas.Create;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  lastx, i : integer;
begin
  lastx := x;
  inc(x, 2);
  for i := lastx + 1 to x do
    if i <= 18 then
      mas1.add(nil, i)
    else
      begin
        x := 0;
        Break;
      end;
end;

constructor TMas.Create;
var
  i : integer;
begin
  for i := 1 to 18 do
    mas[i] := TPismo.Create(0, 0, 0);
end;

end.


Должен работать. Хотя писал тут, так как только что переустановил Windows. Delphi еще не успел поставить.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.