zekelive
-
Постов
133 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Активность репутации
-
zekelive отреагировална krapotkin в Оптимизация поток и AniIndicator
логика должна быть такой
в главном потоке запускаем индикатор и доп. поток.
При окончании работы доп. поток например в событии OnTerminate прячет индикатор.
Всё.
Если есть прямо жестокая необходимость, чтобы доп. поток как-то отчитывался о прогрессе, пусть отправляет сообщения в главный поток.
Никаких других знаний друг о друге у обоих потоков быть не должно.
Это идеальная универсальная схема. Ессн бывают всякие обстоятельства, но в целом она рабочая всегда.
подробнее я писал об этом тут
-
-
zekelive получил реакцию от МихаилЪ чайковЪ в Открытие изображения из Image в Галерее
Все получилось, спасибо!) Кое-что изменил, и вышло вот так:
var intent:Jintent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJuri(url),StringToJString('image/jpeg')); SharedActivity.startActivity(Intent); end; где URL - адрес моей картинки в интернете.
-
zekelive отреагировална dim в как проверить что сервер доступен
я сделал так, пробую вызвать метод
try
ClientModule1.ServerMethods1Client.Send_messageOperator(Person.Phone,task_operator.Text);
except
ClientModule1:=nil;
ConnectToServer;
exit;
end;
и если ошибка то в ConnectToServer
if ClientModule1=nil then
ClientModule1:= TClientModule1.Create(self)
else
ClientModule1.DataModuleCreate(nil);
-
zekelive отреагировална RoschinSpb в Форма не на весь экран
Форма должна иметь значение свойства FormStyle равное fsPopup. См. также Всплывающие формы в XE5
-
zekelive получил реакцию от eser в [TfgFlipView] Как загрузить изображение через URL?
Рабочий код по загрузке изображений извне в FlipVIew: var Stream: TStream; begin Stream := TMemoryStream.Create; URL:='http://www.vk.com/123.jpg' HTTP1.Get(URL, Stream); Stream.Position := 0; FV1.Images.Add; FV1.Images[FV1.Images.Count-1].Bitmap.LoadFromStream(Stream); end; -
zekelive отреагировална AngryOwl в Загрузка PNG в Image из Deployment
В конкретном случае - речь идет о Android.
Тут, в некотором смысле, проще - воспользуйтесь замечательными компонентами FGX от автора данного форума. У компонента TfgApplicationEvents есть все события, которые Вам необходимы. А именно - событие ДО отображения формы (и куча других).
Ну если Вам не хватает отладчика - тупо натыкайте в нужных местах "тостов" (Toast), и смотрите - что будет "последним" событием...
З.Ы. А зависание программы происходит однозначно из-за того, что Вы пытаетесь что-то изменить в интерфейсе, до момента пока форма еще не стала активной. Решить можно не только синхронизацией, но и каким-нибудь Splash.
-
zekelive отреагировална Камышев Александр в Загрузка PNG в Image из Deployment
Дебаггер не используете что ли? Тупо брикпоинт на OnShow и по шагам идти до ошибки - F7,F8,F9 в помощь
-
zekelive отреагировална AngryOwl в Загрузка PNG в Image из Deployment
Попробуйте загрузку ваших картинок оформить в:
TThread.Synchronize(TThread.CurrentThread, procedure begin // тут загрузка ваших картинок end);
-
-
zekelive отреагировална Равиль Зарипов (ZuBy) в [Android] Как изменить цвет системного статус бара и разместить контролы под ним?
Попробуйте вот так
-
zekelive отреагировална Равиль Зарипов (ZuBy) в [Android] Как изменить цвет системного статус бара и разместить контролы под ним?
Тема оказалась настолько интересна что занялся ей подробней.
Мы с zairkz убили много времени, чтобы понять как выкрасить в один цвет без полупрозрачности, взяв скриншот и фотошоп определили, что затемнение происходит на 40%
Решение родилось само собой, затемнить цвет ToolBar'a на 40% и цвет выровняется.
Казалось бы можно осветлить цвет для подложки и цвет тоже выровнится, но например белый или светлые цвета нельзя еще осветлить.
также написал процедуру для определения высоты статус бара и панели навигации
procedure androidGetBounds(out statusBar, navigationBar: Integer); {$IFDEF ANDROID} var KeyCharacterMap: JKeyCharacterMap; resourceID: Integer; ScreenService: IFMXScreenService; sScale: Single; {$ENDIF} begin navigationBar := 0; statusBar := 0; {$IFDEF ANDROID} if TOSVersion.Check(5, 0) then // вроде только работает с 5.0 ниже нет устройства проверить begin sScale := 1; if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then sScale := ScreenService.GetScreenScale; //получаем скейл resourceID := TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('status_bar_height'), StringToJString('dimen'), StringToJString('android')); if resourceID > 0 then statusBar := Trunc(TAndroidHelper.Activity.getResources.getDimensionPixelSize(resourceID) / sScale); if not TJKeyCharacterMap.JavaClass.deviceHasKey(TJKeyEvent.JavaClass.KEYCODE_BACK) then // проверка на существование наэкранных кнопок или физических begin resourceID := TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('navigation_bar_height'), StringToJString('dimen'), StringToJString('android')); if resourceID > 0 then navigationBar := Trunc(TAndroidHelper.Activity.getResources.getDimensionPixelSize(resourceID) / sScale); end; end; {$ENDIF} end; и в модуле FMX.Platform.Android нужно изменения внести (если вы используете измененный модуль для Intel'а)
// Fix by Flying Wang & CallInUIThread( procedure begin if (not PlatformAndroid.GetFullScreen(nil)) and (SharedActivity.getWindow.getAttributes.Flags and TJWindowManager_LayoutParams.JavaClass.FLAG_FULLSCREEN <> TJWindowManager_LayoutParams.JavaClass.FLAG_FULLSCREEN) and (SharedActivity.getWindow.getAttributes.Flags and TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS <> TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS) // fix by ZuBy ... SystemBar.zip
-
zekelive отреагировална AndroidHalfNoob в Слишком большой размер приложения.
Кстати заметил интересный момент. Одно и тоже приложение на телефоне Samsung S4 mini занимает почти 45 Мб а на планшете Samsung Galaxy tab 10 около 18Мб
-
zekelive получил реакцию от masmat в Как создать форму в потоке?
Сам пытался простой код в потоке выполнять, у меня то программа вываливается. То ошибки не понятные какие-то. Что-то с потоками совсем ерунда какая-то в FMX.
-
zekelive отреагировална Brovin Yaroslav в Можно ли прокрутить TScrollBox программно?
Без анимации можно любым из этих способов:
// Установка координат окна просмотра (Левый верхний угол) ScrollBox.ViewportPosition := TPointF.Create(0,0); ScrollBox1.ScrollTo(0, 0); // Аналог ViewportPosition // Сдвиг на вектор ScrollBox.ScrollBy(-10, -10); С анимацией так:
procedure TForm3.FormCreate(Sender: TObject); begin ScrollBox1.AniCalculations.Animation := True; ScrollBox1.AniCalculations.BoundsAnimation := True; ScrollBox1.AniCalculations.TouchTracking := [ttVertical, ttHorizontal]; end; // Сам сдвиг ScrollBox1.AniCalculations.MouseWheel(5, 10); -
-
zekelive отреагировална estra в Инструкция по установке набора компонентов FGX
Ну раз партия просит, товарищ, так и быть, запишет.
видео инструкция
пароль на скачивание: Project001
-
zekelive отреагировална Равиль Зарипов (ZuBy) в Обновление списков (TListBox, TListView), как в популярных приложения
Обновление Списков (ListBox, ListView) как в популярных приложения
Скачать с офф. сайта
UpdateMe.zip
-
zekelive отреагировална Nik в Передача изображения в потоке
Аналогичная проблема возникла. Наткнулся на эту тему и решил свою проблему )
Вот таким кодом.
var MS: TMemoryStream; Bitmap: TBitmap; ... TThread.Synchronize(TThread.CurrentThread, procedure begin Bitmap.LoadFromStream(MS); end); -
zekelive получил реакцию от Vitaldj в [Отклонение] При прокрутке TLabel сбрасывает свои настройки текста
Пытаюсь восстанавливать настройки как ты сказал, в обработчике, но изменений все равно нет, код: item.TextSettings.Font.Family:='RobotoLight'; item.TextSettings.FontColor:=TAlphaColors.Sandybrown; и так тоже пытался:
item.DefaultTextSettings.Font.Family:='RobotoThin'; item.DefaultTextSettings.FontColor:=TAlphaColors.Sandybrown;
-
zekelive отреагировална VladimirS в Отладка потоков в DataSnape
конечно есть.
TThread.CreateAnonymousThread( procedure() begin clmClient.ServerMethods1Client.RegisterWare(seWareID.Value, clmClient.DSClientCallbackChannelManager1.ManagerId) end).Start; А при чём тут отладка? ;-)
-
zekelive отреагировална Brovin Yaroslav в Как прокрутить TScrollBox в самый низ?
В XE7 мне не удалось воспроизвести вашу ситуацию. TScrollBox прокручивается до самого низа при использовании кода:
ScrollBox1.ScrollBy(0, -ScrollBox1.ContentBounds.Height); -
zekelive отреагировална Brovin Yaroslav в [TScrollBox] Как определить конец зоны ScrollBox?
Примерно. ViewPortPosition не может достигнуть высоты контента. ViewPortPosition - это смещение контента. Поэтому максимальное значение будет высота контента - высота окна (ClientHeight), то что видим
if NewViewportPosition.y = ScrollBox1.ContentBounds.Height - ScrollBox1.ClientHeight then ShowMessage('Bottom'); -
zekelive получил реакцию от Brovin Yaroslav в Открытие изображения из Image в Галерее
Все получилось, спасибо!) Кое-что изменил, и вышло вот так:
var intent:Jintent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJuri(url),StringToJString('image/jpeg')); SharedActivity.startActivity(Intent); end; где URL - адрес моей картинки в интернете.
-
zekelive получил реакцию от Alex7wrt в Открытие изображения из Image в Галерее
Все получилось, спасибо!) Кое-что изменил, и вышло вот так:
var intent:Jintent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJuri(url),StringToJString('image/jpeg')); SharedActivity.startActivity(Intent); end; где URL - адрес моей картинки в интернете.