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

Ильдар

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

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

  • Посещение

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

    2

Ильдар стал победителем дня 20 декабря 2020

Ильдар имел наиболее популярный контент!

Посетители профиля

871 просмотр профиля
  1. Добрый день всем, Прошу помощи знающих: Использую TidTCPClient, отрабатываю потерю связи в процессе работы (втупую выдергиваю провод). procedure TClient.onTimer(Sender: TObject); begin try self.FunctionRead(0); except self.Timer.Enabled:= FALSE; inc(self.cntErr); end; end; Получаю каскад сообщений "Socket Error: 10054" т.к. блок except не вызывается. 1. Каким образом отключить окна сообщений об ошибке? (т.к. пользователю они в общем-то ни к чему) 2. Каким образом корректно отловить эти ошибки, чтобы перезапустить соединение? 3. Где вообще почитать информацию о Indy в FMX 10.3? Заранее спасибо!
  2. в компоненте создать таймер в котором проверять/обрабатывать изменение положения?
  3. self.Label1.StyledSettings:= self.Label1.StyledSettings - [TStyledSetting.FontColor]; self.Label1.FontColor:= TAlphaColorrec.Red; Можно просто отключить стилизацию.
  4. Ильдар

    PopUp и Canvas

    Это понятно. Тут больше хотелось разобраться в специфике работы/взаимодействия канвы и компонентов. Просто я был уверен, что это я где-то что-то некорректно делаю.
  5. Ильдар

    PopUp и Canvas

    Это не очень вариант, создавать костыли, чтобы разгребать костыли с подсветкой выбора айтемов. Но в любом случае большое спасибо за участие. Попробую дома пересобрать в другой версии среды.
  6. Ильдар

    PopUp и Canvas

    Не пойдет, 1) При присваивании nil'a по вызову меню затирается вся канва ректангла. 2) Если АOwner другой компонент - ситуация та же, пустой прямоугольник в левом верхнем углу. 3) Если AOwner другой невидимый компонент - проблемы с канвой ректангла нет, все работает отлично. Но возникает новая штука - при наведении на айтемы меню - они не подсвечиваются.
  7. Ильдар

    PopUp и Canvas

    График отрисовывается на канве ректангла по таймеру.. Создаем PopUp меню: PopUp:= TPopUpMenu.Create(AOwner); PopUp.Parent:= TFMXObject(AOwner); ItemFormSet:= TMenuItem.Create(PopUp); ItemFormSet.Parent:= PopUp; ItemFormSet.Tag:= 1; ItemFormSet.text:= 'Item 1'; ItemFormSet.OnClick:= self.MenuClicks; ..... ItemLegend:= TMenuItem.Create(PopUp); ItemLegend.Parent:= PopUp; ItemLegend.Tag:= 3; ItemLegend.text:= 'Item 3'; ItemLegend.OnClick:= self.MenuClicks; Rectangle.PopupMenu:= self.PopUp; При вызове PopUp правой клавишей - получаем вот такой "чистый" прямоугольник в левом верхнем углу. Соответственно он исчезает только при следующей перерисовке кадра. (даже если перерисовывать с высокой частотой, все равно при вызове меню видно мелькание в левом углу). Такое ощущение, что при вызове меню - оно создается и отображается там, затирая под собой канву а потом перемещается к координатам мыши. Если в меню PopUp'a содержится один item - прямоугольника нет. Начиная с добавления второго - он появляется и чем больше Item'ов тем он больше в высоту. Собственно вопрос в том, как от этого эффекта избавиться?
  8. Ильдар

    Bitmap DrawLine

    Черным, по дефолту) Если тут поменять bm на Panel - на канве панели исправно рисуется черная линия. procedure TChart.Draw2; var A,B:TPointF; begin A:=TPointF.Create(0,0); B:=TPointF.Create(200, 200); bm.Canvas.BeginScene(); bm.Canvas.DrawLine(A,B,1); bm.Canvas.EndScene; end; Прогуглил немного, раньше надо было обязательно добавлять bitmapchanged; но в 10.2 он вроде не доступен. Может, рисование на канве контрола и рисование на битмапе отличается чем то?
  9. Ильдар

    Bitmap DrawLine

    Добрый день, идеология такая: - создать битмап, рисовать на нем, не делая его видимым. - нашлепать на канву панели подготовленный битмап. На деле не получается нарисовать линию на битмапе. Т.е после процедуры Draw2 прожимаю процедуру Draw - получаю на панели красный прямоугольник битмапа без нарисованной линии... Посоветуйте чего-нибуть, спасибо! //BITMAP Bm:= TBitmap.Create; bm.Width:= round (Panel.Width/2); bm.Height:= round (Panel.Height/2); bm.Canvas.BeginScene(); bm.Canvas.Clear(TAlphacolorrec.Red); //($FF484848); bm.Canvas.EndScene; procedure TChart.Draw2; var A,B:TPointF; begin A:=TPointF.Create(0,0); B:=TPointF.Create(200, 200); bm.Canvas.BeginScene(); bm.Canvas.DrawLine(A,B,1); bm.Canvas.EndScene; end; procedure TChart.Draw; var A: TPointF; R: TRectF; begin A.X:= Panel.Position.X+3; A.Y:= Panel.Position.Y+3; R:= TRectF.Create(A, bm.Width , bm.Height); panel.Canvas.BeginScene(); Panel.Canvas.DrawBitmap(bm,r,r, 20); panel.Canvas.EndScene; end;
  10. При использовании стилей (TStyleBook) не всплывают вложенные итемы. Если стиль отключить - все работает. Кто-то сталкивался? Embarcadero® Delphi 10.2 Version 25.0.26309.314
  11. Ильдар

    Canvas,

    Потому, что эта часть быдлокода к проблеме не относится) Сейчас интересует как корректно очистить канву компонента FMX...
  12. Ильдар

    Canvas,

    нет ( с ними все норм
  13. Ильдар

    Canvas,

    Костыль - само собой) Но это уже верное направление. Это я пробовал еще до репэйнта. Тогда белым заливается вся форма. Стираются прочие элементы формы. объявление Чарта: TChart = class Panel: TPanel; public constructor Create (AOwner:TForm; W,H,X,Y:integer); procedure DrawGrid (cell: integer); procedure DrawLine (p1, p2: TPointF); procedure DrawSeries (Series: TSeries); procedure Clear; end; Процедура очищения: procedure TChart.Clear; begin panel.Canvas.BeginScene(); self.panel.Canvas.Clear(TAlphaColorRec.White); panel.Canvas.EndScene; end;
×
×
  • Создать...