-
Постов
135 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Активность репутации
-
zairkz отреагировална Steepe_Hare в [Обзор] #3 ModernListView - динамическая подгрузка контента
Настоящий программист!
Даже на выходных обновляет свой продукт
P.S. Спасибо за ответы в личке
-
zairkz отреагировална Равиль Зарипов (ZuBy) в [Обзор] #3 ModernListView - динамическая подгрузка контента
Ссылка: http://blog.rzaripov.kz/2016/12/3-modernlistview.html
Автор: Зарипов Равиль @ZuBy
Описание: Реализация динамической подгрузки контента:
Бесконечный скроллинг (например как лента в ВК) Паджинация/Пагинация (постраничная загрузка) -
zairkz отреагировална Andrey Efimov в Событие при входящем звонке
Со свежей головой. В дополнение к предыдущим замечаниям. Ну понеслась...
Что это такое?
BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE'); Зачем это?
var telephonyService: JObject; telephonyManager: JTelephonyManager; ... begin outputResult:= #13#10; telephonyService := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); telephonyManager := TJTelephonyManager.Wrap((telephonyService as ILocalObject).GetObjectID); Где определение статуса? (EXTRA_STATE_RINGING)
В общем, я внёс некоторые правки в ваш код и всё работает, но далее только в раздел Ищу подрядчика или ищите того, кто вам бесплатно реализует вашу задачу (сомневаюсь, что такие найдутся).
Call2.zip
-
zairkz отреагировална Andrey Efimov в Событие при входящем звонке
Исходники - это файлы из корневой папки проекта, без подпапок, в которых собирается проект. Т.е. папка Android не нужна.
Далее, по коду.
Где у вас это?:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Assigned(BroadcastReceiver) then BroadcastReceiver.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateBroadcastReceiver; end; Далее, на вибрацию нужно выставить пермишен "Vibrate" (на днях выложу на свой гитхаб, класс, упрощающий работу с вибрацией)
Менять местами код в регистрации ресейвера, смысла нет, делайте так как и было.
incomingCallNumber - вообще не понял, что это, где код, в котором вы заносите в эту переменную номер?
По поводу глобальных переменных -это уже придирка, но лучше пишите их в классе, как поля.
Вот в этом коде:
if incomingCallNumber = 'номер телефона' then VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE); Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID); Vibrator.vibrate(10); словите ошибку, возможно AV, если звонок будет просто с другого номера.
Пока вроде всё, что бросилось в глаза, но уже ночь и мог что-то не углядеть. Правьте и пробуйте.
Ваш архив перезалил, номер потёр.
Итог: Плохо копируете код.
Мой совет: Если не знаете, что делаете или просто не охото изучить представленные примеры, то лучше обратитесь в раздел Ищу подрядчика. Или можете попробовать помучить ещё форумчан, хотя вам дали примеры с избытком...
-
zairkz отреагировална Andrey Efimov в Событие при входящем звонке
А с чего у вас будет срабатывать метод
CheckPhoneCallState если вы его не зарегистрировали как OnReceive
У вас вообще строчка закомментирована
//BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; и ещё, вы используете динамическую регистрацию ресейвера, значит по окончании работы приложения вам нужно разрегистрировать ресейвер. Ну и соответственно, работать динамическая регистрация будет только когда запущено приложение.
Если вам необходимо использование только во время работы приложения, то лучше гляньте ссылку, которую дал вам Ярослав, там уже есть событие.
Дополнение:
А что за компонент вы используете? там при каждом Add перерегистрация происходит? Обычно регистрация в таком порядке происходит:
BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE'); BroadcastReceiver.RegisterReceive; Вопросы снимаются, нашёл реализацию этого компонента на stackoverflow.
-
zairkz отреагировална Andrey Efimov в Событие при входящем звонке
Ну, а что именно подчёркнуто? Если
BroadcastReceiverOnReceive то и правильно, метода же нет у вас в классе, впишите свой
CheckPhoneCallState
или вот гляньте ответ http://stackoverflow.com/questions/33609494/how-to-check-and-hag-up-reject-incoming-outgoing-calls-on-android-in-delphi, там как раз по этому компоненту и очень похоже на ваш код...
АП.
Кстати, у @Rusland в той теме, тоже метода не хватает...
-
zairkz отреагировална Andrey Efimov в Событие при входящем звонке
Так...
Значит пишите так:
BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive := CheckPhoneCallState; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE'); Не сработает, тогда добавляйте такой код
в секцию private
procedure BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent);
далее в секцию implementation
procedure TForm1.BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); begin CheckPhoneCallState(csContext, csIntent); end;
в коде регистрации ресейвера
BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE');
-
zairkz отреагировална fabiano Bom dia в In WebBrowser I can not select files.
I'm using WebBrowser to open the website. I can not select the file .. It does not work correctly. I click to select the File and nothing happens. The same happens with facebook I can not post photos. .
How to solve it?
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('https://www.facebook.com');
end;
end.
-
zairkz отреагировална rareMax в Проиграть несколько аудиофайлов параллельно
Теоретически басс будет надежнее - т.к. опыта у него больше. Но это не значит что МедиаПлеер вам не подойдет.
-
zairkz отреагировална Error в Проиграть несколько аудиофайлов параллельно
https://github.com/EmbarcaderoPublic/DelphiArcadeGames
Не уверен, но вроде бы как, здесь сделано одновременное воспроизведение для разных платформ
-
zairkz отреагировална Legioner в Сложности с трехвезнкой
Согласен, не пояснил все более открыто
Библиотеки скачивал с различных ресурсов и закидывал в различные папки (системные папки и в папку проекта включительно)
Даже добавлял в деплоймент (мало ли)
К тому же ставил OpenSSL-Win32 и OpenSSL-Win64 (система 64-битная, приложение 32-битное)
В общем перепробовал все советы всезнающего гугла
Сообщение я прочитал и естественно загуглил на тот случай, если я что-то неправильно понял.
После компиляции автоматически происходит исполнение (извините, если говорю что-то не так)
Ко всему этому хочу добавить, столкнулся с данной проблемой только на Берлине. Да, можно вернуться на Сиетлл, но не хочу сдавать просто так (решение пригодится многим)
-
-
-
-
zairkz отреагировална Error в Сходка в Питере
Равиль Зарипов предложил отличную мысль - устроить сходку дельфистов в Питере, посидеть где-нибудь, пообщаться
Собственно, кому интересно, отпишитесь в комментариях, можно будет в декабре устроить встречу
Думаю надо хотябы 5-6 человек.
-
zairkz отреагировална #WAMACO в [Обзор] #2 ModernListView - режим мультивыделения
Скоро такими темпами сможем увидеть ZuBy в Embarcadero!:))
Все правильно делаете! Пишите больше! Я уже Ваш блог добавил в закладки!
Ждем новых статей! и не только для Android, но и для iOS что-нибудь....
-
zairkz отреагировална Равиль Зарипов (ZuBy) в [Обзор] #2 ModernListView - режим мультивыделения
надо же познакомить народ с возможностями ModernListView, зря писал что-ли?)
-
zairkz отреагировална Равиль Зарипов (ZuBy) в [Обзор] #2 ModernListView - режим мультивыделения
Ссылка: http://blog.rzaripov.kz/2016/11/2-modernlistview.html
Автор: Зарипов Равиль @ZuBy
Описание: Как сделать режим мультивыделения в TListView
-
zairkz отреагировална Brovin Yaroslav в [Обзор] #2 ModernListView - режим мультивыделения
оу оу оу, придержи коней, а то так скоро все темы напишешь и остальным не чего будет писать :-)))
-
-
zairkz отреагировална Alexander в Проектирование интерфейса
Что касается примера, я бы экран просто нарисовал на канве, а при нажатии анализировал в какой цвет попадают координаты. После этого соответсвующую границу "подсвечивал" серым градиентом - эффект нажатия.
TPath имеет прямоугольные границы, поэтому при нажатии в углах не те камни могут нажиматься
-
zairkz отреагировална Error в Проектирование интерфейса
Нет никакой надобности рисовать самому, для определения попала точка в Path или нет есть метод TCanvas.PtInPath
-
zairkz отреагировална Равиль Зарипов (ZuBy) в [Обзор] #0 ModernListView - знакомство
Ссылка: http://blog.rzaripov.kz/2016/11/0-modernlistview.html
Автор: Равиль Зарипов @ZuBy
Описание: Знакомство с ModernListView
-
zairkz отреагировална Brovin Yaroslav в [Обзор] #0 ModernListView - знакомство
С первым почином
UPD. А нет, уже с четвертым :-)
-
zairkz отреагировална krapotkin в Перспективы RAD
Всеволод, я совсем не согласен с вашей гипотезой "сами разработчики виноваты"
Начиная c XE4 всем говорили - волк, волк вот, программируйте на Андроид. А оно не работает.
XE5, XE6, XE7, XE8 и все равно падает на ровных местах и никакой работодатель не хочет слушать, что я не знаю, почему ((
Править исходники Delphi квалификация не позволяет, да и слишком темная магия там ...
Репутация сложилась, однако. С Сиэтла, наконец, программы перестали просто падать, а репу-то уже трудно поправить.
Ну вот я сумел практически шантажом и обманом выкатить один проект на делфи в релиз. Но больше пока никто не соглашается выплатить мне 150000 для покупки апгрейда...