Перейти к содержанию
Fire Monkey от А до Я

Nix0N

Пользователи
  • Постов

    92
  • Зарегистрирован

  • Посещение

  • Победитель дней

    12

Сообщения, опубликованные Nix0N

  1. Response := fMain.IdHTTP1.Post(aURL, Params);
    

    aURL какой вписываете?

     

    10.1.3.1".

    Ну и естественно, для начала нужно попробовать самому зайти с таким URLом на страницу через браузер.

     

    В большинстве случаев, POST-запросы обрабатывает функция, которая не вернет Вам front-end... Так что "зайти" не получится...

  2. Не уходит или не доходит ? При такой разработке необходимо первым делом обзавестись сниффером. Это как минимум. И где точное содержание переменной aURL ?

     

    В общем мой совет: Firefox + HTTP сниффер. Заходите на сайт, нажимаете CTRL+SHIFT+F2. Заполняете все поля и подаёте объявление. Там будет всё. Что, откуда и куда... В Вашем коде можно глаз сломать...

  3. Доброе время суток!

     

    XE6, Win7

     

    Подскажите пожалуйста, выполнил все рекомендации, а именно:

    • Добавил в FMX.Platform.Win функцию ApplicationHWND, теперь данный код работает: ShowWindow(ApplicationHWND, SW_HIDE);
    • В компоненте TnTrayIcon заменил FmxHandleToHWND((Self.Owner as TForm).Handle) на ApplicationHWND

    Но проблема стала другой, исконка исчезла, хотя место под неё выделилось, но при наведении мыши, выделенное место пропадает:

     

    Прикрепить картинку не смог, по этому ссылка на ЯД

     

    Перечитал несколько раз все советы, похоже что такая проблема только у меня, с чем это может быть связано?

     

    Извините, я забросил... Перебежал на QT...

  4. Создавайте через CreateDir

     

    Давненько не кодил, но если я не ошибаюсь, по пути TPath.GetHomePath Вы не сможете создать каталог в Run-time. Только чтение, так как это "служебный каталог" приложения, в который возможна запись новых файлов/директорий только в момент инсталляции приложения. К записи в созданные файлы это не относится.

  5. Для начала Вам необходимо получить Application.Handle Стандартными средствами это не возможно. Как это осуществить описано здесь

     

    После выполнения действий, перечисленных выше:

    ShowWindow(ApplicationHWND, SW_SHOW); // Показать
    ShowWindow(ApplicationHWND, SW_HIDE); // Скрыть
    
    
  6. Kitty, 

     

    На счет появления руководства на русском языке я сомневаюсь. Английский международный язык и англоговорящих пользователь значительно больше, чем русских. Поэтому проще выучить английский язык... 

     

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

  7.  

     

    Ох, обалдеть =))) Вы прикинули сколько машинного времени на это уходит ? =))) ... Но то, что Вы написали - жестко =)

    :D :D

    Я не то что прикинул, я на своем довольно шустром Galaxy Note 2 заметил торможение при прокрутке.

    Была мысль через tag сделать, но решил что это както примитивно и есть способ лучше.

    Но видимо через tag пока само лучше.

     

    Вы гений рациональности и оптимизации :);)

     

    P.S. не смотрел исходники TListBox'a, но, как мне кажется, ItemByIndex использует цикл. Но предполагаю, что все равно будет в много много раз быстрее, чем то, что изложено в первых рядах :)

  8. Ох, обалдеть =))) Вы прикинули сколько машинного времени на это уходит ? =))) Используйте лучше свойство "Tag" при создании item'a, если хотите примитива. Но то, что Вы написали - жестко =)

     

    P.S. при создании listboxitem записывайте его индекс в поле Tag объекта TSpinBox. Как то так:

    ...
    SB := Sender as TSpinBox; // Получили Sender из TSpinBox
    if Assigned(SB) and (SB is TSpinBox) then 
    begin
      Item := ListBox1.ItemByIndex(SB.Tag) as TListBoxItem;
    ...
    
    

    И естественно не забывать при удалении item'a (item'ов) редактировать поля Tag у остальных TSpinBox

  9. Можно и так, в компоненте не дублируется создание второй иконки. Но не желательно - лишняя нагрузка. Мы же любим оптимизированный софт =)

     

    P.S. если Вы правили исходник среды FM, то проблема с "расположением позади taskbar" так же должна исчезнуть. Проверьте.

  10. Рад что Вы разобрались =)

     

    P.S. если Вы модифицировали исходник, то можете добавить процедуры для Show и Hide:

    ShowWindow(ApplicationHWND, SW_HIDE); // cкрыть из таскбар 
    ShowWindow(ApplicationHWND, SW_SHOW); // показать в таскбар
    
  11. Мне долго объяснять что это даст, если Вы не понимаете как ведет себя среда FM. Я лучше подскажу как решить проблему иначе, не изменяя исходников вообще:

     

    1. Убрать при создании формы операцию nTrayIcon1.Show;

    2. Добавить таймер с интервалом минимум 10 мс

    3. В событии тамера: nTrayIcon1.Show -> Отключаем таймер.

     

    Всё. Проверил - работает.

  12. Нужно:

    procedure TnTrayIcon.Show;
    begin
      mHWND := FmxHandleToHWND((Self.Owner as TForm).Handle); <<< ---------- ApplicationHWND;
      mPopUpMenu := nTrayMenu;
      mIndent := nIndent;
    .....................
    
    

    Вот это:

    mHWND := FmxHandleToHWND((Self.Owner as TForm).Handle);
    

    Изменить на это:

    mHWND := ApplicationHWND;
    
  13. Пока в FM нет возможности "из коробки" вытащить Handle Application наружу - это не возможно. Можно модифицировать самому исходник среды FM, и я могу вписать функцию в исходник компонента, но тогда он будет работать только у тех, у кого модифицирован исходник среды FM. Это не есть хорошо. Ярослав говорил, что якобы в след. версии студии реализуют такую возможность - тогда компонент можно модифицировать и развивать. Пока не вижу смысла.

  14. Ну так сместите прямо к границе и не будет проблемы с отображением. А по поводу исчезновения иконки при прозрачной форме - да. Есть такое дело, только что проверил.

  15. Вы за кого меня принимаете ? Посмотрите на досуге исходники FM, если они у Вас есть... Еще раз повторюсь "Изначально я не расчитывал, что меню будет располагаться поверх таскбара, только НАД таскбаром" т.е. на границе TaskBar и WorkArea.

     

    P.S. что за ось Z ? Мы работаем в плоскости, где только 2 направляющие X,Y

  16. Ident задает смещение, что значит причем ? если у Вас таскбар расположен сверху, то ident должен иметь отрицательное значение, к примеру -NN

    Этот компонент написан на скорую руку. Хотите модернизировать - все Вам скажут спасибо. Добавьте функцию определения позиции таскбара, к примеру. Изначально я не расчитывал, что меню будет располагаться поверх таскбара, только НАД таскбаром. В FM это сделать не легко.

×
×
  • Создать...