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

Delphi Discussion :

Problème avec OnShow de ma fiche principale


Sujet :

Delphi

  1. #1
    Provisoirement toléré
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 73
    Points : 32
    Points
    32
    Par défaut Problème avec OnShow de ma fiche principale
    Bonjour , comment allez vous depuis tout ce temps ? J'ai un petit problème d'apparition de fiche.

    J'ai une fiche astuce du jour et donc avec son option "afficher" au démarrage. J'utilise l'événement OnShow de ma MainForm pour afficher la fiche correspondante. Le problème c'est quelle s'affiche et qu'il faut que je la ferme pour afficher ma mainform et donc je voudrais qu'elle s'affiche après ma mainform, voici mon code pour afficher la fiche astuce du jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TMainForm.FormShow(Sender: TObject);
    begin
      with TTipsOfDayForm.Create(Self) then
        try
          ShowModal;
        finally
          Free;
        end;
    end;
    J'ai essayé avec OnPaint, ça marche, mais il faut passer un paramètre pour éviter qu'elle s'affiche à chaque fois qu'il y a un changement sur la fiche.

    Merci de vos réponses

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 347
    Points : 3 126
    Points
    3 126
    Par défaut
    Bonjour,

    dans le OnShow de ta Form principale, utilise Show au lieu de ShowModal et met la fiche Tip en fsStayonTop

    A+
    Charly

  3. #3
    Provisoirement toléré
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 73
    Points : 32
    Points
    32
    Par défaut
    Bonjour ,

    Le fait de mettre fsSTayOnTop et show ne fait pas apparaitre la fiche principale avant la fiche astuces, c'est encore l'inverse faut fermer la fiche astuce pour avoir la fiche principale.

    Desole

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 717
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 717
    Points : 13 196
    Points
    13 196
    Par défaut
    Citation Envoyé par numeror Voir le message
    Le fait de mettre fsSTayOnTop et show ne fait pas apparaitre la fiche principale avant la fiche astuces, c'est encore l'inverse faut fermer la fiche astuce pour avoir la fiche principale.
    Show n'est pas bloquant contrairement à ShowModal mais la fiche Astuce apparaîtra toujours légèrement avant si appelée depuis OnShow de la principale.

    Le plus simple est simplement de l'appeler par un timer.
    Sinon, la fiche principale peut aussi s'envoyer un message par PostMessage :
    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
    const
      WM_SHOWTIP = WM_USER;
     
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        procedure WMShowTip(var Message :TMessage); message WM_SHOWTIP;
      end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      PostMessage(Handle, WM_SHOWTIP, 0, 0);
    end;
     
    procedure TForm1.WMShowTip(var Message: TMessage);
    begin
      with TTipsOfDayForm.Create(nil) then
      try
        ShowModal;
      finally
        Free;
      end;
    end;

  5. #5
    Provisoirement toléré
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 73
    Points : 32
    Points
    32
    Par défaut
    Re,

    Toute les façons de faire se relevant infructueuse , j'ai donc decide de garder la fonction onpaint. plus facile a gerer.

    Merci quand meme

  6. #6
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par numeror Voir le message
    Toute les façons de faire se relevant infructueuse , j'ai donc decide de garder la fonction onpaint. plus facile a gerer.
    Plutôt que le OnPaint, tu peux utiliser le OnActivate

  7. #7
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 347
    Points : 3 126
    Points
    3 126
    Par défaut
    Bonjour,

    Envoyé par numeror
    Le fait de mettre fsSTayOnTop et show ne fait pas apparaitre la fiche principale avant la fiche astuces, c'est encore l'inverse faut fermer la fiche astuce pour avoir la fiche principale.
    tu dois avoir un problème autre, car dans un petit exemple fait avec D7, avec Show, les 2 fenêtres apparaissent quasiment simultanément. La Form tip est au dessus de la form principale, a priori c'est exactement ce que tu veux (même si comme le dit AndNotOr, il peux y avoir un très léger décalage, invisible à l'oeil)

    A+
    Charly

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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