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

Langage Delphi Discussion :

Mettre form au premier plan


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut Mettre form au premier plan
    Bonjour,

    J'ai une form qui fait une exportation des données sous Excel, et compte en même temps les lignes exportées. Si je clique sur le bouton Excel s'ouvre et se met en premier plan cachant ainsi ma form. Je veux un code qui permet à ma form de rester toujours au premier plan même si Excel est lancé.
    Voici mon code :
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    //Rendre Excel Visible
          vMSExcel := CreateOleObject('Excel.Application');
          vMSExcel.Visible := true;
     
          //Se connecter à une instance existante
          try
            vMSExcel := GetActiveOleObject('Excel.Application');
          except
            vMSExcel := CreateOleObject('Excel.Application');
          end;
     
          //Créer un nouveau classeur
          vXLWorkbooks := vMSExcel.Workbooks;
          vXLWorkbook := vXLWorkbooks.Add;
     
          //Accéder à une feuille de calcul
          aSheetName := 'Feuil1';
          vWorksheet := vXLWorkbook.WorkSheets[aSheetName];
     
          //Accéder à une cellule
          aRange := 'A1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'NOM ET PRENOM';
          vCell.Value := aValue;
     
          aRange := 'B1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'SECTION';
          vCell.Value := aValue;
     
          aRange := 'C1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'ABONNE';
          vCell.Value := aValue;
     
          aRange := 'D1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'COMPTEUR';
          vCell.Value := aValue;
     
          aRange := 'E1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'DATE INSTALLATION';
          vCell.Value := aValue;
     
          aRange := 'F1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'TARIF';
          vCell.Value := aValue;
     
          aRange := 'G1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'CUMUL KWH';
          vCell.Value := aValue;
     
          aRange := 'H1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'NBRE ACHAT';
          vCell.Value := aValue;
     
          aRange := 'I1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'RD+PF';
          vCell.Value := aValue;
     
          aRange := 'J1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'DER ACHAT';
          vCell.Value := aValue;
     
          aRange := 'K1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'KWH CONSO';
          vCell.Value := aValue;
     
          aRange := 'L1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'INDEX';
          vCell.Value := aValue;
     
          aRange := 'M1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'DIF';
          vCell.Value := aValue;
     
          aRange := 'N1';
          vCell := vWorksheet.Range[aRange];
          aValue := 'OBSERVATIONS';
          vCell.Value := aValue;
     
          //Mise en place de la formule de calcul de la difdérence
          vWorksheet.Range['M2', 'M3000'].Formula :='=SUM(K2+L2-G2)';
     
          //Pour réaliser l'ajustement des colonnes
          vWorksheet.Range['A1','N3000'].Columns.Autofit;
     
          Label1.Visible := true;
          Label2.Visible := true;
          Label2.Caption := '0';
          Idx := 1;
          while not Query_Excel.Eof do
                begin
                  Inc(Idx);
                  for Cpt :=0 to Query_Excel.FieldCount-1 do
                  vWorksheet.cells.item[Idx, Cpt+1].value:=Query_Excel.Fields[Cpt].AsString;
                  Query_Excel.Next;
                  Application.ProcessMessages;
                  Label2.Caption := IntToStr(Idx) + ' ' + 'Abonnés.';
                end;
          Label1.Caption := 'Fin de traitement :';
     
          //Enregistrer le classeur
          vSaveChanges := true;
          aFileName := 'c:\compteurs_kdg_' + FormatDateTime('dd-mm-yyyy', date) + '.xls';
          vXLWorkbook.SaveAs(aFileName);
          //vXLWorkbook.Close(vSaveChanges, aFileName);
          Fichier := 'c:\compteurs_kdg_' + FormatDateTime('dd-mm-yyyy', date) + '.xls';
          //Ouvrir le classeur
          //ShellExecute(0,'OPEN', 'Fichier', Nil, Nil, SW_SHOW);
        end;
    Merci pour toutes aides.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 522
    Points : 25 052
    Points
    25 052
    Par défaut
    Voir si avec StayOnTop tu peux y arriver, sinon forcer via SetForegroundWindow puis BringToFront
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 141
    Points : 142
    Points
    142
    Par défaut
    TControl.BringToFront (va voir l'aide) ne ferait pas ton bonheur?
    Sinon l'API Windows propose une fonction BringWindowToTop (aide).
    *LeGEC*

  4. #4
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    StayOnTop marche bien. Merci bien.

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

Discussions similaires

  1. Form en premier plan
    Par Ethmane dans le forum Delphi
    Réponses: 4
    Dernier message: 10/11/2006, 18h34
  2. [C#] form au premier plan
    Par JMsme dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2006, 14h40
  3. Form en premier plan
    Par bandit boy dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/04/2006, 09h25
  4. Définir form au premier plan
    Par Aurèl90 dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2006, 10h20
  5. [VB6]Form en premier plan
    Par VeNus2 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/04/2004, 12h05

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