Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.07.2012, 16:08
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание Торможу помогите

есть такой код

Код:
TrayIcon1.BalloonHint:='ОШИБКА';
TrayIcon1.BalloonTitle:='Внимание!';
TrayIcon1.BalloonFlags:=bfError;
TrayIcon1.ShowBalloonHint;

как это превратить в процедуру - что бы вызвать это одной строкой к примеру

Код:
Error;

просто TrayIcon1 это компонент...

попробовал так у меня программа ругается почему не подскажете??
Код:
procedure error;
var
TrayIcon1: TTrayIcon;
begin
TrayIcon1.BalloonHint:='ОШИБКА';
TrayIcon1.BalloonTitle:='Внимание!';
TrayIcon1.BalloonFlags:=bfError;
TrayIcon1.ShowBalloonHint;
end;

голова уже не варит...торможу...
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 21.07.2012 в 16:10.
Ответить с цитированием
  #2  
Старый 21.07.2012, 16:42
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

TTrayIcon - это VCL компонент, поэтому его лучше кидать на форму. Если уж так хочешь, то вызывай конструктор класса, типа
Код:
TrayIcon1:=TTrayIcon.Create();
а потом еще нужно дополнительные параметры для компонента настроить (компонент не видел, не знаю).
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
Electronic_Arts (21.07.2012)
  #3  
Старый 21.07.2012, 16:42
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

разобрался надо было писать
Код:
Form1.TrayIcon1....
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #4  
Старый 21.07.2012, 16:44
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Цитата:
Сообщение от YVitaliy
TTrayIcon - это VCL компонент, поэтому его лучше кидать на форму. Если уж так хочешь, то вызывай конструктор класса, типа
Код:
TrayIcon1:=TTrayIcon.Create();
а потом еще нужно дополнительные параметры для компонента настроить (компонент не видел, не знаю).
Я знаю - он был на форме просто - говорю же мозг просто тормозил...

все равно спасибо - за отклик!
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #5  
Старый 21.07.2012, 16:44
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Electronic_Arts
просто TrayIcon1 это компонент...

попробовал так у меня программа ругается почему не подскажете??
Код:
procedure error;
var
TrayIcon1: TTrayIcon;
begin
TrayIcon1.BalloonHint:='ОШИБКА';
TrayIcon1.BalloonTitle:='Внимание!';
TrayIcon1.BalloonFlags:=bfError;
TrayIcon1.ShowBalloonHint;
end;

голова уже не варит...торможу...
Потомучто переменная TrayIcon1 у тебя ссылается вникуда. Сначала нужно создать объект компонента с помощью его конструктора и ссылку на этот объект присвоить переменной TrayIcon1.
Примерно так:
Код:
var
  TrayIcon1: TTrayIcon;
begin
  TrayIcon1:=TTrayIcon.Create(Application);
  TrayIcon1.BalloonHint:='ОШИБКА';
  // и т. д.
И потом, когда объект уже больше не нужен, не забывать его разрушать:
Код:
  TrayIcon1.Free
иначе будут утечки памяти...
Ответить с цитированием
Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение:
Electronic_Arts (21.07.2012)
  #6  
Старый 21.07.2012, 16:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

У меня в сборке компонент TrayIcon требуется постоянно, поэтому он появляется при создании формы и разрушается только по окончании работы, отсюда такой модификат:
Код:
...
var
 TrayIcon1: TTrayIcon;
  implementation
...
 procedure TForm1.FormCreate(Sender: TObject);
begin
  TrayIcon1:= TTrayIcon.Create(TrayIcon1);
end;
...
procedure TForm1.error;
begin
 with TrayIcon1 do
begin
BalloonHint:='ОШИБКА';
BalloonTitle:='Внимание!';
BalloonFlags:=bfError;
Active:= True;
ShowBalloonHint;
end;
...
 procedure TForm1.FormDestroy(Sender:TObject);
begin
 TrayIcon1.Destroy;
end;
Ответить с цитированием
  #7  
Старый 21.07.2012, 17:00
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
У меня в сборке компонент TrayIcon требуется постоянно, поэтому он появляется при создании формы и разрушается только по окончании работы, отсюда такой модификат:
Код:
...
var
 TrayIcon1: TTrayIcon;
  implementation
...
 procedure TForm1.FormCreate(Sender: TObject);
begin
  TrayIcon1:= TTrayIcon.Create(TrayIcon1);
end;
...
procedure TForm1.error;
begin
 with TrayIcon1 do
begin
BalloonHint:='ОШИБКА';
BalloonTitle:='Внимание!';
BalloonFlags:=bfError;
Active:= True;
ShowBalloonHint;
end;
...
 procedure TForm1.FormDestroy(Sender:TObject);
begin
 TrayIcon1.Destroy;
end;
Компоненты удобнее бросать на форму. Тогда не нужно их вручную создавать (в FormCreate) и разрушать (в FormDestroy). Всё автоматически создасться и разрушится
Ответить с цитированием
  #8  
Старый 21.07.2012, 17:04
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Кто спорит, конечно удобно, но напрягает сообщение при запуске проекта "Нету установленного компонента", а так в среду его можно и не внедрять
Ответить с цитированием
  #9  
Старый 21.07.2012, 17:09
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Кто спорит, конечно удобно, но напрягает сообщение при запуске проекта "Нету установленного компонента", а так в среду его можно и не внедрять
Ну если так, то тогда конечно удобнее вручную создавать/разрушать...
Особенно в Lazarus (FreePascal), в котором для установки компонента нужно перекомпилировать весь Lazarus...
Ответить с цитированием
  #10  
Старый 21.07.2012, 17:11
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Цитата:
Сообщение от MiraLaklamon
Потомучто переменная TrayIcon1 у тебя ссылается вникуда. Сначала нужно создать объект компонента с помощью его конструктора и ссылку на этот объект присвоить переменной TrayIcon1.
Примерно так:
Код:
var
  TrayIcon1: TTrayIcon;
begin
  TrayIcon1:=TTrayIcon.Create(Application);
  TrayIcon1.BalloonHint:='ОШИБКА';
  // и т. д.
И потом, когда объект уже больше не нужен, не забывать его разрушать:
Код:
  TrayIcon1.Free
иначе будут утечки памяти...

Почему то этот метод не пашет...
TrayIcon1.ShowBalloonHint; //результат ноль
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #11  
Старый 21.07.2012, 17:14
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Electronic_Arts
Почему то этот метод не пашет...
TrayIcon1.ShowBalloonHint; //результат ноль
Может ты его слишком быстро разрушаешь?
Ответить с цитированием
  #12  
Старый 22.07.2012, 13:09
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Цитата:
Сообщение от MiraLaklamon
Может ты его слишком быстро разрушаешь?
вовремя проверки - я часть разрушения вообще убрал...чтоб на результат смотреть - нет тут дело не в этом..
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #13  
Старый 22.07.2012, 21:23
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Код:
.....
TrayIcon1.Visible:=true;
TrayIcon1.ShowBalloonHint;
если компонент из какого-либо RAD
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #14  
Старый 23.07.2012, 10:02
stanilar stanilar вне форума
Прохожий
 
Регистрация: 31.08.2009
Сообщения: 30
Репутация: 140
По умолчанию

Parent, Parent забыли!!!
Ответить с цитированием
  #15  
Старый 23.07.2012, 22:02
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от stanilar
Parent, Parent забыли!!!
Неизвестно какой версией "TTrayIcon" пользуется Electronic_Arts, но скорее всего он невизуальный. А у невизуальных компонентов нет свойства "Parent".
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter