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

EDI Delphi Discussion :

Créer par code un nouveau projet dans l'IDE D7


Sujet :

EDI Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Créer par code un nouveau projet dans l'IDE D7
    Bonjour à tous,

    J'ai réussi à ajouter des menu items dans le menu File -> New de l'IDE D7.
    Je peux enregister par code lors de l'installation de mes composants un nouveau template en ajoutant une entrée dans le fichier bin\Delphi32.dro

    Je souhaiterais déclencher par code la création d'un nouveau projet dans Delphi sur base de ce template comme le ferait Delphi avec
    File -> New -> Others
    et obtenir la boite de dialogue pour définir le répertoire cible du nouveau projet.

    Je sais que l'on peut créer entièrement avec du code un nouveau projet avec les Tools API, mais cela demanderait un gros effort alors que mon template existe déjà.

    Quelqu'un a-t-il une idée ou une piste pour faire cela?

    D'avance merci
    Bob

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 152
    Points
    10 152
    Par défaut
    Ces templates ne sont en fait que des fichiers placés dans le répertoire <bds>/objrepos/. Il faut donc copier le bon répertoire et éventuellement faire des modifications dans les sources ainsi copiées (coder en dur l'emplacement de ces données ou les rechercher d'une manière ou d'une autre).
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci, mais ce n'est pas vraiment la réponse que j'attendais.
    le problème n'est pas vraiment le template ou l'emplacement de celui-ci mais l' "émulation" par code des commandes IDE:
    File => New => Other.. => Mon template

    Bob

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Personne??

    Visiblement, ce ne serait pas possible...

    Autre question alors:
    Est-il possible d'ouvrir un projet par code dans l'IDE Delphi pour émuler
    File=>Open(dpr file) ?

    Bob

  5. #5
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Si c'est possible, mais il faut que tu scinde ton problême en plusieurs morceaux.

    Explications :
    Ton problême est en fait plus général que la prise de contrôle pa code de Delphi. Ton problême, c'est en fait d'envoyer des clics de souris ou des codes touches à une application pour réaliser une action spécifique au sein de celle-ci. Bref, on se moque de delphi : tout ce qui t'intéresse c'est de simuler l'appui de de touches dans Delphi afin d'ouvrir les bons menus.

    Alors d'abord regarde mon post ici (simulation de touches) :
    http://www.developpez.net/forums/sho...0&postcount=12

    Puis ce tutoriel (approfondissement du sujet) :
    http://tcharles.developpez.com/simul/?delphi=1

    A partir de ces lectures instructives tu devrais t'en sortir avec du code qui ressemble à celui-ci :
    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
    var i,TabCount:integer;
        AWinHAndle,TabCtrlHandle:HWND;
        AControl:TWinControl;
        Item:PTCItem;
    begin
      //Met Delphi en avant plan
      SetActiveWindow(FindWindow('Delphi', nil));
      sleep(100);
     
      //File => New => Other.. => Mon template
     
      //Menu File (=Alt+F)
      keybd_event(VK_LMENU, 0, 0, 0);
      keybd_event(ord('F'), 0, 0, 0);
      keybd_event(ord('F'), 0, KEYEVENTF_KEYUP, 0);
      keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);
     
      //Déjà positionné sur New
    //  keybd_event(VK_DOWN, 0, 0, 0);
    //   keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
     
       //Other
       keybd_event(VK_RIGHT, 0, 0, 0);
       keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0);
       keybd_event(VK_UP, 0, 0, 0);
       keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0);
     
       //on est sur le bon menu, on ouvre la fenètre
       keybd_event(VK_RETURN, 0, 0, 0);
       keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
       //on attend l'ouverture de la fenêtre (5 secondes)
       sleep(3000);
     
       //on continue en choisissant le bon onglet...
       AWinHAndle:=GetForegroundWindow;
       EnumChildWindows(AWinHAndle, @EnumProc, Integer(memo1.Lines));
       TabCtrlHandle:=FindWindowEx(AWinHAndle,0,PChar('TTabControl'),nil);
       TabCount:=SendMessage(TabCtrlHandle, TCM_GETITEMCOUNT, 0, 0);
     
       //Et là je ne sais pas :/
       EnumTabs(TabCtrlHandle,Memo1.Lines);
    end;
    Bidouilleuse Delphi

Discussions similaires

  1. [Débutant] Ouverture d'un document créer par code en web
    Par Catarssis dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 18/09/2012, 16h48
  2. Problème pour l'ajout d'un nouveau projet dans GitHub
    Par matios dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 14/01/2012, 23h36
  3. Créer du code vba excel réutilisable dans d'autres classeurs excel
    Par nicoMU dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/11/2008, 15h22
  4. Créer par code des relations entre tables d'une même base ?
    Par AndréPe dans le forum Modélisation
    Réponses: 2
    Dernier message: 21/11/2007, 18h27
  5. Réponses: 1
    Dernier message: 20/02/2006, 13h04

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