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

david_yusupov

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

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

  • Посещение

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

  1. Спасибо, буду по возможности исправлять
  2. Просто у меня уже не мало коду на писано было и под windows – работе, и когда его на мобильный переносить стал – тут приехал
  3. david_yusupov

    string

    При разработки мобильного приложение выяснил, что индекса строкового типа данных, по символно, под Android и Windows – разная Android S[0],S[1],S[…],S[L-1] Windows S[1],S[2],S[…],S[L] Это как-то можно отрегулировать директивами компилятора, что бы одинаково
  4. Вопрос, как можно установить приделы вывода графика по оси X и Y? На форму располагаю Два TPath, для вы вода картинки и нужно, что бы они были одинаковыми в координатных осях
  5. david_yusupov

    Компилятор

    К понимаю, если среда может работать в разных платформах (или разных OS). Значит можно написать совой компилятор или транслятор в другой язык (JavaScript), а визуальных компонентов FMX - использовать один из framework JavaScript. Где можно почерпнуть знания
  6. TTestFrame = class(TFrame) Rectangle: TRectangle; private end; Создаем объект: TestRectangle := TRectangle.Create; TestRectangle.Parent := Rectangle; Создаем его так что одна область находится за границами Rectangle TestRectangle.Position.X := -20; TestRectangle.Position.Y := -20; И она видна, не обрезается ее видимость ЗЫ Как сделать, так что обрезалась, а тем более, когда выводим TText, тоже не обрезается
  7. Расположил несколько, TStringGrid - в контейнере TVertScrollBox. Прорисовки заголовка возникает сообщение ошибке Когда на TVertScrollBox - располагается один TStringGrid - то проблем нет, а когда два TStringGrid - по периодически возникает ошибка ... не подскажите как ее решить, или как ее поместить в исключение, что игнорировать // ----------------------------------------------------------------------------------------------------------------- Немного поэкспериментировал Создал - TVertScrollBox – отдельно разместил два TStringGrid – все нормально Могу предположить, что проблема в наследование TCustomDiagnosticFrame = (TFrame, ITypeFrame) TDiagnosticIS = class(TCustomDiagnosticFrame) Размещаю на TDiagnosticIS на TVertScrollBox И тут и возникает проблема у TStringGrid test.zip
  8. У меня задача нужно в приложение использоваться jar – файл (программа пишется под windows). В исходниках студи есть Androidapi.Jni – как понимаю это JNI – под андройд, вопрос, как его можно переделать под Windows.Jni – (если это вообще возможности). Если описание JNI – хоть пуская с++, что из своего приложение запускать JVM и выполнять файл jar (библиотеку)
  9. david_yusupov

    Прозрачность

    Как сделать TreeView — прозрачный фон, так что бы видны Item?
  10. Вопрос очень прост, как убить запущенный поток не дожидаясь его завершение. Пример: procedure TBufferThread.Execute; begin while not Self.Terminated do begin Sleep(10000); end; end; Используя ReportMemoryLeaksOnShutdown показывает, что поток жив, после закрытие программы? PS Поток так же жив после вызова процедуры TThread.Terminate (После того как заглянул вовнутрь понял почему, и поэтому возник вопрос, как убить поток?)
  11. Было написано костыль, для быстрого решение... то так идея с отдельным потом, мне нравится. Так как нет других решений. Прилегаю файл, как и просили. procedure TBlocksFrame.SetInitializationLattice; var i, j: Integer; xRectangle: TLatticeRectangle; xHeight, xWidth: Single; begin xHeight := Self.Height/ROW_COUNT_SIZE; xWidth := Self.Width/COL_COUNT_SIZE; if (xHeight > 0) and (xWidth > 0) then begin for i := 0 to ROW_COUNT_SIZE - 1 do for j := 0 to COL_COUNT_SIZE - 1 do begin xRectangle := TLatticeRectangle.Create(Self); SetPostionRectangle(xRectangle, j * xWidth + 1.25, i * xHeight + 1.25, xHeight - 2.5, xWidth - 2.5); xRectangle.Row := i; xRectangle.Col := j; xRectangle.Parent := Self; xRectangle.OnEnter := RectangleOnEnter; xRectangle.OnMouseDown := RectangleOnMouseDown; xRectangle.OnMouseMove := RectangleOnMouseMove; xRectangle.OnMouseUp := RectangleOnMouseUp; FLatticeles.Add(xRectangle); end; end; end; procedure TBlocksFrame.SetUpDatesLattice; var i, j, xIndex: Integer; xLattice: TLatticeRectangle; xHeight, xWidth: Single; begin xHeight := Self.Height/ROW_COUNT_SIZE; xWidth := Self.Width/COL_COUNT_SIZE; if (xHeight > 0) and (xWidth > 0) then begin for i := 0 to ROW_COUNT_SIZE - 1 do for j := 0 to COL_COUNT_SIZE - 1 do begin xIndex := i * COL_COUNT_SIZE + j; xLattice := FLatticeles[xIndex]; if Assigned(xLattice) then begin SetPostionRectangle(xLattice, j * xWidth + 1.25, i * xHeight + 1.25, xHeight - 2.5, xWidth - 2.5); end; end; end; end; // сейчас так procedure TBlocksFrame.TimerTimer(Sender: TObject); begin if (FSelfHeight = 0) and (FSelfWidth = 0) then begin FSelfHeight := Self.Height; FSelfWidth := Self.Width; Self.SetInitializationLattice; end else begin if (FSelfHeight <> Self.Height) or (FSelfWidth <> Self.Width) then begin FSelfHeight := Self.Height; FSelfWidth := Self.Width; if FLatticeles.Count = 0 then Self.SetInitializationLattice else begin SetUpDatesLattice; SetUpDatesBlock; end; end; end; end; // было так procedure TBlocksFrame.Resize; begin inherited Resize; if (FSelfHeight = 0) and (FSelfWidth = 0) then begin FSelfHeight := Self.Height; FSelfWidth := Self.Width; Self.SetInitializationLattice; end else begin if (FSelfHeight <> Self.Height) or (FSelfWidth <> Self.Width) then begin FSelfHeight := Self.Height; FSelfWidth := Self.Width; if FLatticeles.Count = 0 then Self.SetInitializationLattice else begin SetUpDatesLattice; SetUpDatesBlock; end; end; end; end; block.zip
  12. Ясно спасибо. Значит будем использовать отдельный поток... а так пока использую костыль. поставил Timer, с проверкой измене размеров.
  13. Cтолкнулся с не большой проблемой. Разрабатываю фрейм, использованием событие OnResize. Суть проблемы создаем динамически очень много объектов, и в зависимости от размера фрейма, обсчитываем положение и обновление размеры обетов. Приводит к зависанию всего приложения.
  14. Не могу знать во время или нет... это библиотека работает на MAC OS, на андройде не проверял. http://www.ararat.cz/synapse/doku.php/download
  15. Точнее, как работает наследование. TNodeItem = class(TTreeViewItem) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TNodeItem2 = class(TNodeItem) public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; реализация { TNodeItem } constructor TNodeItem.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TNodeItem.Destroy; begin inherited; end; { TNodeItem2 } constructor TNodeItem2.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TNodeItem2.Destroy; begin inherited; end; // Вот самое интересное, не много не понятно почему так procedure TForm1.Button2Click(Sender: TObject); var xTree: TTreeViewItem; begin // Тут все работает xTree := TTreeViewItem.Create(nil); xTree.Text := 'Тест2'; xTree.Parent := TreeView1; end; procedure TForm1.Button3Click(Sender: TObject); var xTree: TNodeItem; begin // И тут все работает xTree := TNodeItem.Create(nil); xTree.Text := 'Тест3'; xTree.Parent := TreeView1; end; procedure TForm1.Button4Click(Sender: TObject); var xTree: TNodeItem2; begin // А вот тут не работает, узел добавляется, а текста нет. xTree := TNodeItem2.Create(nil); xTree.Text := 'Тест4'; xTree.Parent := TreeView1; end;
  16. При использовании FreeAndNil использовать NIL не нужно Если честно- не совсем понятна первая строка. И если хотите помощи - смотрите правила размещения тем(прикрепляйте демку, в которой будет суть вашей проблемы) P.S. Использование фреймов - теоретически очень упрощает разработку. На практике же - будьте готовы к ошибкам Рад студио при работе с фреймами. Разобрался все заработала... как говорится глупость с морозил
  17. да испробова... без изменений (внутри ListBox - есть FToInflate: TList<TListBoxItem>, куда складываются все Item - ы... ), а что дальше делать не придумал
  18. Производим заполнение ListBox for i := i fo Count - 1 do begin xItm := TListBoxItem.Create(nil); xItm.Height := 30; xItm.Parent := ListBox; xItm.Text := xV2.Name; xItm.Data := xV2; end; Тут все нормально заполняется, но как и вызваем ListBox.clear, список зачищается при повторном заполнение восстанавливаются предыдущий значение
  19. После инициализации: if not Assigned(DrugsFrame) then begin DrugsFrame := TDrugsFrame.Create(nil); DrugsFrame.Parent := AParent; DrugsFrame.Align := TAlignLayout.Client; end; в качестве Parent выступает, другой об Fram - а После удаление объекта: if Assigned(DrugsFrame) then begin FreeAndNil(DrugsFrame); DrugsFrame := nil; end; После инициализации, все элементы Fram – а, который участвовал в качестве Parent – а. Но системные кнопки, свернуть, развернуть и закрыть приложение — не доступны.
×
×
  • Создать...