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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание класса, Помогите бо нимагу 
V
    Опции темы
AlexLogos
Дата 18.3.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ, вот незадача, поргаю Делфой кучу времени и все никак не изучу эту среду. Так нет на старости лет поперло... Подскажите плиз.
Создал класс:
Код

type FMainTableForm = class
     MainPanel:TPanel;
     MainScroll:TScrollBox;
     ScrollPanel:TPanel;
     BottomPanel:TPanel;
     SaveButton:TButton;
     constructor Create(AOwner:TWinControl);
     destructor Destroy; override;
     public
     procedure SaveButtonClick(Sender:TObject);
end;


это должна быть форма ввода данных, и таких форм на форме проги будет много и они будут создаваться динамически, если вы мне поможете  smile 

собственно конструкторы-деструкторы:
Код

constructor FMainTableForm.Create(AOwner:TWinControl);
begin
MainPanel:=TPanel.Create(AOwner);
MainPanel.Parent:=AOwner;
MainPanel.Align:=alClient;
MainPanel.Visible:=True;

MainScroll:=TScrollBox.Create(MainPanel);
MainScroll.Parent:=MainPanel;
MainScroll.Align:=alClient;
MainScroll.Visible:=True;

ScrollPanel:=TPanel.Create(MainScroll);
ScrollPanel.Parent:=MainScroll;
ScrollPanel.Align:=alTop;
ScrollPanel.Height:=400;
ScrollPanel.Visible:=True;

BottomPanel:=TPanel.Create(MainPanel);
BottomPanel.Parent:=MainPanel;
BottomPanel.Align:=alBottom;
BottomPanel.Height:=40;
BottomPanel.Visible:=True;

SaveButton:=TButton.Create(BottomPanel);
SaveButton.Parent:=BottomPanel;
SaveButton.Width:=100;
SaveButton.Height:=20;
SaveButton.Anchors:=[akRight,akTop];
SaveButton.Top:=10;
SaveButton.Left:=400;
SaveButton.Caption:='"Save"';
SaveButton.Visible:=True;
end;

destructor FMainTableForm.Destroy;
begin
  SaveButton.Free;
  ScrollPanel.Free;
  BottomPanel.Free;
  MainScroll.Free;
  MainPanel.Free;
  inherited;
end;



вроде создаю и убиваю правильно, ошибок не видел. Утечек памяти не заметил (хотя и не особо следил).
И вот вопрос, хочу чтоб по нажатию на кнопочку SaveButtonвызывалась процедура SaveButtonClick(Sender:TObject), пишу
Код

procedure FMainTableForm.SaveButtonClick(Sender:TObject);
begin
 MainTableForm.Free;
 ShowMessage('FormDeleted');
end;


И не работает. Честно, я в класах - дуб - дерево хвойное, вот решил поиграться с ними, подучить, да прожект надо сейчас, а не когда я буду это знать. Помогите пожалуйста.
PM MAIL   Вверх
k0rvin
Дата 18.3.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может следует свой класс формы унаследовать от TForm ?

Код

type FMainTableForm = class (TForm)
...


или от чего-то другого подходящего


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
AlexLogos
Дата 18.3.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не вижу смысла. Он же работает, просто не могу понять как правильно определить обработчик OnClick созданной кнопке...
PM MAIL   Вверх
Frees
Дата 18.3.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Код

SaveButton:=TButton.Create(BottomPanel);
SaveButton.Parent:=BottomPanel;
SaveButton.OnClick := SaveButtonClick


а лучше использовать TFrame и не городить огород 


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
kami
Дата 18.3.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

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



----- не дочитал, и не увидел ответа Frees. :(

Это сообщение отредактировал(а) kami - 18.3.2010, 20:03
PM MAIL WWW   Вверх
AlexLogos
Дата 19.3.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Еще вопрос по созданию класса: когда я пишу конструктор мне надо обрабатывать текстовый файл и я использую команду delete(st,p,1). При этом компилятор выдает ошибку [DCC Error] InterFaceUnit.pas(397): E2010 Incompatible types: 'Integer' and 'string'. Как это устранить?
PM MAIL   Вверх
Frees
Дата 19.3.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



не те типы данных

зы ошибка в 17ой строке!! проверяй лучше


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
AlexLogos
Дата 19.3.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не то... Я пишу конструктор обьекта который свойства получает из файла.
Код

constructor CTableFieldCollecton.Create(InputParent:TWinControl; Section:string);
var
st:string;
begin
.........
Delete(st,p,1);// Здесь ошибка
.........
end;

При обработке строки возникает ошибка потому что компилятор считает Delete методом создаваемого обьекта.
Вопрос: как его убедить что это процедура обработки строки?
PM MAIL   Вверх
Frees
Дата 19.3.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



StrUtils.Delete(st,p,1);


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
AlexLogos
Дата 19.3.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо всем!  smile  Последний вопрос решился использованием System.delete(st,1,p);
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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