nassl

Пользователи
  • Публикаций

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

  • Посещение

Весь контент nassl

  1. nassl

    Символы векторов

    Хочется вывести кусочек математического текста (должны быть значки векторов над буквами \vec(F) - латех) на форму в перемежку с парой картинок. Конечно, идеально иметь компонент с Latex, но вряд ли появится. Пока смог придумать генерировать html текст и кидать его в WebBrowser. Еще вопрос: Слой на котором лежит компонент TWebBrowser должен обработать жест "влево". Этот жест не проходит если WebBrowser. Visible:=true, причем WebBrowser. HitTest:=false. Как справить? try HTMLPage.Add('<!DOCTYPE html>'); HTMLPage.Add('<html>'); HTMLPage.Add('<head>'); HTMLPage.Add('<style type=''text/css''>'); HTMLPage.Add('.arrow {margin-left: -13px;}'); HTMLPage.Add('.arrow::before {content:''\2192''; position: relative; top: -11px;left: 13px;}'); HTMLPage.Add('</style>'); HTMLPage.Add('</head>'); HTMLPage.Add('<body>'); HTMLPage.Add('<p>some text <span class="arrow">F</span> some text</p>'); HTMLPage.Add('</body>'); HTMLPage.Add('</html>'); TemporaryFileName:=TPath.GetTempPath+TEMP_FILE_NAME; HTMLPage.SaveToFile(TemporaryFileName); WebBrowser1.URL:=Format(FILE_URL_OPEN_FILE,[TemporaryFileName]); finally HTMLPage.Free; получается такой html <!DOCTYPE html> <html> <head> <title>Проба</title> <style type='text/css'> .arrow {margin-left: -13px;} .arrow::before {content:'\2192'; position: relative; top: -11px;left: 13px;} </style> </head> <body> <p>some text <span class="arrow">F</span> some text</p> </body> </html> Проблема в том, что WebBrowser эту страницу выводит без учета стилей css, хотя в обычном браузере все хорошо. Как можно решить проблему? /need help/
  2. nassl

    Символы векторов

    Конечно, глядя на эти костыли, хочется рыдать под одеялом. Поэтому улучшения приветствуются! Но этот код работает в TWebBrowser. Получается строка эквивалентная Latex'у m_1\vec{V}_1+m_2\vec{V}_2=m_1\vec{V}_1+m_2\vec{V}_2 Еще вопрос: Слой на котором лежит компонент TWebBrowser должен обработать жест "влево". Этот жест не проходит если WebBrowser. Visible:=true, причем WebBrowser. HitTest:=false. Как справить? const TEMP_FILE_NAME ='temp.html'; FILE_URL_OPEN_FILE ='file:/%s'; var HTMLPage :TStringList; TemporaryFileName: string; FS: UnicodeString; begin FS:='m<span class="_">1</span><span class="vec"><span class="arrow">&rarr;</span>V<span class="_">1</span></span> +' +'m<span class="_">2</span><span class="vec"><span class="arrow">&rarr;</span>V<span class="_">2</span></span> =' +'m<span class="_">1</span><span class="vec"><span class="arrow">&rarr;</span>V<span class="_">1</span></span> +' +'m<span class="_">2</span><span class="vec"><span class="arrow">&rarr;</span>V<span class="_">2</span></span>'; HTMLPage:=TStringList.Create; try HTMLPage.Add('<!DOCTYPE html>'); HTMLPage.Add('<html>'); HTMLPage.Add('<head>'); HTMLPage.Add('<title>Test</title>'); HTMLPage.Add('<meta charset="UTF-8">'); HTMLPage.Add('<style type=''text/css''>'); HTMLPage.Add('.arrow{position: absolute; bottom:11px;}'); HTMLPage.Add('.vec{position: relative;}'); HTMLPage.Add('._{font: 80% sans-serif; position: relative; bottom: -8px;}'); HTMLPage.Add('.^{font: 80% sans-serif; position: relative; bottom: 8px;}'); HTMLPage.Add('</style>'); HTMLPage.Add('</head>'); HTMLPage.Add('<body>'); HTMLPage.Add('<p>Formulae:'+FS+'</p>'); HTMLPage.Add('</body>'); HTMLPage.Add('</html>'); TemporaryFileName:=TPath.GetTempPath+TEMP_FILE_NAME; HTMLPage.SaveToFile(TemporaryFileName); WebBrowser1.URL:=Format(FILE_URL_OPEN_FILE,[TemporaryFileName]); finally HTMLPage.Free;
  3. nassl

    Бегущая строка

    Как костыль: пробуй менять соответствующим образом сам текст Приве. .ривет
  4. Нужна помощь! Все перепробовал, не выходит каменный цветок... На форме лежит скрытый компонент THUETrackBar. Хочется реализовать следующий функционал на с++ (fmx): свайп вверх по любому месту экрана - делает компонент THUETrackBar видимым, и двигает его ползунок вверх, свайп вниз - соответственно вниз. этот код не фурычит в процессе свайпа, только по завершении void __fastcall TForm1::windGesture(TObject *Sender, const TGestureEventInfo &EventInfo, bool &Handled) { switch (EventInfo.GestureID) { case sgiUp: TmpBar->Visible=true; TmpBar->Value++; break; case sgiDown: TmpBar->Visible=true; TmpBar->Value--; break; case igiLongTap: TmpBar->Visible=true;Location_x=EventInfo.Location.x; break; } } Хотел использовать свойство EventInfo.Location.x, но значение меняется только по окончании свайпа.
  5. Отвечу сам себе, чтобы не потерять . Итак, хочется ловить жесты влево, вправо и после лонгтап считывать координаты точки касания. В частности изменяется размер TImage, который скрывается по окончании свайпа запуском анимации в которой Opacity меняется от 1 до 0}. TPointF P, OldP; void __fastcall TForm1::FormGesture(TObject *Sender, const TGestureEventInfo &EventInfo, bool &Handled) { if (EventInfo.Flags.Contains(TInteractiveGestureFlag::gfBegin)) { switch (EventInfo.GestureID) { case igiLongTap: OldP.y=EventInfo.Location.y; OldP.x=EventInfo.Location.x; } } else if(EventInfo.Flags.Contains(TInteractiveGestureFlag::gfEnd)) {//Жест закончен - не убирать, иначе не сработает TTouchAction::Up } else {switch (EventInfo.GestureID) {case sgiRight: DosomethingRight(); break; case sgiLeft: DosomethingLeft(); break; case igiPan: P.y=EventInfo.Location.y; P.x=EventInfo.Location.x; break; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormTouch(TObject *Sender, const TTouches Touches, const TTouchAction Action) {if (Action==TTouchAction::Up) //Палец убран {// Обработка концовки свайпа, например FloatAnimation1->Start(); } } void __fastcall TForm1::FloatAnimation1Finish(TObject *Sender) { Image->Visible=false;Image->Opacity=1;} ........................................................... PS советы по улучшению кода приветствуются, но у меня получилось так.
  6. nassl

    Настройки RAD studio 10.3

    Возможно не по теме форума вопросы, но может кто знает, как сбросить настройки rad студии на дефолтные. Где-то натыкал, теперь 1) ctrl v срабатывает page doun, не удаляет выделенные фрагменты del-ом и т.д. 2) подсказка кода по ctl пробел показывает все, что угодно, но не в тему. 3) Основная проблема, пустой проект с дефолтными настройками не компилируется, ошибки на string.h
  7. Отвечу себе сам. Для сброса Rad Studio 10.3 к дефолтным настройкам удаляем раздел реестра HKEY_CURRENT_USER\Software\Embarcadero\BDS\20.0 После перегрузки системы все будет OK.
  8. nassl

    Размеры TImage

    Привет, как правильно менять размеры изображения в runtime в fmx. TImagе лежит на форме, в него загружена картинка. Казалось бы: 1) Image->Width=w; Image->Height=w; // ставим размер w=30 или 60 2) Image->Bitmap->Width=w; Image->Bitmap->Height=w; Если только первая строка, то виндой работает, под андроид глюки, картинка при увеличении c 30 до 60 клонируется, в прямоугольнике 60x60. Хотя WrapMode - fit и MarginWrapMode - fit. Со второй строкой - черные квадраты. ============================================== Продолжаю искать ошибку, стало еще не понятнее. Имеется переменная sphW, с размером Image (квадратный). sphW =Image->Width; При выполнении sphW=w; // w целое значение изменяется размер картинки. Магия, ничего не понимаю.
  9. nassl

    Размеры TImage

    спасибо, за ответ, указатели не причем. Размер менялся при отрисовке на внутренний битмап посредством DrawBitmap(....), в котором конечный TRect был c новыми размерами sphW.
  10. Помогите решить проблему. Русую на канве компонента TPanel . Для этого создаю Bitmap в буфере, с размерами TPanel. Размеры считываю внутри FormCreate. Конкретно получается ширина 624 на 463. Потом запускаются таймеры с событиями OnPaint для этого компонента, после чего размеры компонента уже 611 на 411 (пробовал panel->Width, panel->Height, а также и panel->BoundsRect). Но Bitmap с фоном уже существует, и он большего чем нужно. Как сразу отследить правильные размеры компонента? Форма на весь экран - андроид.
  11. Спасибо, тоже дошел до этого, через отладчик.