小编tes*_*345的帖子

在Delphi中更改单元的初始化顺序

我正在使用Delphi XE7开发Windows 32位应用程序.

我的应用程序包含许多单元,它有一个初始化部分.我需要首先初始化一个特定的初始化部分.

是否可以设置优先级?我曾尝试在dpr文件中编写初始化部分,但编译器拒绝了这一点.

请帮我初步执行特定的初始化部分.提前致谢.

delphi delphi-xe7

6
推荐指数
2
解决办法
421
查看次数

使用Delphi以编程方式检查SD卡是否可用

我正在使用Delphi 10 Seattle开发移动应用程序.我需要以编程方式检查SD卡是否在使用Delphi 10 Seattle的设备中可用?

我找到了一些使用JAVA的样本.请用Delphi为我提供一些例子

delphi android firemonkey delphi-10-seattle

4
推荐指数
1
解决办法
568
查看次数

使用 Firemonkey/Delphi 打开 Android 26 的 PDF 文件时出现异常

我正在使用 Delphi 10.1 Berlin 开发 Android 移动应用程序,我需要从应用程序打开 PDF 文件,但出现错误 - android.os.FileUriExposedException: file:///Storage/emulated/0/Download/ AppDataDetails/1.Pdf 通过 Intent.getData() 暴露在应用程序之外,下面我提到了代码:

AndroidManifest.template.xml:

<!-- **** ADD THIS SECTION **** -->
<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.AatchiyarIAS.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/>
</provider>
Run Code Online (Sandbox Code Playgroud)

provider_paths.xml:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <external-path name="external_files" path="."/>
</paths>
Run Code Online (Sandbox Code Playgroud)

德尔福代码:

function TFrameFileDetail.GetMimeType(Uri: Jnet_Uri): JString;
var
  MimeType: JString;
  ContentResolver: JContentResolver;
  FileExtension: JString;
begin
  // /sf/answers/2218425401/

  MimeType := nil;
  if (Uri.getScheme.equals(TJContentResolver.JavaClass.SCHEME_CONTENT)) then
  begin
    ContentResolver := TAndroidHelper.Context.getContentResolver();
    MimeType := ContentResolver.getType(uri);
  end
  else
  begin
    FileExtension := TJMimeTypeMap.JavaClass.getFileExtensionFromUrl(uri.toString());

    MimeType := …
Run Code Online (Sandbox Code Playgroud)

pdf delphi android delphi-10.1-berlin

3
推荐指数
1
解决办法
1965
查看次数

使用 Delphi for Android 显示 TMediaPlayer.Duration 和 TMediaPlayer.CurrentTime 的秒数

我正在使用 Delphi 10.3 开发 Android 移动应用程序。我正在使用 TMediaPlayer 播放 mp3 文件。我想显示当前时间和当前播放的媒体文件的剩余时间,包括分钟和秒(mm:ss - 参考:VLC 媒体播放器)。但我可以正确显示分钟,并且我想用两位数显示秒。

请帮助我正确显示秒数。

在这里,我提到了我尝试过的代码。

procedure Timer1Timer(Sender: TObject);
begin
  TrackBar1.Tag := 1;
  TrackBar1.Value := MediaPlayer1.CurrentTime;
  CurrentMin := MediaPlayer1.CurrentTime div 1000 div 600000;
  CurrentSec := MediaPlayer1.CurrentTime div 1000; // Seconds
  DurationMin := MediaPlayer1.Duration div 1000 div 600000;
  DurationSec := MediaPlayer1.Duration div 1000; // Seconds
  LabelCurrentTime.Text   := Format('%2.2d : %2.2d', [CurrentMin, CurrentSec]);
  LabelRemainingTime.Text := Format('%2.2d : %2.2d', [DurationMin, DurationSec]);
  TrackBar1.Tag := 0;  
end;
Run Code Online (Sandbox Code Playgroud)

delphi android tmediaplayer delphi-10.3-rio

2
推荐指数
1
解决办法
526
查看次数

客户端连接到TIdTCPServer时线程数增加

我有一个使用Delphi 10.1创建的64位服务器应用程序,在此应用程序中我有一个TIdTCPServer组件。

当客户端连接时,线程数增加,而当客户端断开连接时,线程数没有减少。Windows Server计算机上会发生此问题。我没有处理OnConnectOnDisconnect事件中的任何代码。下面是我的OnExecute方法:

  try
      if not AContext.Connection.IOHandler.InputBufferIsEmpty then
      begin
        AContext.Connection.IOHandler.InputBuffer.ExtractToBytes(ReceivedIDBytes.PointerMessage.tyTIDBytes) ;
        ReceivedIDBytes.ClientSocket := AContext.Connection;
        MessageProcessorThread.ProcessMessageQueue.Enqueue(ReceivedIDBytes);
        IndySleep(50);
      end;
      IndySleep(5);
  except
  end;
Run Code Online (Sandbox Code Playgroud)

我应该使用它Application.ProcessMessages()来解决此问题吗?

由于线程数增加,我需要定期重新启动Server应用程序。

delphi indy tcpserver indy10 delphi-10.1-berlin

1
推荐指数
1
解决办法
84
查看次数