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

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

Сослаться на TIcon.Create


08642 ©   (2009-08-27 15:56:00) 

with TIcon.Create do
 try
   // ...
   SetIcon2() // ->TIcon.Create
   // ...
 finally
   Freel
 end;


Можно ли как нибуть сослаться на создаваемый TIcon


Leonid Troyanovsky   (2009-08-27 20:29:00) [1]


> sniknik ©   (27.08.09 20:11) [11]

> метод кстати тоже, первый, что на глаза попался.

Проще всего Free брать.
http://groups.google.com/group/fido7.ru.delphi/browse_frm/thread/9e2a9e1de5b72cbe/07ece6ec8c6f2b87

--
Regards, LVT.


sniknik   (2009-08-27 20:11:00) [2]

> //тип просто подобрал под использованный метод
метод кстати тоже, первый, что на глаза попался.


sniknik   (2009-08-27 20:10:00) [3]

ну. вот в общем то, работает, но через одно место.  
procedure TForm1.Button1Click(Sender: TObject);

 procedure SetIcon2(Ass: TThreadMethod); //тип просто подобрал под использованный метод, чтобы не объявлять. т.е. никакого отношения... и т.д. все совпадения случайны.
 begin
   ShowMessage(TComponent(TMethod(Ass).Data).ClassName);
 end;

begin
 with TIcon.Create do
   try
     // ...
     SetIcon2(BeforeDestruction);
     // ...
   finally
     Free;
   end;
end;


sniknik   (2009-08-27 17:52:00) [4]

> Есть один полухакерский способ
вытащить из какого нибудь метода?


clickmaker   (2009-08-27 17:46:00) [5]

а смысл не создавать переменную?
компилятор ее все равно создаст
экономия 2 строчек кода? Смешно, особенно, если учесть [4] -)


Юрий Зотов   (2009-08-27 17:46:00) [6]

> 08642   (27.08.09 15:56)  

Есть один полухакерский способ, но это уже извращение. Используйте [5].


sniknik   (2009-08-27 17:44:00) [7]

clickmaker ©   (27.08.09 17:41) [5]
ну, так не интересно. весь смысл вопроса сослаться на "себя" не создавая переменную.


clickmaker   (2009-08-27 17:41:00) [8]

Icon := TIcon.Create;
with Icon do
try
  // ...
  SetIcon2(Icon) // ->TIcon.Create
  // ...
finally
  Freel
end;


sniknik   (2009-08-27 17:24:00) [9]

можно сделать так, хотя получается изврат...
 TMyIcon = class(TIcon)
   function GetSelf: TIcon;
 end;

function TMyIcon.GetSelf: TIcon;
begin
 result:= self;
end;

with TMyIcon.Create do
try
  // ...
  SetIcon2(GetSelf) // ->TIcon.Create
  // ...
finally
  Freel
end;


sniknik   (2009-08-27 17:08:00) [10]

> SetIcon2(Self);
хотя, нет, ошибся. не у всех self есть. ;(


sniknik   (2009-08-27 17:00:00) [11]

SetIcon2(Self);


Сергей М.   (2009-08-27 15:58:00) [12]

Нибуть можно, но смотря где


Наверх

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