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

Lazarus Pascal Discussion :

Cliquer sur un bouton sur une fiche pour accéder au contenu d'une autre fiche


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chargée de communication
    Inscrit en
    Février 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Chargée de communication
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Cliquer sur un bouton sur une fiche pour accéder au contenu d'une autre fiche
    Bonjour à tous,
    je commence tout juste sur Lazarus, je dois réaliser une application. J'ai réalisé une fiche qui correspond à une page d'accueil sur laquelle il y a un bouton. Je veux qu'en cliquant sur ce bouton on accède au contenu d'une seconde fiche. Comment est-ce que je peux faire ça? C'est à définir dans l'action que j'attribue à mon bouton à ce que j'ai compris... Mais je ne sais pas comment m'y prendre. Merci de votre indulgence (parce que je pense que la solution doit vous paraître évidente) et de votre aide !

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Bijour (c'est vendredi),

    Indépendamment du fait que ça doit se trouver dans tous les tutos, comme c'est vendredi et que je suis bon prince, voici une piste :

    en supposant que ta seconde fiche s'appelle form2, qu'elle est déclarée dans une unité unit2 et qu'elle contient un TEdit nommé edit1, et en supposant que tu veux mettre son texte dans un TEdit nommé lui aussi edit1 sur la form1, tu peux faire, dans le OnClick de ton bouton sur form1 :

    Edit1.Text := Form2.Edit1.Text;

    Mais pour que ça fonctionne, il va falloir, dans la section uses de unit1, dire que tu veux jouer avec l'unit2 :

    uses unit2;

    Basique de chez basique.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bjour c'est samedi @jipété

    comme c'est vendredi et que je suis bon prince
    je vais alors essayé d'être royal

    il y a bien sur trop de suppositions (j'ai connu un grand chef de projet anglais qui disait "d'nt ass/u/me") et bien des manières de faire

    la première manière est déjà fournie par Jipété , les deux formes étant crées au démarrage de l'application ;
    cependant il a oublié d'indiquer qu'il fallait bien évidemment afficher la deuxième forme (show) et même ainsi , petit problème on n'obtient pas la bonne valeur mais la précédente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      Form1: TForm1;
    implementation
    {$R *.lfm}
    uses Unit2;
    { TForm1 }
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form2.Show;
      Label1.Caption:=Form2.Edit1.Text;
    end;
    en reprenant le code basique , après clic du bouton j'ai la valeur 'Edit1' dans label1 et non le hello que j'avais écrit , ce n'est qu'en redemandant l'affichage que j'ai mon 'Hello' , de plus , autre inconvénient de la programmation évènementielle , on peut cliquer ailleurs que dans form2 ! Bref , pas top

    maintenant au lieu de Show on peut utiliser Showmodal mais ce ne sera pas suffisant il va falloir ajouter un bouton sur form2 et surtout gérer le fait de devoir cacher la form2
    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
     
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.lfm}
     
    { TForm2 }
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      Close;   // a remplacer avantageusement par modalresult:=mrok;
    end;
     
    procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
    begin
      CloseAction:=caHide;   // cache la forme 2 
    end;
    on avance , ça fonctionne bien que ce ne soit pas vraiment le top au niveau mémoire.

    on va améliorer ça en créant la form2 lorsque l'on clique sur le bouton et la supprimer quand on n'en a plus besoin

    tout d'abord , modifions le projet de façon a ce que la forme2 ne soit pas crée au démarrage , soit via les options du projet / fiches et basculant form2 dans les fiches disponibles , soit en ouvrant le source du projet et en supprimant sa ligne de création
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // Application.CreateForm(TForm2, Form2);
    on va également modifier l'action à faire lorsque la Form2 sera fermée de caHide on passe à caFree ; et plutôt que de mettre un bouton , on va mettre 2 bitBtn (plus jolis ) mais aussi qui permettent d'avoir directement des valeurs modales (propriétés ModalResult ) le premier bitbtn Ok avec modalResult=mrOk , le second Annuler avec ModalResult=mrCancel;
    luxe , plus besoin du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm2.Button1Click(Sender: TObject);
    begin
      // Close;
    end;
    reste à créer la forme 2 au runtime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Button1Click(Sender: TObject);
    var F : TForm2;  // déclaration
    begin
      F:=TForm2.Create(nil);  // création
      try
        F.Edit1.Text:=Label1.Caption; // initialisation de la valeur 
        if F.Showmodal=mrOk then Label1.Caption:=F.Edit1.Text;  // traitement
      finally
       F.Free;  // 'libération'
      end;
    end;
    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

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bjour c'est samedi @jipété
    (...)
    Un jour de plus et y avait un zip attaché, avec tout ce qu'il faut dedans
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 11h33
  2. Réponses: 7
    Dernier message: 01/07/2014, 20h13
  3. Réponses: 10
    Dernier message: 24/08/2012, 11h17
  4. Réponses: 9
    Dernier message: 30/01/2008, 15h40
  5. Réponses: 2
    Dernier message: 12/03/2007, 14h48

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