Главная страница
    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.004 c
1-1233757927
jetus
2009-02-04 17:32
2010.01.24
Получить название метода


2-1259566616
V@silij Iv@novich
2009-11-30 10:36
2010.01.24
Использование QReport


2-1259727444
Danco
2009-12-02 07:17
2010.01.24
Перевод символа в другой формат


15-1258709445
Lebos
2009-11-20 12:30
2010.01.24
интерполяция


2-1259631171
des
2009-12-01 04:32
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский