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

Alexander

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

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

  • Посещение

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

    2

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

  1. Alexander

    access violation TImage

    Brovin Yaroslav, могу только догадываться... Видимо там цикл по Value до max, поэтому чтоб надпись выводилась во время работы цикла. Этот отрывок кода не даёт представления где возникает ошибка. kuldiegor, отладчиком проходили код? в какой строке ошибка?
  2. Похоже, что форма не обновляется(перерисовывается) после перетаскивания. Попробуйте свернуть и развернуть форму, значек пропадает?
  3. уже обсуждали http://fire-monkey.ru/topic/2178-razmer-prilozheniia-na-raznykh-ustroistvakh/?hl=размер
  4. Alexander

    GPS

    Нет возможности проверить, Tlocationsensor.Sensor.SensorType возможно, там либо устанавливается тип сенсора или приходит "тип" координат
  5. всё правильно, вы в обработчике компонента присваиваете курсор не компоненту, а форме. Хотите, чтоб и над компонентом был такой курсор, так и ему присвойте. Проверил у себя, данный код работает procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if Rectangle1.Cursor = crHourGlass then Form1.Cursor := crSQLWait else Form1.Cursor := crSizeNWSE; end; procedure TForm1.Rectangle1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin Form1.Cursor := crSizeAll; Rectangle1.Cursor := crHourGlass; end;
  6. чудес не бывает, создайте обработчик OnMouseMove для формы, посмотрите с каким курсором вы туда приходите
  7. Sender это "владелец" события, подозреваю что Self это форма. Проверьте что у вас в self находится
  8. есть подозрение, что курсор перемещается не по форме, а по компонентам на форме, поэтому назначив курсор в событии формы это не будет являться изменением для всех компонент на форме. Нужно проверить срабатывает ли ваше назначение
  9. в отладчике точку останова ставили? на этой строке?
  10. Всё работает, если убрать поворот на 90 градусов
  11. Математику в студию, по второй линии видно , есть подозрение что реализованный алгоритм неправильно работает. по коду. Добавить: line.Parent := Self; ещё совет: line := TLine.Create(Self); line.Parent := Self; line.LineType := TLineType.Top; line.Position.Point := TPointF.Create(130, 130); line.RotationAngle := 90; line.HitTest := True; line.Width := 100; line.Height := 5; line.StrokeThickness := 5; поясню: при диагональном расположении появляется мнимый прямоугольник, при котором если мышь будет находится в нём, то линия будет подсвечиваться. Хотя курсор мыши не будет находиться над линией.
  12. Не совсем понятно из вопросов, что неправильно работает?
  13. Alexander

    Не работает TLang

    в Delphi 10 не смог произвести перевод отсканированных строк, не появляются Edit'ы для ввода перевода. Взял файл от рабочего проекта из XE8, в 10-ке подгрузились только английские слова, при этом так же не возможно добавить перевод. Это у меня одного так или ещё ни кто не проверял этот компонент?
  14. Идея была в следующем. В TImage не помещалась карта(состоящая из тайлов) большого размера. Поэтому был разработан алгоритм: на TScrollBox размещались TImage. Размер TImage(экран) чуть больше видимой области TScrollBox и кратный 256 пикселям(размер тайла). Затем экран заполнялся тайлами в соответствии с координатами. Таким образом, получалась большая карта и плавный скрол с инерцией
  15. Черновой вариант, использую в Windows. На сколько адаптировано к Android не знаю, не компилил procedure TMap.FullScreen(Image:TImage;Tile:TOSMTile); var I: Byte; j: Integer; BMPTile, BMPImage:TBitmap; rctIn, rctOut:TRectF; S:String; begin rctOUT:= TRectF.Create(0,0,255,255); BMPImage := TBitmap.Create; BMPImage.Width := Round(Image.Width); BMPImage.Height := Round(Image.Height); BMPTile := TBitmap.Create; if not DirectoryExists(FPathTile+IntToStr(Tile.Zoom)) then ForceDirectories(FPathTile+IntToStr(Tile.Zoom)); for I := 1 to FTileWidth do for j := 1 to FTileHeight do begin S:= FPathTile+format('%d\%d\%d.png',[Tile.Zoom,Tile.TileX+i-1,Tile.TileY+j-1]); while Assigned(FHTTP) and not FileExists(S) do begin if not DirectoryExists(FPathTile+IntToStr(Tile.Zoom)+'\'+IntToStr(Tile.TileX+i-1)) then ForceDirectories(FPathTile+IntToStr(Tile.Zoom)+'\'+IntToStr(Tile.TileX+i-1)); LoadURLToFile(S, 'http://b.tile.openstreetmap.org/'+format('%d/%d/%d.png',[Tile.Zoom,Tile.TileX+i-1,Tile.TileY+j-1]), FHTTP); end; if FileExists(S) then begin rctIn := TRectF.Create(256*(i-1),256*(j-1),256*(i),256*(j)); BMPTile.LoadFromFile(S); BMPImage.Canvas.BeginScene(); BMPImage.Canvas.DrawBitmap(BMPTile,rctOut,rctIn,100,True); // BMPImage.Canvas.Fill.Kind := TBrushKind.None; // BMPImage.Canvas.DrawRect(TRectF.Create(0,0,FScreenWidth, FScreenHeight),0, 0, AllCorners, 100); BMPImage.Canvas.EndScene; end end; Image.Bitmap:= TBitmap.Create; Image.Bitmap.Clear($FFFFFFFF); Image.Bitmap.Assign(BMPImage); end;
  16. Я взял за основу тайлы OSM. Выгружать их в timage. Набор из timage кладу на tscrollbox
  17. R := 80; Canvas.BeginScene(); Alpha := ((Sender as TPie).EndAngle+(Sender as TPie).StartAngle)/2; dX := (Sender as TPie).Width /2+ R * Cos(DegToRad(Alpha)); dY := (Sender as TPie).Height/2 +R * Sin(DegToRad(Alpha)); rct.Create(dX-5,dY-5,dX+5,dY+5); Canvas.DrawEllipse(rct,100); Canvas.EndScene();
  18. Ваш ответ на вопрос в последнем ответе. Середина будет в сумме двух углов деленная пополам и половина радиуса вписанной окружности
  19. Как задаётся размер, положение и ориентация TPie?
  20. Тут подход должен быть более серьезный: Система координат, привязка к картинке. можно иметь очень точные координаты, но отображение на картинке будет не айс.... а по алгоритму реализации разработать алгоритм пересчета координат загружаете в память картинку TBitmap для отображения карты с маршрутом на форме размещаете TImage на TBitmap отрисовать маршрут линиями,в соответствии с алгоритмом пересчета п.1; скопировать TBitmap в TImage точки наносить путем создания shape(окружность, квадрат и т.д. или TSelectionPoint). размещать их на TImage в соответствии с алгоритмом пересчета п.1 в соответствующие события у объектов точек присвоить обработчики нажатия на них как-то так... и не забываем про масштабирование, если необходимо. Может использовать Google Maps? если только задача простенькая
  21. Дело не одного месяца, пусть берут на зарплату. А там уж от вас зависит, сколько вы хотите получать в месяц
  22. Создавал динамически TImage. Проблем не возникало таких, правда позиционировал через position Если попробовать изначально задать большой Position. Y, а затем MostTop?
×
×
  • Создать...