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 VCL Delphi Discussion :

Fenêtre dans une autre?


Sujet :

Composants VCL Delphi

  1. #21
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci beaucoup de ta réponse, j'ai un souci d'utilisation... la variable AppArrive, je la déclare avec quel valeur... j'ai essayé avec "TCustumForms"

    Et donc, si je veux initialiser mes composants, (AppArrive.Edit1.text:='lut') je ne peut pas le faire de cette façon, il faut que je passe par FindComponent

    Est-ce normal ou pas???

    Merci d'avance !!!

  2. #22
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    dit donc jojo, tes messages sont pleins de confusions, ou alors c'est moi qui ne suis pas réveillé !

    on peut mettre une fiche sur une autre, c'est sur, il suffit de jouer sur le Parent...mais les Frame c'est fait pour ça et c'est intégré dans l'IDE !

    donc je reviens sur ce que je disais au début, pourquoi veux-tu donc coller un TForm dans un TPanel alors qu'il suffit de poser un TFrame sur ta fiche ?!

    tu cherches à déclarer AppArrive quelque part, alors que si tu prends un TFrame que tu nomes TAppArrive, il suffit de le coller sur Form1 pour avoir un Form1.AppArrive1 !
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #23
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Personnellement, je préfère le TForm ancrée, le code de la forme est moins mélangé qu'avec une TFrame qui devient selon son utilisation, quelques fois, une belle uzinagaz, surtout que peu de monde gère correctement les instances de frames ...
    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

  4. #24
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    donc je reviens sur ce que je disais au début, pourquoi veux-tu donc coller un TForm dans un TPanel alors qu'il suffit de poser un TFrame sur ta fiche ?!
    tu cherches à déclarer AppArrive quelque part, alors que si tu prends un TFrame que tu nomes TAppArrive, il suffit de le coller sur Form1 pour avoir un Form1.AppArrive1 !
    Je débute, et je connais pas toutes les possibilitées...

    J'avais essayé avec un TFrame et je n'avais pas bien réussi, c'est pourquoi je me suis dirigé vers le panel...
    Je ne sais pas comment faire avec le TFrame car j'ai plusieurs fenêtre...
    Est-ce que avec un seul TFrame je pourrais coller plusieurs Forms?

    Je ne comprend plus rien... entre Le Panel et TFrame... Il faut que je reprenne tout mes éssais pour tester le fonctionnement...

    Pourrais-tu m'illustrer ton idée avec un morceau de code???

    Merci de votre aide.

  5. #25
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Est-ce que avec un seul TFrame je pourrais coller plusieurs Forms?
    Oui, la Frame se comporte comme un composant de la palette (soit par recensement, soit par l'icone cadre de l'onglet standard), tu peux l'insérer dans plusieurs forms, mais attention, chaque fois que tu le pose, cela crée une nouvelle instance de la frame dans la forme (commme pour n'importe quel composant), et si tu relies des évènements de la frame depuis la form, cela peut vite devenir brouillon ... en général, les Frames sont utiles pour grouper un ensemble de controle régulièrement utilisé dans l'application ...il peut être qu'une coquille vide, pour faciliter le design, ou complètement orienté métier (par exemple pour une utilisation DB quelques propriétés publiées genre DataSource ainsi que quelques méthodes Edit\Insert\Post pour que tous les composants de la frame soit directement attaché à un seul dataSource)
    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

  6. #26
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    ShaiLeTroll, toi tu me conseil de conserver le TPanel pour une question de claretée?

    Pour la Proposition de Paul TOTH je referais des éssais pour voir mais l'utilisation des Frams ne m'avait pas convaincu lors de mes premiers essais.

    Merci à vous !

  7. #27
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    Comme dit précédemment, rien n'empêche de faire la même chose avec des TFrame que tu colle sur le panel.

    Le panel est la simplement pour ancré les forms ou frames.
    On peut s'en passer et coller les forms/frames directement sur la form principale.
    Akim Merabet

  8. #28
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Ah !!!

    J'me disais bien qu'il y avait quelque chose que je n'avais pas pigé...

    Paul TOTH m'as donc conseillé de coller mes Frames dans un Panel c'est ça???

    Ce qui me chagrine, c'est que je n'arrive pas à ajouter un cadre sur une frame (BorderStylle) comme avec un TForm... Avec une croix rouge pour fermer etc...

    Et je n'arrive pas à créer et coller ma frame...

    J'ai trouvé un code qui fonctionne mais je n'arrive pas à créer la fonction et je n'arrive toujours pas à faire changer la valeur d'un TEdit qui ce trouve sur la frame... Voici le code que j'ai bidouillé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var test:TFrame
    begin
    test:=TFrame2.Create(Self);
    test.Name:='Test';
    test.Parent:=Form1.Panel1;
    test.Show;
    Test.Edit1.Text:='Salut !'; // tentative de modification d'un objet qui est sur la frame... je vous montre ce que j'ai éssayé pour que vous me corrigiez.
    end;
    Je me demande si je ne vais pas garder

  9. #29
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    tu cree une frame avec un edit dedans

    et dans ta form principal tu met un bouton et un panel

    dans le gestionnaire du bouton tu ecris ca et ca va marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      fra: TMaFrame;
    begin
      fra := TMaFrame.Create(self);
      fra.Align := alClient;
      fra.parent := LePanelDeLaFormPrincipale;
     
      fra.Edit1.Text := 'test';

    du coup il faudra penser a liberer la frame lors de la destruction de la fenetre principale ou du changement de frame
    Akim Merabet

  10. #30
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    pour ton probleme de bordure, tu n'a qu'a mettre une bordure au panel de la fenetre principale qui contient tes frames :\
    Akim Merabet

  11. #31
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    du coup je change mon avatar

    je sais rien a voir avec le sujet ....
    Akim Merabet

  12. #32
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    argh ! mais qu'est ce que tu fais

    enfin bon, je n'ai pas bien compris ton pb

    1) tu ouvres un nouveau projet
    2) tu crées une nouvelle Frame
    3) dans la palette de composant tu sélectionnes TFrame
    4) tu cliques sur la fiche Form1, et dans la fenêtre qui apparait tu choisies Frame1

    Et voila ! ton TFrame est dans ta fiche

    tout ce que tu ajoutes dans TFrame1 sera répercuté dans Form1.Fram1:TFrame1 (voir clic droit "revenir à l'hérité" au cas ou t'as des trucs bizarres)

    tu peux très bien faire ça pour déporter une partie de ta fiche dans une frame à part...ça allège le code de ta fiche car tout le traitement de la frame se fait dans une nouvelle unité.

    mais il est également possible de réutiliser cette frame sur d'autre fiche (et la même fiche aussi d'ailleurs).

    disons que sur plusieurs fiches tu dois afficher un TListBox avec un bouton "Ajouter", un bouton "Supprimer" et un bouton "Effacer"...tu places tout ça sur un TFrame, et partout ou tu as besoin de ces composants tu colles simplement la frame.

    dans la frame le OnClick de Effacer peut contenir ListBox1.Clear valable pour toutes les instances de la fiche, idem pour supprimer.

    et pour le bouton Ajouter tu personnalises le clic sur chaque fiche.


    PS: pour la bordure, en effet TFrame ne propose pas de BorderStyle, soit tu surcharge le CreateParams de la frame pour lui donner l'attribut qui va bien, soit tu places le TFrame dans un TPanel (plus facile mais moins propre)...tu peux aussi coller un TBevel dans ta frame éventuellement.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  13. #33
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par Kaféine Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      fra := TMaFrame.Create(self);
    du coup il faudra penser a liberer la frame lors de la destruction de la fenetre principale ou du changement de frame
    et à quoi sert d'affecter un Owner alors ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #34
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    je pensais dans le cas de plusieurs frame pour pas se retrouver avec plusieurs frame d'instanciée en même temps en mémoire
    Akim Merabet

  15. #35
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    disons que sur plusieurs fiches tu dois afficher un TListBox avec un bouton "Ajouter", un bouton "Supprimer" et un bouton "Effacer"...tu places tout ça sur un TFrame, et partout ou tu as besoin de ces composants tu colles simplement la frame.
    Et je fais comment après pour modifier les propriétées des composants? si par exemple j'ai un Form Gestion des Utilisateurs et un Autre Gestion des véhicules (c'est un éxemple bidon...)
    Et que sur ma Form Gestion des utilisateur je viens coller la Frame avec comme tu l'as dit :'un bouton ajouter', 'un bouton supprimer' et un DBLookupComboBox';
    Comment faut-il faire pour modifier les elements de la frame notament, pour modifier les propriétées du DBLookupComboBox...

    Tu comprends ma question?

    Merci de ton aide !

  16. #36
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Et je fais comment après pour modifier les propriétées des composants? si par exemple j'ai un Form Gestion des Utilisateurs et un Autre Gestion des véhicules (c'est un éxemple bidon...)
    Et que sur ma Form Gestion des utilisateur je viens coller la Frame avec comme tu l'as dit :'un bouton ajouter', 'un bouton supprimer' et un DBLookupComboBox';
    Comment faut-il faire pour modifier les elements de la frame notament, pour modifier les propriétées du DBLookupComboBox...

    Tu comprends ma question?

    Merci de ton aide !
    tu connais la notion d'héritage en programmation objet ?

    la frame et son unité, c'est le modèle de départ

    dans chaque fiche tu as une instance de cette frame que tu peux modifier. Par exemple en cachant un bouton, ou en changeant son libellé, et dans le cas de DBLookupComboBox d'indiquer sur quelles tables il travaille. Chaque fiche possède un exemplaire de la frame, mais chaque exemplaire pointe sur des données propres.

    En fait, une fois la frame posée sur une fiche, elle se modifie comme n'importe quel autre composant de la fiche

    y'a juste une petite différence sur les événements puisqu'il est possible d'invoquer l'événement hérité (celui défini directement dans l'unité de la Frame) avant celui de la fiche (ou après ou pas du tout).
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  17. #37
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Génial! c'est super. Merci beaucoup !!!


    Encore un soir ou je me coucherais moin C**...

    Franchement, merci de votre aide.
    Je vais retravailler mon appli et je vous tiendrais au courant en cas de soucis !

    Merci Beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Centrer une fenêtre dans une autre
    Par johnrando dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/11/2014, 09h16
  2. Incorporer une fenêtre dans une autre
    Par fanxat dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/04/2009, 20h40
  3. Creation d'un formulaire permettant d'ajouter des information dans une autre fenêtre
    Par @rno0059 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/06/2007, 07h47
  4. galerie d'image qui s'ouvre dans une autre fenêtre
    Par crampouz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 14h17
  5. Réponses: 3
    Dernier message: 05/09/2005, 14h09

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