Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.24;
Скачать: CL | DM;

Вниз

Обращение к форме по имени класса и идентификатору   Найти похожие ветки 

 
Тимофей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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-1230566193
alek_1
2008-12-29 18:56
2010.01.24
Rave Report проблема с кирилицей в ПДФ


3-1233671912
Pavel
2009-02-03 17:38
2010.01.24
Компонент SQLStoredProc


15-1258288584
GrayFace
2009-11-15 15:36
2010.01.24
К теме "Убойная статистика"


15-1258839016
Юрий
2009-11-22 00:30
2010.01.24
С днем рождения ! 22 ноября 2009 воскресенье


2-1259749020
Anastasia
2009-12-02 13:17
2010.01.24
Как задать интервал строк на QReport?