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

vasilius

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

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

  • Посещение

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

    2

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

  1. В 29.11.2019 в 21:11, Tumaso сказал:

    Вы можете самостоятельно реализовать собственную библиотеку для разработчиков C++, и получите почет, уважение и деньги

    А может мне создать, собственный, целый мир без таких умников и подлиз, как Вы?  ...но нет, продолжу и дальше заниматься, своим делом... 

  2. 17 часов назад, Brovin Yaroslav сказал:

     поддержка macOS 64 bit была добавлена уже давно в. Update 2

    Просто Вы мыслете в формате Делфи...  А есть те, кто мыслит в формате С++...

    Ваш FGX, судя по всему, идет тем же путем - игнорирование разработчиков на С++.... ну или в последнюю очередь...

     

  3. Здравствуйте!

     

    есть прогресс бар с таким стилем :

    object TRectangle
      StyleName = 'htrack'
      Align = Client
      Fill.Color = claSteelblue
      Sides = []
      Size.Width = 193.000000000000000000
      Size.Height = 17.000000000000000000
      Size.PlatformDefault = False
      Stroke.Color = claNull
      XRadius = 1.000000000000000000
      YRadius = 1.000000000000000000
      object TRectangle
        StyleName = 'hindicator'
        Align = Left
        Fill.Kind = Gradient
        Fill.Gradient.Points = <
          item
            Color = xFF24C137
            Offset = 0.000000000000000000
          end
          item
            Color = xFF04E31A
            Offset = 0.844720482826232900
          end
          item
            Color = xFF04E31B
            Offset = 1.000000000000000000
          end>
        Fill.Gradient.StartPosition.Y = 0.500000000000000000
        Fill.Gradient.StopPosition.X = 1.000000000000000000
        Fill.Gradient.StopPosition.Y = 0.500000000000000000
        Sides = []
        Size.Width = 138.000000000000000000
        Size.Height = 17.000000000000000000
        Size.PlatformDefault = False
        Stroke.Color = claSteelblue
      end
    end

    то есть , это обычный прогрес бар где htrack и hindicator сделаны на базе rectangle

    у ползунка заполнение цветом делается через градиент

    и нужно динамически менять этот градиент

    делаю это так:
     

    		pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[0].Color"] = TValue::_op_Implicit(0xFF24C137);
    		pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[1].Color"] = TValue::_op_Implicit(0xFF04E31A);
    		pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[2].Color"] = TValue::_op_Implicit(0xFF04E31B);
    
    		if (inLed > -6.00f)
    		{
    			pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[1].Color"] = TValue::_op_Implicit(claRed);
    			pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[0].Color"] = TValue::_op_Implicit(claBlack);
    		}
    		if (inLed > -1.00f)	pbInputLevel->StylesData["hindicator.Fill.Gradient.Points[1].Color"] = TValue::_op_Implicit(claRed);

    работает странно и вываливается exception

    raised exception class EPropWriteOnly with message 'Color'.

    Есть идеи как менять градиент на лету правильно?

     

     

  4. Здравствуйте

    Спасибо. Это решение имеет право на жизнь , хоть и не очевидное (само решение)

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

      TPointF pos = TPointF(0, btnBackup->Height + 1);
      pos = btnBackup->LocalToAbsolute(pos);
      pos = Screen->ActiveForm->ClientToScreen(pos);
      pmenBackup->Popup(pos.X, pos.Y);
     

    Если есть еще варианты - был бы рад 

     

    Спасибо

  5. Здравствуйте

    Туплю видимо : не могу найти как сделать кнопку с выпадающим меню

    При нажатии ЛКМ на кнопку хочется чтобы появлялось меню

    Есть ли такой стандартный контрол.  Перед тем как извращатся решил уточнить, чтобы не создавать велосипед

    Заранее спасибо

     

     

  6. Принимаю поздравления...

    Начал переносить код с нерабочего проекта в рабочий (который запускался)...

    у меня в Create было заполнение поля стиля...

    тип значения TValue 

    у меня было

     =  TValue::From<String>("0"); 

     этот код нормально работал без линковки - все было хорошо

    с линковкой вылазил Access violation описаный выше

    решение такое :

    =  TValue::_op_Implicit(String("0"));

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

     

  7. 6 часов назад, kami сказал:

    Свалиться при инициализации ImageList, даже не доходя до своего кода - ну, это я не знаю :))) Может, винду переустановить? (шутка).

    Я создал чистый проект подобавлял все компоненты, которые используются в текущем, 

    Втом числе и ДЛЛ , убрал линковку пакеджей и RTL - проект запускается . Технология работает. Тоест дело не в ДЛЛ. 

    Но в моем проекта проблема осталась...

    Посмотрире на скриншот выше, там дело до ImageList не доходит... и ИмеджЛист может быть Dialogs или что-то другое - тут как компилятор делает... по разному бывает

    Вот скрин с дебагера под Вин32 - он более понятный, чем с дебагера под вин64 -)))

     

    Ошибка в модуле System

    class function TMonitor.GetFieldAddress(const AObject: TObject): PPMonitor;
    begin
      Result := GetMonitorFieldAddress(AObject);
    end;

     

    До моего кода дело не доходит...

    Цитата

    First chance exception at $0044303C. Exception class $C0000005 with message 'access violation at 0x0044303c: read of address 0x00000000'.

     

    58cc02[1].jpg

  8. Вы имеете ввиду этот список?

    На счет access violation я бы с удовольствием разобрался, но как видно с скринов - там до моего кода дело не доходит....

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

     

    53c79d[1].jpg

  9. 5 минут назад, kami сказал:

    Нажать Break и посмотреть по стеку вызовов - где начинается ваш код.

    Спасибо,что стараетесь помочь, но видимо Вам не совсем понятна суть проблемы...

    В любом случае, буду благодарен за полезные советы

     

    d38b62[1].jpg

  10. 14 минут назад, Tumaso сказал:

    Ммм, может вы запустите свое приложение в режиме отладки и найдете место, инициирующее исключение?

    Ммм... может подскажите как....

    Исключение только, если Link with runtime packages = False

     

     

     

    79b60e[1].jpg

  11. 10 часов назад, dnekrasov сказал:

    В свойствах проекта укажите "Link with runtime packages = False"

    Перед тем, как создать топик, я погуглил

    Совет аналогичный Вашему встречается часто... Я убираю эту галочку но проэкт стартует с ексепшеном

    5be75d[1].jpg

     

    так же пробовал разные комбинации этого с этим

    ea2c93.jpg

    Размер ехе растет, но не запускается - всегда аксес виолейшен

     

    3 часа назад, kami сказал:

    Вы используете передачу небезопасных параметров между exe и dll?

    Зря.

    Я лично не использую, но я использую компонент, который является оберткой для hidapi.dll - это длл для работы с HID USB мультиплатформенная... Вот за внутренности этой обертки я ручаться не могу...

  12. Здравсвтуйте

     

    Приложение на FMX под win32, win64 требует наличие таких библиотек

    fmx250.bpl
    FMXTee9250.bpl
    IndyCore250.bpl
    IndySystem250.bpl
    rtl250.bpl

    borlndmm.dll

     

    Можно скомпилировать проэкт так, чтобы все библиотеки были прилинкованы в ЕХЕ? Чтобы не таскать за собой bpl

     

    Спасибо

     

     

     

  13. 11 минут назад, dnekrasov сказал:

    Попробуйте указать полный путь к шрифту, а не только его имя файла. 

    скопировал шрифт в корень диска С

    #ifdef _WIN32
    	int res = AddFontResourceEx(L"C:\4960.ttf", FR_NOT_ENUM , NULL);
    #endif
    
    	try {
    		Application->Initialize();
    		Application->CreateForm(__classid(TForm2), &Form2);
    		Application->Run();
    	}
    	catch (Exception &exception) {
    		Application->ShowException(&exception);
    	}
    	catch (...) {
    		try {
    			throw Exception("");
    		}
    		catch (Exception &exception) {
    			Application->ShowException(&exception);
    		}
    	}
    	return 0;

    все-равно не работает

  14. Вот скриншоты

    В проекте перед всеми инитами делаю

    #ifdef _WIN32
    	int res = AddFontResourceEx(L"4960.ttf", FR_NOT_ENUM , NULL);
    #endif
    
    	try {
    		Application->Initialize();
    		Application->CreateForm(__classid(TForm2), &Form2);
    		Application->Run();
    	}
    	catch (Exception &exception) {
    		Application->ShowException(&exception);
    	}
    	catch (...) {
    		try {
    			throw Exception("");
    		}
    		catch (Exception &exception) {
    			Application->ShowException(&exception);
    		}
    	}
    	return 0;

    на скриншоте показано, что res == 1 - тоесть ф-ция удачно выполнилась

    дальше по нажатию на кнопку пытаюсь поменять шрифт

    Label55->TextSettings->Font->Family = "5x5 Dots";

    StyledSettings все выключены - показано на скрине - в результате ничего.... -(

    b1dc25[1].jpg

    b1c7ba[1].jpg

  15. В 01.05.2017 в 11:15, dnekrasov сказал:

    В Berlin и Tokyo AddFontResource и RemoveFontResource прекрасно отрабатывают, только вызывать их надо до Application.Run.

    Кстати, лучше использовать  AddFontResourceEx и RemoveFontResourceEx с флагом FR_NOT_ENUM - тогда надобность в SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) отпадает.

    Токио, Билдер... не работает

        AddFontResourceEx(L"4960.ttf", FR_PRIVATE , NULL);

        try {
            Application->Initialize();
            Application->CreateForm(__classid(TForm2), &Form2);
            Application->Run();
        }

    проверка

     

      TStrings * FontList;
      HDC dContext;
      LOGFONT * LFont;

      dContext = GetDC(0);
      LFont = new LOGFONT();
      LFont->lfCharSet = DEFAULT_CHARSET;

      EnumFontFamiliesEx(dContext, LFont, (FONTENUMPROC)&EnumFontsList, LPARAM(Memo1->Lines), 0);
      ReleaseDC(0, dContext);
      Label55->TextSettings->Font->Family = "5x5 Dots";
     

    в списке фонт появляется, но к контролам не применяется

    если   делать через FR_NOT_ENUM, то в списке даже не появляется и тоже не работает

     

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