Дата добавления: 23.07.2011
Что нового ?Скачиваний: 790 | Просмотров: 5181 | Комментариев: 10 | Рейтинг материала: 5.0
Автор: Иван
Рейтинг: 5.0/4 |
MFCSAPI - это "DLL" продукт, который содержит функции и процедуры
необходимые для работы Dp7Lib 3.3. Версия 1.4.0.158 улучшает работу функций в Windows Vista, 7 и является обновлением версии 1.3.0.156 в Dp7Lib 3.3. Скачать: http://narod.ru/disk/63098035001.d8c2ca451cede1621acc2498cea8fac1/mfcsapi_1.4.0.158.rar.html |
mfcs32.dll 1.5.0.178 (32/64)
function GetMapNotifyIconRect(hWnd: HWnd; nIndex: NativeInt; var lprc: TRect): BOOL; возращает экраные координаты значка в Notification area, клиентские как и ранее через GetNotifyIconRect... type TNotifyIconIdentifier = record cbSize: DWORD; hWnd: HWND; uID: UINT; guidItem: TGUID; end; function GetSysNotifyIconRect(const P: TNotifyIconIdentifier; var lprc: TRect): BOOL; возращает экраные координаты значка в Notification area, надо Windows 7 или выше... function GetShtNotifyIcon(hWnd: HWnd; const P: TNotifyIconIdentifier): NativeInt; function GetShtNotifyIconRect(hWnd: HWnd; const P: TNotifyIconIdentifier; var lprc: TRect): BOOL; получаются неплохие комбинации... var P: TNotifyIconIdentifier; R: TRect; begin P.cbSize := SizeOf(P); P.hWnd := Handle; P.uID := 0; if Not GetShtNotifyIconRect(ToolbarWindow, P, R) then if Not GetSysNotifyIconRect(P, R) then ... end; |
Недавно от делать нечего протестировал DP7LIB на Windows 8:
http://www.ulhosting.ru/share-16FD_503F5EB4.html http://www.ulhosting.ru/share-9397_503F5EB4.html http://www.ulhosting.ru/share-AC31_503F5EB4.html http://www.ulhosting.ru/share-9F3F_503F5EB4.html http://www.ulhosting.ru/share-966D_503F5EB4.html http://www.ulhosting.ru/share-0EE1_503F5EF4.html http://www.ulhosting.ru/share-88F7_503F5EF4.html http://www.ulhosting.ru/share-9395_503F5EF4.html http://www.ulhosting.ru/share-EEE3_503F5EF4.html Предлагаю также посмотреть на другие мои работы в сети: Snowflakes on the desktop http://narod.ru/disk/60539677001.08a3b6a1c2982c2c706cfe0ee5cb1a27/Setup.exe.html Matrix Screen Saver http://narod.ru/disk/60539610001.e71d5e0a986492fd562a61950917f6af/Matrix.scr.html |
Дополнение к DP7LIB 3.3:
http://narod.ru/disk/59400362001.6f7d88654e2930dd6a03e30a7b8cb65d/Magic_2012.rar.html |
Ко мне на почту пришло много писем, с вопросами почему проект закрыт. Отвечаю, мне надоело быть программистом. Последние доработки которые я сделал выдут ввиде SP1 к DP7LIB 3.3 (напоследок). Сейчас я собираюсь создать свою компанию и заниматься совершенно другими вещами. Может когда-нибудь вспомню кем был раньше.
|
uses
dpSysTray, dpLib; procedure TForm1.Button1Click(Sender: TObject); var Data: TNotifyStructData2; R: TRect; begin Memo1.Lines.Clear; if Not GetNotifyStructData(GetToolBarWnd, SpinEdit1.Value, @Data, SizeOf(Data)) then Memo1.Lines.Add('Не удалось получить данные, возможно доступ' + ' запрещён администратором !!!') else begin Memo1.Lines.Add(Format('Wnd: %d', [Data.hWnd])); Memo1.Lines.Add(Format('ID: %d', [Data.uID])); Memo1.Lines.Add(Format('CallbackMessage: %d', [Data.uCallbackMessage])); Memo1.Lines.Add(Format('State: %d', [Data.dwState])); Memo1.Lines.Add(Format('Version: %d', [Data.uVersion])); Image1.Picture.Icon.Handle := Data.hIcon; end; if Not GetNotifyIconRect(GetToolBarWnd, SpinEdit1.Value, @R) then Memo1.Lines.Add('Не получилось узнать координаты, возможно' + ' значок в скрытом состоянии !!!') else begin MapWindowPoints(GetToolBarWnd, HWND_DESKTOP, R, 2); Memo1.Lines.Add(Format('Rect: [Left: %d; Top: %d; Right: %d; Bottom: %d]', [R.Left, R.Top, R.Right, R.Bottom])); end; end; Что хочу сказать. Сегодня мне удалось обойти очередные грабли Microsoft в Windows Vista, 7 и теперь для получения координат значка в области уведомлений не нужны особые разрешения администратора. В первых версиях Vista запрета не было, но потом разработчики внесли изменения. Также они разделили область уведомлений на системную и пользовательскую. Что также повлияло на пересмотр написаного. Но функции пока нормально работают в XP и в начальных версиях Vista. Решение: Ждать новую mfcs32.dll Ждать dp7lib 4.0 |
Ошибки и как их обойти:
------------------------------ TrayIcon.Images := ImageList1; TrayIcon.Images := ImageList2; FImagesLink - Потеря памяти procedure TdpCustomTrayIcon.SetImages(Value: TCustomImageList); begin if FImages <> Value then begin if Value <> nil then begin FImagesLink := TChangeLink.Create; FImagesLink.OnChange := ImagesChange; Value.RegisterChanges(FImagesLink); FImages := Value; end else begin 2х FImagesLink.Free; FImagesLink := nil; FImages := Value; end; BadgeImageList; end; end; Решение: TrayIcon.Images := ImageList1; TrayIcon.Images := nil; TrayIcon.Images := ImageList2; ------------------------------ TrayIcon.Focusing ??? - Когда думаешь на двух языках, можно и забыть что-то описать... Решение: TrayIcon.Perform(NI_SETFOCUS, 0, 0); ------------------------------ Пишите... |
На днях сдавал отчёт по производственной практике в институт.
Задание от предприятия было написать программу для создания визиток стандарта ISO. Написание программы я разбил на несколько частей: инспектор объектов, палитра компонентов и форма для дизайна. Ушло на всё-про-всё 26 дней. Чем-то напоминает Delphi, но не в этом суть. Мнение преподавателя: печать есть, предварительный просмотр есть, сохранение в файл есть, экспорт в другие форматы есть, к чему бы придраться. Эврика ? Свойства и значения в инспекторе объектов на английском языке. Да, номер ещё тот. Ему и не вдомёк, что их нельзя переименовать. Ведь по сути, инспектор объектов отображает то, что описано в разделе published класса. Попробуй доказать, лопнишь... С мнением какая плохенькая и не кому ненужная у вас программа ты уходишь, но счастья тебе не занимать, в зачётке стоит сдал. О преподе: Кандидат экономических наук. |
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.