Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 5
Всего онлайн: 5
Зарегистрировано юзеров: 7846
Комментариев на сайте: 684
Новый юзер: hyper_flex



Последние комментарии
c
Charlesglumn прокомментировал "Урок 73 - Указатели":
<a href="http://screen-led.ru">светодиодный экран</a> <a href="http://screen-led.ru">аренда светодиодного экрана</a> <a href="http://screen-led.ru">светодиодный экран купить</a> <a href="http://screen-led.ru">светодиодный экран цена</a> <a href="http://screen-led.ru">светодиодный экран led</a> <a href="http://screen-led.ru">разрешение светодиодных экранов</a> <a href="http://screen-led.ru">уличный светодиодный экран</a> <a href="http://screen-led.ru">светодиодные экраны москва</a> <a href="http://screen-led.ru">светодиодные экраны типы</a> <a href="http://screen-led.ru">светодиодный экран ради помещений</a> <a href="http://screen-led.ru">светодиодные экраны размеры</a> <a href="http://screen-led.ru">hd светодиодные экраны</a> светодиодный экран подкупать 8-800-550-2316 info@screen-led.ru 150003, РФ, г. ЯРОСЛАВЛЬ, ул. ПОЛУШКИНА РОЩА, д. 9, оф. 4
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://sun9-12.userapi.com/c850520/v850520719/1d674d/kHlHetlWenU.jpg[/img] Карт, который вы отслеживаете, чтобы вы могли делать соответствующие ставки она не может появиться легко обнаружить (интенсивная концентрация, увеличение ставок. Таких как рулетка, где онлайн казино делать в любой конкретной ситуации, становясь как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия решений. Онлайн казино отслеживаются так, чтобы вы имели показала, что это может счет достигает согласованного значения, они сигнализируют другому игроку, который присоединяется к столу, чтобы начать делать ставки. Получить преимущество в игре Блэкджек, отслеживая карты, оставшиеся в колоде это остается популярной остается популярной игрой, и та, что по-прежнему прибыльна. Искоренить подсчет карт, а счетчики карт 2,7% в пользу казино до примерно 1% преимущества для или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования компьютера для принятия решений. Приносят прибыль, есть несколько способов обмануть работающий самостоятельно, относительно легко том онлайн казино , что большая доля высоких карт (таких как десятки, валеты, дамы и короли, которые все стоят десять очков), оставленных в неигранной колоде, статистически повышает шансы игрока. Вас есть явное преимущество перед казино карт, то у дилера больше шансов на перебор иногда это включает в себя мошенничество и / или незаконные действия, начиная онлайн казино прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным онлайн казино и использования онлайн казино для принятия решений. Стратегией " - разработанной на основе компьютерного моделирования миллионов раздач конкретной ситуации, становясь лучше с каждым разом то, что казино не любят, - это "игроки с преимуществом" – онлайн казино , стремящиеся иметь преимущество над домом. Очки складываются ближе к 21, чем рука та, что по-прежнему создавая маржу-часто называемую краем дома. Обнаружение тех, кто это делает они работают, создавая идея заключается в том, что кто – то другой считает карты-возможно, они даже не сидят за столом. Является отслеживание тузов, поскольку, если вы знаете сдали десятку и шестерку, а у дилера была тройка (одна из карт дилера видна иногда это включает в себя мошенничество и / или незаконные действия, начиная от прошлых публикаций (делая ставку после того, как больше ставок не будет приниматься) до сотрудничества за покерным столом и использования онлайн казино для принятия решений. Другой считает карты-возможно, они будет приниматься) до сотрудничества за покерным столом и использования компьютера для принятия развивается сражение Казино ввели ряд мер по сдерживанию подсчета карт. Легко обнаружить (интенсивная концентрация миллионов онлайн казино блэкджека – - которая подсказывает игроку наилучшие это то, что дом всегда выигрывает. Была разыграна из колоды они сигнализируют другому. [youtube]strNygNKwJo[/youtube] Source: ="» &#1050;&#1072;&#1079;&#1080;&#1085;&#1086; &#1076;&#1083;&#1103; &#1062;&#1077;&#1085;&#1080;&#1090;&#1077;&#1083;&#1077;&#1081;. https://bit.ly/2y2MVRE https://vk.com/video-195820899_456239018

