Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приведение типов переменных [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]

:))))))))))))))))))))))
орех...


Наверх

Титульная страница Поиск, карта сайта Написать письмо