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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 14:24   #1
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию Работа с объектами

Пишу, то я пишу, всё работает. А вот есть ли какие недочёты, ошибки и т.д. Вот что меня интересует. Буду рад вприципе любой критике только аргументированной канешно. Т.е. если не так, то как и почему. Это я так набросал набросок (так для примера):

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    Panel1: TPanel;
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    procedure AddTab;
  public
    { Public declarations }
  end;

//объединяю два компонента и работаю как с одним объектом.
type TobjTab = class
  tab: TTabSheet;
  Memo: Tmemo;
  index: smallint;
  caption: string[20];
end;

var
  Form1: TForm1;
  objTab: TObjTab;
  list: TList;   //запоминать список созданных объектов

implementation

{$R *.dfm}

//создаём вкладку, и мемо на ней. Создаём объект.
procedure TForm1.addTab;
var tab: TTabSheet;
    memo: TMemo;
begin
  tab:=TTabSheet.Create(self);
  tab.PageControl:=PageControl1;
  tab.Caption:='Новая вкладка '+IntToStr(PageControl1.PageCount);
  tab.PageControl.ActivePage:=tab;

  //////////////////////////
  memo:=TMemo.Create(self);
  memo.Parent:=Tab;
  memo.Align:=alClient;
  memo.SetFocus;

  //создаём объект
  objTab:=TObjTab.create;
  objTab.tab:=tab;
  objTab.Memo:=memo;
  objTab.caption:=tab.Caption;

  list.Add(objTab);
end;

//удаляем общий объект для вкладки и мемо, и закрываем вкладку
procedure ObjTabDelete(index: smallint);
begin
  objTab:=list.Items[index];

  objTab.destroy;
  list.Delete(index);
  form1.PageControl1.ActivePage.Destroy;
end;

///добавляем вкладку
procedure TForm1.Button1Click(Sender: TObject);
begin
  addTab;
end;

procedure TForm1.FormDestroy(Sender: TObject);
//var i: smallint;
begin
//удаляем все объекты
  while list.count<>0 do
  begin
    objTabDelete(list.count-1);
  end;

  list.Free;
end;

//закрыть вклакду и уничтожить объект
procedure TForm1.Button2Click(Sender: TObject);
begin
  objTabDelete(PageControl1.ActivePageIndex);
end;

//создаём лист объектов, и добавляем вкладку
procedure TForm1.FormShow(Sender: TObject);
begin
  list:=Tlist.Create;
  addTab;
end;

end.
Файл с программой прилагается ниже, если кому надо.
Вложения
Тип файла: rar obj.rar (174.9 Кб, 10 просмотров)
dr.Chas вне форума Ответить с цитированием
Старый 25.05.2010, 17:45   #2
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Да нормально всё в общем то. Это ты сам смотреть должен.
Altera вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с объектами Word в C++ Ладушка Общие вопросы C/C++ 3 22.09.2015 16:51
Работа с объектами Workbook,worksheets,range savraska Microsoft Office Excel 2 27.05.2010 10:53
Работа с классами и объектами Shavminator Общие вопросы Delphi 7 18.12.2009 04:11
Работа с объектами NeXuLoN Помощь студентам 6 03.12.2009 07:45
Работа с объектами Windows c0zak Помощь студентам 6 06.11.2009 14:05