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

Martifan

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

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

  • Посещение

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

    16

Активность репутации

  1. Like
    Martifan отреагировална Aptem в Лямбда выражения   
    Лямбда-выражение реализуется в Delphi через анонимные методы. Думаю, что они присутствуют и в Builder.
     
    Попробуйте почитать вот здесь: http://docwiki.embarcadero.com/RADStudio/XE7/en/How_to_Handle_Delphi_Anonymous_Methods_in_C%2B%2B
     
    В Delphi анонимные методы реализуются так.
     
    Объявление:
    type TSearchFunction = reference to function ( criteria : Integer ) : IDictionary<String, Integer>; ... LeftFunction : TSearchFunction; Использование:
    fmSearch.LeftFunction := function ( criteria : Integer ) : IDictionary<String, Integer> begin Result := searchHelper.GetItems ( criteria ); end;
  2. Like
    Martifan получил реакцию от UFatueks в TWebBrowser проблема после фокусировки   
    Доброго времени сутки  я открываю пример (Web Browser) все работает хорошо но после того как я хочу жити из этого программы телефон и эмулятор не может завершить работу программы (как будто зависает) это в том случе если я тыкаю компонент (TWebBrowser) если не тыкать компонент и просто загружать страницы то все нармально работает в чем проблема и что не так делаю? заранее спасибо 
  3. Like
    Martifan отреагировална Martifan в Запустить приложение в фоновом режиме   
    спасибо
    мне нужно вывести сообщения если пользователя начисляется допустим деньги
  4. Like
    Martifan получил реакцию от Brovin Yaroslav в Как в Android из потока собрать wav файл?   
    WaveAudio Package
    пользуюсь этим компонентом 
    http://www.delphiarea.com/products/delphi-packages/waveaudio/ вот ее ссылка 
     
    код получение потока:
    unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Spin, StdCtrls, Buttons, mmSystem, WaveUtils, WaveStorage, WaveIO, WaveOut, WavePlayers, ComCtrls, ScktComp; const WM_RECEIVERREADY = WM_USER; type TMainForm = class(TForm) btnDisconnect: TButton; btnConnect: TButton; gbBroadcaster: TGroupBox; lblRemoteAddress: TLabel; lblRemotePort: TLabel; edRemoteAddress: TEdit; seRemotePort: TSpinEdit; edFormat: TEdit; lblFormat: TLabel; SaveDialog: TSaveDialog; lblFileSize: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure tcpClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure tcpClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure btnConnectClick(Sender: TObject); procedure btnDisconnectClick(Sender: TObject); procedure tcpClientRead(Sender: TObject; Socket: TCustomWinSocket); private tcpClient: TClientSocket; WaveFile: TWaveFile; end; var MainForm: TMainForm; implementation {$R *.dfm} uses WinSock; { Helper Functions } function FormatSize(Size: Int64): String; const KB = 1024; MB = 1024 * KB; GB = 1024 * MB; begin if Size < KB then Result := FormatFloat('#,##0 Bytes', Size) else if Size < MB then Result := FormatFloat('#,##0.0 KB', Size / KB) else if Size < GB then Result := FormatFloat('#,##0.0 MB', Size / MB) else Result := FormatFloat('#,##0.0 GB', Size / GB); end; { TMainForm } procedure TMainForm.FormCreate(Sender: TObject); begin tcpClient := TClientSocket.Create(Self); with tcpClient do begin ClientType := ctNonBlocking; OnConnect := tcpClientConnect; OnDisconnect := tcpClientDisconnect; OnRead := tcpClientRead; end; end; procedure TMainForm.FormDestroy(Sender: TObject); begin tcpClient.Active := False; end; procedure TMainForm.tcpClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin btnDisconnect.Visible := True; btnConnect.Visible := False; edRemoteAddress.Enabled := False; seRemotePort.Enabled := False; end; procedure TMainForm.tcpClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin btnConnect.Visible := True; btnDisconnect.Visible := False; edRemoteAddress.Enabled := True; seRemotePort.Enabled := True; edFormat.Text := ''; if Assigned(WaveFile) then begin WaveFile.EndRewrite; WaveFile.Free; WaveFile := nil; lblFileSize.Caption := ''; end; end; procedure TMainForm.btnConnectClick(Sender: TObject); begin if SaveDialog.Execute then begin WaveFile := TWaveFile.Create(SaveDialog.FileName, fmCreate or fmShareDenyWrite); tcpClient.Host := edRemoteAddress.Text; tcpClient.Port := seRemotePort.Value; tcpClient.Active := True; end; end; procedure TMainForm.btnDisconnectClick(Sender: TObject); begin tcpClient.Active := False; end; procedure TMainForm.tcpClientRead(Sender: TObject; Socket: TCustomWinSocket); var WaveFormat: PWaveFormatEx; WaveFormatSize: Integer; Data: Pointer; DataSize: Integer; begin try if WaveFile.State = wssReady then // Getting Wave Format begin Socket.ReceiveBuf(WaveFormatSize, SizeOf(WaveFormatSize)); GetMem(WaveFormat, WaveFormatSize); try Socket.ReceiveBuf(WaveFormat^, WaveFormatSize); edFormat.Text := GetWaveAudioFormat(WaveFormat); WaveFile.BeginRewrite(WaveFormat); Socket.SendText('READY'); lblFileSize.Caption := 'Waiting for audio data...'; finally FreeMem(WaveFormat); end; end else begin Sleep(0); DataSize := Socket.ReceiveLength; if DataSize > 0 then begin GetMem(Data, DataSize); try Socket.ReceiveBuf(Data^, DataSize); WaveFile.Write(Data^, DataSize); lblFileSize.Caption := 'Receiving: ' + FormatSize(WaveFile.Stream.Size); finally FreeMem(Data); end; end; end; except tcpClient.Active := False; Application.HandleException(Self); end; end; end.
×
×
  • Создать...