IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Eviter l'écran noir au lancement


Sujet :

Composants FMX Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Eviter l'écran noir au lancement
    Bonjour à tous,

    J'ai fait ma première appli. /Android /D10, elle permet d'activer / désactiver la sonnerie !!!

    Au lancement de cette appli. une fenêtre noir s'affiche durant la moitié d'une seconde environ puis l'écran de fond revient !!!

    Je n'ai pas utiliser de "Form" dans cette appli., j'exécute une fonction au lancement.


    Est-il possible d'éviter la fenêtre noir à l'exécution ?

    Merci de votre aide !!!

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Citation Envoyé par fveto Voir le message
    Je n'ai pas utilisé de "Form" dans cette appli., j'exécute une fonction au lancement.
    pas de Form, j'ai un doute il doit bien y en avoir une même si elle est détruite juste à la fin du OnCreate ou alors comment cela a-t-il été codé ?

    Est-il possible d'éviter la fenêtre noire à l'exécution ?
    Qui dit fenêtre dit bien qu'il y a une fiche quelque part et rien n'empêche de mettre celle-ci en transparent (je n'ai jamais vérifié pour Android mais au pire en changeant le fond du style) ou, AMHA, mieux une opacité proche de la transparence
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut
    Bonjour Serge,

    Pensant que l'écran noir est causé par le Form, donc, j'ai déclaré une unité :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Application.Initialize;
      Run_Fonction;
      Application.Run;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    unit UFonctions;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Platform.Android,
      FMX.Controls.Presentation, FMX.StdCtrls, System.Notification, FMX.Edit,FMX.Helpers.Android,
     
     
    {$IFDEF ANDROID}
      Androidapi.JNI,
      Androidapi.Jni.JavaTypes,                //JObject
      Androidapi.Jni.Os,                       //JVibrator
      Androidapi.JNI.Media,                     //JAudioManager
      Androidapi.Helpers,                       //SharedActivity
      Androidapi.Jni.GraphicsContentViewText,   //TJContext
      Androidapi.Jni.App,                       //TJActivity
      Androidapi.JNIBridge;                     //ILocalObject
    {$ENDIF}
     
    Procedure Run_Fonction;
     
     
    implementation
     
     
     
     
    Procedure Vibrate (DP : Integer);
    Var  vibObj : JObject;
         vibrat : JVibrator;
    Begin
         vibObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE);
         vibrat := TJVibrator.Wrap((vibObj as ILocalObject).GetObjectID);
         vibrat.vibrate(DP);
    End;
     
    Procedure Mode_Sound;
    Var  audioObj : JObject;
         audioMan : JAudioManager;
    Begin
         audioObj := SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
         audioMan := TJAudioManager.Wrap((audioObj as ILocalObject).GetObjectID);
         If AudioMan.getRingerMode = 1 Then
            audioMan.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL)
         Else
            audioMan.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_VIBRATE);
         Vibrate (300*AudioMan.getRingerMode);
         Sleep   (300*AudioMan.getRingerMode);
         // audioMan.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_SILENT);
    End;
     
    procedure SetSleep(aEnable:Boolean);
    var
        vFlags: integer;
    begin
        vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_TURN_SCREEN_ON or
            TJWindowManager_LayoutParams.JavaClass.FLAG_DISMISS_KEYGUARD or
            TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED or
            TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON;
     
        if aEnable then
        begin
          CallInUIThread (   // uses FMX.Helpers.Android
          procedure
          begin
            TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags);
          end );
        end
        else
          CallInUIThread (
          procedure
          begin
            TAndroidHelper.Activity.getWindow.clearFlags (vFlags);
          end );
    end;
     
    procedure Run_Fonction;
    begin
         SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_FORCE_NOT_FULLSCREEN);
     
         Mode_Sound;
     
         SharedActivity.finish;
         MainActivity.finish;
         Application.MainForm.DisposeOf;
     
    //     SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED);
    end;
     
     
    end.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Re,

    je m'y connais pas assez en Android (en fait carrément en téléphone mobile, j'en ai un, mais qui ne me sert qu'occasionnellement je ne suis donc pas un Hyper dépendant à ce truc)
    mais je n'ai jamais vu une application qui serait "transparente"

    Le fait d'avoir Application.Run doit être le responsable de l'affichage de la forme.

    P.S. j'ai essayé transparent:=true => écran noir;
    un style avec opacité= 0,1 en changeant les propriétés de backgroundStyle fill.color=null et opacity=0,1 => écran blanc

    Qu'en serait-il si l'application était un service ? J'ai déjà dû faire quelque chose comme ça ou du moins étudié ça mais cela fait un bail, pas sûr que ce soit en discussion sur le forum, c'était peut-être en mail privé mais bon, il y a la doc http://docwiki.embarcadero.com/RADSt...rvices_Android
    [Edit] et même ainsi, il faut bien le lancer ce service !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Une idée comme ça : si tu mettais dans ta forme une image identique à celle utilisée au moment où l'application se lance
    ( embarcadero/studio/20.0/bin/artwork/android/FM_splashimage_xxxxxx.png) en jouant en plus sur le MultiresBitmap pour qu'Android se charge de choisir la bonne résolution, c'est de la triche mais pas d'écran noir
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut
    Merci Serge pour cette idée !!!

    Dans Options / Application , on a la possibilité de définir les images à activer (icone, lancement ...) !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. écran noir et aucun bruit
    Par sandytarit dans le forum Périphériques
    Réponses: 22
    Dernier message: 09/12/2006, 10h52
  2. Pc monté écran noir
    Par sandytarit dans le forum Périphériques
    Réponses: 8
    Dernier message: 30/07/2006, 23h52
  3. Premier démarrage: écran noir
    Par chris21 dans le forum Périphériques
    Réponses: 2
    Dernier message: 22/02/2006, 08h30
  4. écran noir avec un shader d'éclairage au pixel près
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 16/05/2005, 12h30
  5. Visual C++ 6 : Problème impression d'écran noir
    Par charliejo dans le forum MFC
    Réponses: 6
    Dernier message: 24/01/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo