![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приведение типов переменных [D5]
fvn © (2007-02-26 09:59:00)Как привести переменную s1:string к s2:TForm1 ?
umbra (2007-02-26 17:17:00) [1]GetClass + F1
Игорь Шевченко (2007-02-26 17:12:00) [2]
> 5. Для того, что бы открыть любой из документов приложения,
> необходимо перевести его наименование в TForm иначе придется
> писать длинный список сравнений.
У элемента меню есть свойство Tag, в которое вполне можно записать ссылку на класс формы
fvn (2007-02-26 17:02:00) [3]Спасибо за отклик. поясню суть вопроса :
1. Имеем головной модуль Меню, который вызывает скажем 100 форм документов
2. Есть генератор меню, который собирает формы (документы) в отдельные приложения (сочетания документов)
3. В зависимости от полномочий пользователя эти сочетания могут быть разными
4. Меню генерится при входе, имена форм (документов) имеем в описании приложения в виде записей string
5. Для того, что бы открыть любой из документов приложения, необходимо перевести его наименование в TForm иначе придется писать длинный список сравнений.
RASkov (2007-02-26 12:16:00) [4]> Это не приведение ;)
Да, но в контексте вопроса автора, такого быть не может вообще... вобщем про молнию в тему;)
Desdechado (2007-02-26 12:06:00) [5]RASkov (26.02.07 11:32) [11]
Это не приведение ;)
Автору
Ты пытаешься из застежки-"молнию" для куртки сделать процессор для компа. Кодичество ножек вроде совпадает, да и желтенькие они.
RASkov (2007-02-26 11:32:00) [6]> [10] evvcom © (26.02.07 11:20)
Да ладно сёравно орех, а что что я нарисовал, даже работает ;)
evvcom (2007-02-26 11:20:00) [7]> [9] RASkov (26.02.07 11:00)
> Application.FindComponent(Sf)
Это ты где такое нашел? :-)
Хорош глупости советовать.
RASkov (2007-02-26 11:00:00) [8]function StringToTForm(const Sf: String): TForm;
begin
Result:=TForm(Application.FindComponent(Sf));
end;
var F: TForm;
begin
F:=StringToTForm('Form2');
if F<>nil then F.Show;
end;
:о)
evvcom (2007-02-26 10:58:00) [9]> [7] Elen © (26.02.07 10:54)
Похакерствовать в начинающих? Да и хакерского ничего не вижу в этом, только бессмысленное приведение типов.
> или изучить разнообразие ошибок на практике
Их и так будет достаточно, не надо для этого их изобретать. :)
Elen (2007-02-26 10:54:00) [10]
> А смысл сего?
похакерствовать :) или изучить разнообразие ошибок на практике.
RASkov (2007-02-26 10:51:00) [11]StringToTForm1();)
evvcom (2007-02-26 10:48:00) [12]> [4] Elen © (26.02.07 10:45)
А смысл сего?
Мой телепатор нателепатил аналогично
> [3] stone © (26.02.07 10:34)
Elen (2007-02-26 10:45:00) [13]Может имелось ввиду примерно такое? :
....
var s:string;
form2,Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
s:=string(form1);
form2:=Tform1(s);
form2.Caption:='ddd';
end;
Только это весьма неверный ход, если конечно автор имел ввиду нечто подобное.
stone (2007-02-26 10:34:00) [14]Попробую включить телепатор :)
var
с: TComponent;
...
c := FindComponent(s1);
if (c <> nil) and (c is TForm) then
s2 := c;
Barloggg (2007-02-26 10:32:00) [15]ну... теоретически это конечно возможно.
но, да, это орех.
Ega23 (2007-02-26 10:16:00) [16]:))))))))))))))))))))))
орех...