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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    265

Весь контент Равиль Зарипов (ZuBy)

  1. попробуй так: uses Androidapi.JNI.GraphicsContentViewText, ... AudioObj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
  2. ListView1.ItemAppearance.ItemAppearance := 'ImageListItemBottomDetail'; в ListItem нету Detail, поэтому и ошибка
  3. var FUpdateLV: Boolean = false; implementation {$R *.fmx} procedure TForm12.Button1Click(Sender: TObject); var I: Integer; AItem: TListViewItem; begin ListView1.ItemAppearance.ItemAppearance := 'ImageListItemBottomDetail'; for I := 0 to 25 do begin FUpdateLV := false; AItem := ListView1.Items.Add; with AItem do begin Text := 'Random Text ' + IntToStr(I); Detail := 'Detail for ' + Text; if I mod 3 = 0 then Data['status'] := TAlphaColorRec.Red else Data['status'] := TAlphaColorRec.Green; end; FUpdateLV := true; ListView1.Adapter.ResetView(AItem); end; end; procedure TForm12.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem); begin if not FUpdateLV then exit; if AItem.HasData['status'] then begin AItem.Objects.DetailObject.TextColor := AItem.Data['status'].asinteger; end; end;
  4. AItem.Objects.DetailObject.IsDetailText := false;
  5. var bmp: TBitmap; SrcRect, DstRect, SrcRect2, DstRect2: TRectF; begin bmp := TBitmap.Create(256, 256); bmp.Canvas.BeginScene(); try SrcRect := TRectF.Create(0, 0, 256, 256); DstRect := TRectF.Create(20, 20, 236, 236); SrcRect2 := TRectF.Create(0, 0, 256, 256); DstRect2 := TRectF.Create(0, 0, 256, 256); bmp.Clear(TAlphaColorRec.Null); bmp.Canvas.DrawBitmap(Image1.Bitmap, SrcRect2, DstRect2, 0.8, false); bmp.Canvas.DrawBitmap(Image2.Bitmap, SrcRect, DstRect, 0.8, false); finally bmp.Canvas.EndScene(); Image3.Bitmap.SetSize(256, 256); Image3.Bitmap.CopyFromBitmap(bmp); bmp.Free; end; end;
  6. Top+Top <TListBox>.Align := TAlignLayout.Top; <TPanel>.Align := TAlignLayout.Top; Top+Client <TListBox>.Align := TAlignLayout.Top; <TPanel>.Align := TAlignLayout.Client; Client+Bottom <TListBox>.Align := TAlignLayout.Client; <TPanel>.Align := TAlignLayout.Bottom;
  7. в dpr, до Application.Initialize;
  8. я исправил уже, смотри выше
  9. да входящие, вот функция // перевод с UnixDate в TDateTime function myUnixToDateTime(USec: Longint): TDateTime; begin Result := (USec / 86400) + UnixDateDelta; end;
  10. const SMS_RECEIVED = 'android.provider.Telephony.SMS_RECEIVED'; procedure SMSReceiver(aIntent: JIntent); //uses // Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony, Androidapi.JNI.Provider, Androidapi.JNIBridge, // Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers; var aSmss: TJavaObjectArray<JSmsMessage>; aSms: JSmsMessage; aFrom: string; aBody: string; I: Integer; begin if aIntent = nil then exit; if (aIntent.getAction <> nil) and (aIntent.getAction.compareToIgnoreCase(StringToJString(SMS_RECEIVED)) = 0) then begin aSmss := TJavaObjectArray<JSmsMessage>.Create; aSmss := TJSms_Intents.JavaClass.getMessagesFromIntent(aIntent); aFrom := JStringToString(aSmss[0].getDisplayOriginatingAddress); aBody := ''; for I := 0 to aSmss.Length - 1 do begin aSms := aSmss[I]; aBody := aBody + JStringToString(aSms.getDisplayMessageBody); end; end; end; не проверял, но по коду так, только как нить вернуть нужно aFrom, aBody сделать как функцию и тд..
  11. этого метода нет в SDK делфи, нужно самому прописать, остальное есть
  12. я пользовался таким кодом когда-то, текст в смс был таким // получение кода с СМС отправленного при регистрации function GetSMSCode: string; // uses // FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony, // Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers {$IFDEF ANDROID} var cursor: JCursor; uri: Jnet_Uri; address, body, Return: string; msgunixtimestampms: int64; addressidx, msgdateidx, bodyidx: integer; aUTCOffset: integer; SMSTime: TDateTime; begin try Return := ''; uri := StrToJURI('content://sms/inbox'); cursor := SharedActivity.getContentResolver.query(uri, nil, nil, nil, nil); addressidx := cursor.getColumnIndex(StringToJstring('address')); msgdateidx := cursor.getColumnIndex(StringToJstring('date')); bodyidx := cursor.getColumnIndex(StringToJstring('body')); cursor.moveToFirst; address := JStringToString(cursor.getString(addressidx)); msgunixtimestampms := cursor.getLong(msgdateidx); body := JStringToString(cursor.getString(bodyidx)); if Pos('exFood:', body) > 0 then // эта строчка всегда приходит в сообщении begin // учитываем Часовой пояс with TTimeZone.Create do begin aUTCOffset := Local.GetUtcOffset(Now).Hours; Free; end; SMSTime := IncHour(myUnixToDateTime(msgunixtimestampms div 1000), aUTCOffset); // вычисляем последнюю смс if DayOf(SMSTime) = DayOf(Now) then if MinuteOf(SMSTime) = MinuteOf(Now) then Return := Copy(body, body.Length - 3, MAX_PATH); // вырезаем код подтверждения end; Result := Return; except Result := 'ERROR'; end; {$ELSE} begin Result := '0000'; {$ENDIF} end;
  13. наверное так OpenURL('mailto:....');
  14. FDebugConfig := false; {$IFDEF DEBUG} FDebugConfig := true; {$ENDIF}
  15. аа, вон оно что. не используйте градиент. где-то на форуме это обсуждалось, почитайте
  16. function TForm11.isEditCorrect(Sender: TEdit): Boolean; var text: String; i: Integer; aCharArr: TCharArray; begin text := TEdit(Sender).text; aCharArr := text.ToCharArray; Result := True; for i := Low(aCharArr) to High(aCharArr) do begin if not(aCharArr[i] in charters) then Result := False; end; if text.CountChar('-') > 1 then Result := False; end; вот так правильно
  17. function TForm11.isEditCorrect(Sender: TEdit): Boolean; var text: String; i: Integer; aCh: Char; begin text := TEdit(Sender).text; Result := True; for i := {$IFNDEF MSWINDOWS}0{$ELSE}1{$ENDIF} to text.Length do begin aCh := text[i]; if not(aCh in charters) then Result := False; end; if text.CountChar('-') > 1 then Result := False; end; UPDATE: код не отрабатывает на андроиде
  18. Rectangle1.Parent := nil; FreeAndNil(Rectangle1); чтобы пустая ссылка у родителя не висела
  19. еще нужно отвязывать от парента при удалении компонентов
  20. на айос? тут лежат полные хидеры для Delphi (на счёт C++ незнаю где найти) https://github.com/FMXExpress/ios-object-pascal-wrapper AudioServicesPlayAlertSound( kSystemSoundID_Vibrate) P.S. мы это обсуждали уже на канале в телеграмме
×
×
  • Создать...