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

egorea1999

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

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

  • Посещение

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

  1. Как-то вы поступили очень грубо :)

    В ваших целях достаточно было воспользоваться директивами препроцессора:

    http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/compdirsmemoryallocsizes_xml.html

     

    type
      TTh = class(TThread)
      protected
        procedure Execute; override;
      end;
    
    implementation
    
    procedure Do;
    var
      I: Integer;
    begin
      for I := 1 to 5000 do
        TTh.Create(False);
    end;
    
    { TTh }
    
    {$M 16384, 65535}
    procedure TTh.Execute;
    begin
      while True do
        Sleep(50);
    end;

     

  2. 2017-01-13_003234.png

    6 часов назад, des80 сказал:

    ты дурак или нет?

     

    1.У меня уже есть проект, в котором 100 форм, я прекрасно знаю как это сделать, я прекрасно знаю что мне нужно прописать ApplyFontToForm в OnShow каждой формы, но мне придется делать это 100 раз, а я задал здесь этот вопрос, чтобы узнать можно ли ОДИН раз задать что Arial это дефолтный шрифт, шрифт по умолчанию. Во всех 100 формах у меня везде шрифт прописан (default). А что это за шрифт default? какой шрифт по факту туда подставляется? и можно ли ЗАМЕНИТЬ этот шрифт по умолчанию. Этот шрифт задается в настройках винды? или его можно задать отдельно в моей программе?

    2.Ок, я написал 100 раз на 100 формах ApplyFontToForm в OnShow. А потом у меня создаются кнопки и лабелы после выполнения этого кода и на ней будет стандартный шрифт, а не тот который я задал в ApplyFontToForm. Да я могу без проблем задать шрифт при создании компонента, но КОД УЖЕ НАПИСАН И ЕГО МНОГО и мне опять таки мне придется это делать много много раз, во многих местах прописывать Familyfont='Arial'. Понимаешь, нет?

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

    6 часов назад, des80 сказал:

    .ничего не мешает, просто нужно в 100500 мест залезть в коде и прописать FontFamily:='Arial';

     

    Возьми dfm файлы и регулярками пройдись по свойствам.

    6 часов назад, des80 сказал:

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

     

    прицепи 1 обработчик на 100 форм. Какой - это уже сказали выше. Сам обработчик - в отдельный юнит. Ну далее, думаю, понятно.

     

    P.S.

    6 часов назад, des80 сказал:

    Этот шрифт задается в настройках винды?


    По секрету скажу: в BIOS'е.

     

  3. 15 минут назад, Kitty сказал:

     

    Как правильно картинку из TMemoryStream запихнуть в итем дефолтного ListBox-а через StylesData чтобы код из первого поста отработал и картинки были видны сразу?
    Если мой код из первого поста вставить в код билдера, вы увидите проблему в WIN64, ибо картинки на хостинге лежат и соответственно код живой…

    Под спойлером я оставил скриншот, там раскрывается проблема.

    >Проблема будет при кешировании стиля и восстановлении стиля из хеша

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

    Я хотел поковырять FMX, но вот желание отпало по некоторым причинам...

  4. 2 часа назад, Kitty сказал:

    А как все таки итему присвоить битмап через StylesData?

    var
      Img: TImage;
    begin
      Img := TImage.Create(nil);
      try
        Img.Bitmap.LoadFromFile(FileName);
        //Img.Bitmap.LoadFromStream();
        Button1.StylesData['Image.MultiResBitmap'] := Img.MultiResBitmap;
      finally
        Img.Free;
      end;
    end;

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

    Спойлер

     

     

    fmx.png

     

     

    bitmap.zip

  5. 27 минут назад, krapotkin сказал:

     

    3** Можно также запустить антизависательный таймер, который, если от потока не приходит вестей N секунд, прибивает поток и разблокирует кнопку

    Никогда не предлагайте таких вещей, надо делать всегда все правильно и без костылей, чтобы даже таких мыслей не возникало. Имхо.

  6. 1. Критическая секция, мониторы, семофоры-светофоры - пробовал? - один из способов

    2. Button.Enabled := False/True - самый простой способ

    3. Глобальный флаг

     

    P.S. Лучше отдели логику от интерфейса

  7. 42 минуты назад, OnePeople сказал:

    Может кто с питона на делфи переделать это

      Скрыть контент

     

    def i2osp(x, xLen):
            if x >= 256^xLen:
                raise ValueError("integer too large")
            digits = []

            while x:
                digits.append(int(x % 256))
                x //= 256
            for i in range(xLen - len(digits)):
                digits.append(0)
            return digits[::-1]

    def os2ip(X):
            xLen = len(X)
            X = X[::-1]
            x = 0
            for i in range(xLen):
                x += X * 256^i
            return x

     

     

    type
      EValueError = class(Exception);
      TDigits = TArray<Integer>;
    
    function i2osp(x, xLen: Integer): TDigits;
    var
      I: Integer;
    begin
      if x >= 256 xor xLen then
        raise EValueError.Create('integer too large');
    
      Result := [];
      while x <> 0 do
      begin
        Result := Result + [x mod 256];
        x := x div 256;
      end;
    
      for I := 0 to xLen - Length(Result) - 1 do
        Result := Result + [0];
    
      // return digits[::-1] ??
      // SetLength(Result, Length(Result) - 1) ??
    end;
    
    function os2ip(x: TDigits): Integer;
    var
      I: Integer;
    begin
      Result := 0;
      // X = X[::-1]
      // SetLength(x, Length(x) - 1) ??
      for I := 0 to Length(x) - 1 do
        Result := Result + (Result * 256 xor I);
    end;

    Не претендую на правильный код, но как-то так, что осталось для меня непонятным, так это [::-1]

  8. В 22.10.2016 в 19:30, Alex7wrt сказал:

    В некоторых приложениях под Android, в частности ES проводник, есть возможность быстрой оценки приложения, когда не выходя из него, без перехода на Google Play, можно выбрать от 1 до 5 звезд. 
    Можно ли это организовать с помощью FMX?

    Может, если пользователь как-то авторизован в гугл-плее, то ему предоставляется такая возможность, сам процесс авторизации - вопрос другой.

  9. В 25.11.2016 в 16:23, Rusland сказал:

    Действительно почему-то едет на Андроиде. Скорее всего в самой картинке есть какое-то смещение.

    Вангую, что дело в Scal'е.

  10. 15 минут назад, Steepe_Hare сказал:

    А не подскажете, какое свойство отвечает за цвет выделенного  ListBoxItem?

    Выделенного? Вам нужно редактировать стиль TListBoxItem'a, чтобы настроить его вид.

  11. Только что, Steepe_Hare сказал:

    Спасибо, помогло. Только непонятно зачем так нужно делать

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

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