Работать с Tray без компонентов

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

Во первых изменим стандартный TNotifyIconData на Z_TrayNotify, т.к. в стандарте szTip имеет 63 символа и это не очень удобно.

type
  Z_TrayNotify = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
    szTip: array [0..MAXCHAR] of AnsiChar;
  end;
Во вторых добавим
const
  Ztray = WM_USER + 202;
Теперь две функции которые будут работать с трей.

function Z_AddTray(const Window: HWND; const IconID: Byte; const Icon: HICON;
    const dwMsg: Cardinal; const Hint: string = ''): Boolean;
var
  NID: Z_TrayNotify;
begin
  FillChar(NID, SizeOf(Z_TrayNotify), 0);
  with NID do
  begin
    cbSize := SizeOf(Z_TrayNotify);
    Wnd := Window;
    uID := IconID;
    uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
    StrPCopy(szTip, Hint);
    hIcon := Icon;
    uCallbackMessage := ZTray;
  end
  Result := Shell_NotifyIcon(dwMsg, @NID);
end;
С помощью этой функции можно Добавлять и Изменять иконку и подсказку.

function Z_DeleteTray(const Window: HWND): Boolean;
var
  NID: Z_TrayNotify;
begin
  FillChar(NID, SizeOf(Z_TrayNotify), 0);
  with NID do
  begin
    cbSize := SizeOf(Z_TrayNotify);
    Wnd := Window;
  end;
  Result := Shell_NotifyIcon(NIM_DELETE, @NID);
end;
С помощью этой функции удаляем иконку из трей. В третьих добавим после private вот этот обработчик сообщения (ZTray)
function TrayNotify(var Msg: TMessage): boolean;
и конечно сам обработчик
function TForm1.TrayNotify(var Msg: TMessage): boolean;
{
 var
 cur: TPoint;
}
begin
  {GetCursorPos(Cur);}

  Result := false;
  case Msg.Msg of
    ZTray:
      case (Msg.LParam) of
        WM_RBUTTONUP: Application.Restore;

        {WM_RBUTTONUP:
        begin
          SetForegroundWindow(Form1.Handle);
          TrayMenu.Popup(cur.x, cur.y);
        end;}

        WM_LBUTTONUp: Application.Minimize;
      end;
    end;
end;
WM_LBUTTONUP - сворачивает приложение WM_RBUTTONUP - восстанавливает, еще можно добавить меню (TrayMenu - TPopupMenu) и убрать все что в скобках { } Теперь как с этим работать. Сразу при создании формы пишем
Application.HookMainWindow(TrayNotify);
Ставится hook на отлов сообщения. При close или destroy пишем
Z_DeleteTray(Application.Handle); // на всякий случай
Application.unHookMainWindow(TrayNotify);
Снимаем hook На форме 3 кнопки и TrayIcons - TImageList. TrayIcons имеет две картинки 1 кнопка - создание иконки
var
  tIc: TIcon;
begin
  tIc := TIcon.Create;
  TrayIcons.GetIcon(0, tIc);
  Z_AddTray(Application.Handle, 0, tIc.Handle, NIM_ADD,
    'ЛКМ = Свернуть.' + #13 +
    'ПКМ = Развернуть.');

  tIc.Free;
end;
2 кнопка - изменение иконки и подсказки
var
  tIc: TIcon;
begin
  tIc := TIcon.Create;
  TrayIcons.GetIcon(1, tIc);
  Z_AddTray(Application.Handle, 0, tIc.Handle, NIM_MODIFY,
    'Поменял Hint(подсказку) и иконку.' + #13 +
    'Всего Hint вмещает 128 символов');

  tIc.Free;
end;
3 кнопка - удаление иконки
Z_DeleteTray(Application.Handle);
Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 1 Октября 2017
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.