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

Winexcel

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

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

  • Посещение

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

  1. В 07.02.2018 в 00:13, wamaco сказал:

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

    Это стандартное поведение ОС. Вам надо запретить запуск второй копии приложения просто!

    Можете дать ссылку на документацию msdn где такое написано? Первый раз слышу

  2. Здравствуйте, хотелось бы задать подобный вопрос пользователя AlexG.

     

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

    Вот так выглядит на панели задач иконка после запуска приложения:

    1.png.7bda239d59b8f2282e7c550dc28c6add.png

    Вот так она выглядит когда мы свернули приложение:

    2.png.634aacd2561b78e0f6c5fa9a1537f82d.png

    И вот так она выглядит когда мы делаем клик по иконки на панели задач чтобы развернуть приложение:

     

    3.png.299958b339649168724f4b818bd63fdc.png

     

    Знает кто-нибудь как решить?

    Код Project.drp:

    begin
      Application.Initialize;
      Application.CreateForm(TForm2, Form2);
      ShowWindow(FMX.Platform.Win.ApplicationHWND, SW_HIDE);
      Application.Run;
    end.

    Код формы:

    unit Unit2;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Controls.Presentation, FMX.StdCtrls, Unit3, Winapi.Windows, Winapi.Messages, FMX.Platform.Win, ComObj;
    
    type
      TForm2 = class(TForm)
        procedure CreateHandle; override;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form2: TForm2;
    
    implementation
    
    {$R *.fmx}
    
    procedure TForm2.CreateHandle;
    begin
     inherited CreateHandle;
      SetWindowLong(WindowHandleToPlatform(Handle).Wnd, GWL_EXSTYLE,
        GetWindowLong(WindowHandleToPlatform(Handle).Wnd, GWL_EXSTYLE) or WS_EX_APPWINDOW);
    end;
    
    
    end.

     

  3. Здравствуйте, объясните пожалуйста разницу между вызовами

    TThread.Synchronize(nil, procedure begin {код работающий с FMX компонентами} end);
    
    TThread.Synchronize(TThread.Current, procedure begin {код работающий с FMX компонентами} end);

    Это одно и тоже или есть разница какая-то важная?

  4. Здравствуйте! Имеется следующая задача: нужно поставить кнопку button2 по центру первой панели используя свойство Position. Прикрепил скрин изначального расположения компонентов.

    Как пробовал сам? Хотел переконвертировать координаты центра Panel1 и затем присвоить их в свойство Position Button2 следующим образом:

    var
      PointP:TPointF;
    begin
      PointP:=PointF((Panel1.Width/2)-(Button2.Width/2), 0);
      PointP:=Panel1.LocalToAbsolute(PointP);
      PointP:=Button2.AbsoluteToLocal(PointP);
      Button2.Position.X:=PointP.X;

    Но кнопка не встает по центру, что я сделал не правильно?

    ScreenShot.png

  5. Здравствуйте! Знает ли кто как можно настроить отступы слева айтемов которые вложены в другой айтем в TreeView?

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

     

     

    tHv8PjCWgiA.jpg

    ScreenShot.png

  6. Здравствуйте, собственно сабж, интересует как сделать чтобы при наведении на кнопку эффекты применялись именно когда мышь наведена на круг. Пробовал сделать так:

    Через стили добавил TRectangle с бордер радиусом, в него положил кнопку..

    Но при наведении на такую кнопку она все равно прямоугольная, и края прямоугольника реагируют при наведении мыши..

     

  7. В 30.06.2017 в 09:38, Равиль Зарипов (ZuBy) сказал:

     

    Добрый день! :)
    Пробую присвоить стиль всем Item так:
     

      List:=TStringList.Create;
      List.Add('Test1');
      List.Add('Test2');
      List.Add('Test3');
      for I := 0 to List.Count-1 do
      begin
        Item:=TListBoxItem.Create(nil);
        Item.Text:=List[i];
        Combo.ListBox.AddObject(Item); 
        Item.StyleLookup:='ListBoxItemStyle2';
        Item.NeedStyleLookup;
      end;
      List.Clear;
      List.Free;

    Но все равно по умолчанию применяется стиль ListBoxItemStyle, что нужно сделать чтобы применить стиль?

  8. Здравствуйте! Помогите пожалуйста советом или кодом кто знает.

    Требуется создать Popup окно которое будет "прилипать к какому либо контролу на форме, и вести себя как ws_child(при перемещении окна попап также перемещается синхронно с окном родителем и сворачивается).

    Как создавать окно не важно, винапи или средствами fmx, главное чтобы у окна был handle и на него можно было что-то положить средствами winapi.

    -Для чего это нужно?

    -Я имею полностью прозрачную форму на которой находятся компоненты, если создавать окно со стилем ws_child то такое окно тоже будет полностью прозрачным в отличие от окна со стилем ws_popup.

  9. 27 минут назад, Равиль Зарипов (ZuBy) сказал:

    да можно получить ListBox и его элементы и присвоить нужные стили

    А можно пример как вообще получить доступ к всплывающему ListBox? Или нужно сам комбобокс переписывать?

  10. Понял я вот что, в popup окне которое всплывает под комбобоксом находится ListBox, поэтому он и берет стиль от ListBoxStyle.
    Вопрос следующий: можно ли как-то задать свой стиль для всплывающего ListBox который используется вместе с компонентом TComboBox?

  11. Здравствуйте, стилизую TComboBox, хочу понять как сделать сабж через стили. И хотелось бы ещё получить ответ почему:
    в ComboBox при наведении на любой айтем подстветка используется от ListBoxItemStyle - > Selection из стилей.

  12. Можно ли в TListBox как-то реализовать PullToRefresh? Хочу чтобы когда вертикальный скроллбар доводился до конца срабатывало сообщение например(ShowMessage('bb');), возможно ли такое сделать? И если да то как?

  13. Здравствуйте, хотел бы получить советы как правильно удалять TTreeViewItem(и не только его, вопрос скорее общий для всех подобных случаев), если стилизовал данный объект, стиль изменен следующим образом:
    К стандартному стилю просто добавлена кнопка, которая подразумевает что при нажатии на неё данный TTreeViewItem будет удалятся из дерева и выгружатся из памяти(DisposeOf).

    Хотел бы получить советы как сделать такое удаление правильным, ведь не верно же писать в обработчике такой кнопки удаление данного айтема верно? Если поставить EurekaLog то можно явно увидеть что это исключение/ошибка под название EUserAfterFreeError.

    Как пример проще если не прибегать к стилизации:
    На форму положили обычную кнопку TButton, допустим что она называется Button1, в обработчике написали:

    procedure Button1Click(Sender: TObject);
    begin
      Button1.DisposeOf;
    end;

     

    При таком подходе получим ошибку о чем нас уведомит EurekaLog: EUserAfterFreeError

  14. 1 час назад, RoschinSpb сказал:

    Вы уверены, что это хорошая идея? Когда много уровней вложенности есть хороший шанс вообще не увидеть веток дерева. В какой-то версии TTreeView исправлялся так, чтобы текст не обрезался. А Вы хотите вернуть такое поведение назад?
    Item1
      SubItem1
        SubItem2
          SubIte
            SubI
              Su
                ...

       

     

     

    Всё верно, я хочу вернуть это поведение назад, потому что под мою задачу данное поведение подходит.

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