Форум: "Начинающим";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
ВнизОбращение к форме по имени класса и идентификатору Найти похожие ветки
← →
Тимофей123 (2009-12-05 23:52) [0]Всем доброго вечера, как можно обратиться к форме, зная имя формы,идентификатор, или имя класса от которого она созданна?
← →
KilkennyCat © (2009-12-06 00:52) [1]через написание имени ее.
← →
Игорь Шевченко © (2009-12-06 00:55) [2]http://ln.com.ua/~openxs/articles/smart-questions-ru.html
← →
Германн © (2009-12-06 01:01) [3]
> Тимофей123 (05.12.09 23:52)
Ты все-таки сначала разберись с заданием преподавателя. А то пока бред спрашиваешь.
← →
Юрий Зотов © (2009-12-06 12:11) [4]TForm1(Application.FindComponent("Form1"));
← →
Тимофей123 (2009-12-06 13:50) [5]думал что разобрался накатал след.:
unit module;
interface
uses Forms, classes;
// Создаю класс
type
TMyForm = class
private
// Массив форм
mass: array of TForm;
public
count_f: integer;
// Добавление формы и занесение ее в массив
function AddForm: Integer;
// Получение списка форм
procedure GetList(List: TStrings);
// За обращение к форме взял получение св-ва caption
function GetCaptionName(name:string) : String;
function GetCaptionClassName(name:string) : String;
function GetCaptionId(name:String) : String;
end;
implementation
uses SysUtils;
{ TMyForm }
function TMyForm.AddForm: Integer;
begin
inc(count_f);
setlength(mass, length(mass) + 1);
mass[length(mass) - 1] := TForm.Create(Application);
mass[length(mass) - 1].Name := "MyForm" + IntToStr(count_f);
mass[length(mass) - 1].Caption := "Моя форма " + IntToStr(count_f);
result := length(mass) - 1;
end;
procedure TMyForm.GetList(List: TStrings);
var
i: integer;
begin
for i := 0 to length(mass) - 1 do
list.Add(mass[i].name);
end;
function TMyForm.GetCaptionName(name:string): String;
var
i:integer;
begin
for i:=0 to length(mass)-1 do
if mass[i].Name = name then
begin
result := mass[i].Caption;
exit;
end;
end;
function TMyForm.GetCaptionClassName(name: string): String;
var
i:integer;
begin
for i:=0 to length(mass)-1 do
if mass[i].ClassName = name then
begin
result := mass[i].Caption;
exit;
end;
end;
function TMyForm.GetCaptionId(name :STring): String;
var
i:integer;
begin
for i:=0 to length(mass)-1 do
if i = strtoint(name)-1 then
begin
result := mass[i].Caption;
exit;
end;
end;
end.
Он прокомменитровал так:
1. За создание формы класс не должен отвечать.
2. Доступ организовать через свойства.
3. Реализовать механизм автоматической регистрации форм через методы общей абстрактной формы.
Мне не понятно как реализовать 1 и 3 пункт и что значит организовать доступ через свойства
← →
Anatoly Podgoretsky © (2009-12-06 13:52) [6]> Тимофей123 (06.12.2009 13:50:05) [5]
Это он тебя к армии готовит.
← →
KilkennyCat © (2009-12-06 13:54) [7]
2. Доступ организовать через свойства.
> Мне не понятно как реализовать 1 и 3 пункт и что значит
> организовать доступ через свойства
Надо запомнить такой прием: мне все понятно, за исключением (дальше перечисляются все пункты) :)
← →
KilkennyCat © (2009-12-06 14:00) [8]Я так думаю, что автору имеет смысл почитать статью http://www.delphimaster.ru/articles/parentform/index.html там и проперти есть...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c