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

Александр Лукьянов (Filament Extruder 1.75)

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

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

  • Посещение

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

    1

Весь контент Александр Лукьянов (Filament Extruder 1.75)

  1. кое как определил сбойный участок. спасибо ребята. правильным порядком оказалось удаление кода/компонентов -когда совсем не понятно что происходит. код сначала выполняет тут (до create) procedure TForm1.MyResize(Sender: TObject); begin if TControl(Sender).Width < 120 then TControl(Sender).Width := 120; if TControl(Sender).Height < 120 then TControl(Sender).Height := 120; setWidhtHight(TControl(Sender).Width, TControl(Sender).Height); end;
  2. да, есть, но контрольная точка там не срабатывает. ошибка раньше возникает procedure TForm1.FormCreate(Sender: TObject); var st:TstringList; begin StringGrid1.OnDblClick := StringGrid1myDblClick; StringGrid2.OnDblClick := StringGrid2myDblClick; Form1.Profiles.SettingStream := TObjectList<TControl>.Create; Form1.Profiles.TypeName := TstringList.Create; Form1.Profiles.ActionList := TstringList.Create; Form1.Profiles.PropertList := TstringList.Create; Form1.EhomeSmartDir := GetEhomeSmartDir; // получаем директорию профилей // путь хранения C:\Users\Public\Documents\Fuzy for Windows Form1.SetupDir := System.SysUtils.ExtractFilePath(paramStr(0)); // путь установки программы
  3. Начал удалять компоненты и объекты с формы. ошибка уходит если с права удалить компонент панель у которой нет ни одного события, но есть ссылки на нее подобного рода. может быть какое то свойство исчезло или поменялось у компонента Panel
  4. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, Winapi.WinSock, Winapi.ShellAPI, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Media, FMX.Menus, FMX.ListBox, FMX.Objects, FMX.ExtCtrls, FMX.Layouts, FMX.Memo, Winapi.Windows, FMX.Platform, System.ImageList, FMX.ImgList, FMX.ListView.Types, FMX.ListView, FMX.Edit, FMX.Ani, registry, ShlObj, System.Generics.Collections, FMX.Presentation.Style, System.Rtti, FMX.Grid, Winapi.Tlhelp32, FMX.Grid.Style, FMX.ScrollBox,IdHTTP; type all = record SettingStream: TObjectList<TControl>; // сам объект TypeName: TstringList; // тип объекта для создания (TButton, Timage и так далее) ActionList: TstringList; // закрепленные за объектом действия PropertList: TstringList; // дополнительные свойства объекта end; type objChange = record Indx: integer; // индекс объекта относительно списка Prorep: string; // тип объекта для создания (TButton, Timage и так далее) Names: string; // имя компонента end; .................. procedure ControlClick(Sender: TObject); procedure ControlMouseMoveOnlyResize(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure ControlMouseMoveNoResize(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure ControlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure ControlMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure ControlMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure MyDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); procedure MyDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Operation: TDragOperation); procedure MyResize(Sender: TObject); ...................... procedure TForm1.ControlMouseMoveOnlyResize(Sender: TObject; Shift: TShiftState; X, Y: Single); const minWidth = 20; minHeight = 20; var newPos: TPoint; frmPoint: TPointF; h: integer; begin Form1.ComponentLastView := TControl(Sender).ComponentIndex; // последний компонент над котором была мышь if inReposition then begin // if ((Sender) is Tbutton) or ((Sender) is TLabel) or ((Sender) is TPanel) then begin GetCursorPos(newPos); Form1.ChangeFormIndex := true; // были изменения в форме if ssShift in Shift then begin // resize TControl(Sender).Cursor := crSizeNWSE; if X > minWidth then (Sender as TControl).Width := X; if Y > minHeight then (Sender as TControl).Height := Y; // обводку даем if Form1.Profiles.SettingStream.Count > 0 then begin Form1.Rectangle1.Parent := TControl(Sender).Parent; Form1.Rectangle1.Position.X := TControl(Sender).Position.X - 3; Form1.Rectangle1.Position.Y := TControl(Sender).Position.Y - 3; Form1.Rectangle1.Width := TControl(Sender).Width + 6; Form1.Rectangle1.Height := TControl(Sender).Height + 6; // угол поворота для обводки if (Sender is TImage) then begin Form1.Rectangle1.RotationAngle := TImage(Sender).RotationAngle; end; if (Sender is TLabel) then begin Form1.Rectangle1.RotationAngle := TLabel(Sender).RotationAngle; end; if (Sender is TButton) then begin Form1.Rectangle1.RotationAngle := TButton(Sender).RotationAngle; end; if (Sender is TSwitch) then begin Form1.Rectangle1.RotationAngle := TSwitch(Sender).RotationAngle; end; if (Sender is TTrackBar) then begin Form1.Rectangle1.RotationAngle := TTrackBar(Sender).RotationAngle; end; if (Sender is TPanel) then begin Form1.Rectangle1.RotationAngle := TPanel(Sender).RotationAngle; end; // угол поворота для обводки Form1.Rectangle1.BringToFront; Form1.Rectangle1.BringToFront; Form1.Rectangle1.BringToFront; Form1.Rectangle1.BringToFront; end; // обводку даем ViewObjectInspector(TControl(Sender).ComponentIndex); end; end; end; (* ControlMouseMoveOnlyResize *) procedure TForm1.ControlMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin if inReposition then begin TControl(Sender).Cursor := crDefault; (Sender as TControl).Root.Captured := nil; inReposition := false; end; end; .................................. честно сказать теряюсь какую часть выложить сюда и как отловить вообще где ухожу в ошибку. задача изначально сделать приложение под windows и работать оно будет только в windows, но что бы было именно с использованием firemonkey.
  5. Я в понятиях не спец но я использовал crossvcl-trial которая позволила создавать окна на Linux Desktop а sgc компоненты под Linux могут быть использованы.Таким образом на первом скриншоте у меня получилась рабочая связка. работает хорошо. но меня не интересует GUI совершенно. Скриншот консольного приложения показывает момент авторизации пользователя на MQTT сервере, т.е. он как unknown и почему то GUID не формирует сам компонент (хотя ранее формировал). выше можно увидеть строчки с нормальным соединением выполненное другим клиентом (иное ПО) Отладчик работает без ошибок. консольное приложение может быть на Windows и на Lunix , если я переключаю на Windows то происходит тоже самое. те же самые логи на сервере. т.е. не под Windows Console не под Linux Console не удается нормально подключиться к серверу. как дальше попытаться разобраться? методика? мне кажется если исправить эту ситуацию в Windows Console то и в Linux Console будет работать. моя конечная цель, однако тут использован другой компонент.
×
×
  • Создать...