Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текст вместо иконки 
:(
    Опции темы
PavelPro
  Дата 5.4.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 4.4.2005
Где: Wild Wild West

Репутация: нет
Всего: нет



Как сделать чтобы вместо иконки в трее показывалася строка? smile
И все это надо с помощью Shell_NotifyIcon smile
PM MAIL   Вверх
_hunter
Дата 5.4.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



строка -- никак. можно пару букв всунуть...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
PavelPro
Дата 5.4.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 4.4.2005
Где: Wild Wild West

Репутация: нет
Всего: нет



Нужно чтоб вместо иконки показывался текст а не на иконке! smile
PM MAIL   Вверх
Snowy
Дата 5.4.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Читай статью про трей.
Принцип действия - создаешь свою иконку из битмапа.
То есть создаешь битмап, рисуешь на нем текст, конвертишь в иконку.
А уже эту иконку назначаешь в трей.
PM MAIL   Вверх
_hunter
Дата 5.4.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



PavelPro, что тебе нужно я понял. только сделать этого нельзя...
можно бегущую строку сделать ( по одной букве показывать )
Snowy, максимальная иконка для трея 64х64 ( кажись ) какого размера будут буквы у такого текта? ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 5.4.2005, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Цитата(_hunter @ 5.4.2005, 18:28)
Snowy, максимальная иконка для трея 64х64 ( кажись ) какого размера будут буквы у такого текта? ;)

Наверняка сказать не могу, но насколько мне известно, в качестве "иконки" можно назначать глифы и большего размера.
Я этим не интересовался, но можно просто найти статью "как запихать текст в трей".
PM MAIL   Вверх
~FoX~
Дата 6.4.2005, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 0
Всего: 68



Гы........странные вы все.
В трей можно засунуть все что угодно...........
--Resize_Images_Alt_Text--
Вот исходник, правда он на VB, но думаю, это не проблема.
тут


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Poseidon
Дата 6.4.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



Цитата(Snowy @ 5.4.2005, 18:07)
Читай статью про трей.
Принцип действия - создаешь свою иконку из битмапа.
То есть создаешь битмап, рисуешь на нем текст, конвертишь в иконку.
А уже эту иконку назначаешь в трей.
Вот эта статья: DELPHI-DLP-000643

PS. Нужно иногда в FAQ заглядывать!



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Guest
Дата 6.4.2005, 13:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да я пробовал вариант показаный в FAQ ,не помогло!
smile
  Вверх
_hunter
Дата 6.4.2005, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



Poseidon, перед тем, как что-то советуеш, нужно это самому попробовать сделать...

~FoX~, ты описание читал?
Цитата
'This makes the systray larger (length wise) by simply adding more "Ghost" _
or foney icons to the tray.  This is the easyest way I could find to enlarging _
the system tray.



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
~FoX~
Дата 6.4.2005, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 0
Всего: 68



_hunter
Не понял....


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
_hunter
Дата 6.4.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



этот пример не вставляет текст в трей. он создает тучу иконок на каждой из которых рисует по букве...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Girder
Дата 6.4.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Вот тебе пример... увеличения области под иконку(в данном примере... для всех иконок из трея):
Код
...
var
  Form1: TForm1;
  TrayWnd:Cardinal; //Shell_TrayWnd - Панель задач
  TrayNW:Cardinal; //TrayNotifyWnd - Весь трей
  TrayButton:Cardinal; //Button - Кномка для показа/скрытия иконок в трее для WinXP
  TraySysPager:Cardinal; //SysPager - Иконки прог в трее
  TrayTB32:Cardinal; //ToolbarWindow32 - Область уведомлений в трее
  Tray_pId:Cardinal; //Идентификатор процесса-владельца трея

implementation

{$R *.dfm}

uses CommCtrl;

function InTray():boolean;
//Инициализация переменных для доступа к трею
var s:string;
begin
 Result:=false;
 s:='';
 TrayWnd:=findwindow('Shell_TrayWnd', nil);
 if TrayWnd<>0 then
  begin
   TrayNW:=findwindowex(TrayWnd,0,'TrayNotifyWnd', nil);
   if TrayNW<>0 then
    begin
     TrayButton:=findwindowex(TrayNW,0,'Button',nil);
     TraySysPager:=findwindowex(TrayNW,0,'SysPager', nil);
     if TraySysPager<>0 then
      begin
       TrayTB32:=findwindowex(TraySysPager,0,'ToolbarWindow32', nil);
       if TrayTB32<>0 then
        begin
         Tray_pID:=0;
         GetWindowThreadProcessId(TrayWnd,@Tray_pID);
         if Tray_pID<>0 then Result:=true else
          s:='Не могу определить идентификатор'+#13+#10+'процесса - владельца трея!';
        end else s:='Область уведомлений в трее - не найдено!'
      end else s:='SysPager в трее - не найден!';
    end else s:='Трей - не найден!';
  end else s:='Панель задач - не найденна!';
 if Result=false then ShowMessage(s);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:TTBBUTTONINFO; 
    opTBW32:Cardinal;
    s,j,t:DWord;
    rMem:Pointer;
begin
 InTray;
 opTBW32:=OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE,false,Tray_pId);
 if opTBW32<>0 then
  begin
   s:=SizeOf(i);
   rMem:=VirtualAllocEx(opTBW32,nil,s,MEM_RESERVE or MEM_COMMIT,PAGE_READWRITE);
   if rMem<>nil then
    begin
     i.cbSize:=SizeOf(i);
     i.dwMask:=TBIF_SIZE;
     j:=SendMessage(TrayTB32,TB_BUTTONCOUNT,0,0);
     while (j>0) do
      begin
       dec(j);
       i.cx:=30; //Нужная нам ширина для j-кнопки
       WriteProcessMemory(opTBW32,rMem,@i,s,t);
       SendMessage(TrayTB32,TB_SETBUTTONINFO,j,integer(rMem)); //j - номер кнопки
      end;
     VirtualFreeEx(opTBW32,rMem,0,MEM_RELEASE);
    end;
   CloseHandle(opTBW32);
  end;
end;
...

PS: Картинку, с текстом... сам замениш... smile


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Poseidon
Дата 6.4.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



Цитата(_hunter @ 6.4.2005, 14:14)
Poseidon, перед тем, как что-то советуеш, нужно это самому попробовать сделать...
Что-то я не понял! Это о чем? Об этом:
Цитата(Poseidon @ 6.4.2005, 12:15)
PS. Нужно иногда в FAQ заглядывать!
или об этом:
Цитата(Poseidon @ 6.4.2005, 12:15)
Вот эта статья:
Если о первом, то не понятно, в чем я не прав. Я всегда смотрю FAQ перед тем как задать вопрос! А вот если о втором, то я ничего и не советовал. Я просто указал гда можно найти статью, о каторой говорил Snowy. Вот и все! Не понимаю, в чем я не прав?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
_hunter
Дата 6.4.2005, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



о статье. она делает немного не то, что просили. и смысла в том, чтобы ее давать я не вижу ( даже если ее кто-то упомянул )

Girder, прикольный код. только непонятно каким макаром rMem попадает туда, куда нужно


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1048 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.