Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.005 c
1-1228253040
asail
2008-12-03 00:24
2010.01.24
Не рабтает смена лотка в QuickReport


15-1258639386
Intel
2009-11-19 17:03
2010.01.24
обновление программы самой программой


2-1259929176
oleg1963lora
2009-12-04 15:19
2010.01.24
CreateDir. Анализ ошибки


2-1260028195
dplz
2009-12-05 18:49
2010.01.24
Фон в listbox


8-1202531881
dreamse
2008-02-09 07:38
2010.01.24
Вопрос про достижение графического эффекта.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский