Envoyer un message personnalisé à l'ensemble des formulaires de demande


Rapide tutoriel sur la façon d'envoyer un message windows personnalisé à toutes les formes dans une application

Cela sonne comme il devrait être une tâche relativement simple. Malheureusement, la documentation de delphi est absente sur ce sujet.
Pour commencer ce tutoriel, créer un nouveau projet en delphi et ajouter 2 nouvelles formes. Enregistrez tous les fichiers et utiliser les noms par défaut de feuil1, Feuil2, Form3.

Nous sommes maintenant prêt :)

Il y a quelques étapes faciles à suivre.

  • Définir des Constantes de Message
  • permet de Définir des gestionnaires de messages
  • Envoyer un message à toutes les formes

Définir des Constantes de Message
C'est facile, il suffit d'ajouter la déclaration dans la section uses de form1 comme suit:

const
JR_1 = WM_USER 1

WM_USER windows est défini de la zone de WM valeurs que vous êtes autorisé à utiliser. Lors de la création de messages personnalisés commencent toujours à WM_USER X..., les valeurs à éviter sont WM_USER 100, 500, 1000, etc. parce que composant les écrivains ont tendance à utiliser ces valeurs communes pour leurs propres fins.

permet de Définir des gestionnaires de messages

Pour rendre cela plus clair et réduire le code, j'ai créé une classe de formulaire que toutes les formes dans cet exemple sera basée sur:

Ajoutez ce code à la section uses sous la const déclaration venez d'ajouter.

type
TMessageForm = class (TForm)
protected
procédure JR1(var Message: TMessage) message JR_1
fin

Maintenant, ajoutez le code suivant à la section mise en œuvre.

{- TMessageForm.JR1 }
procédure TMessageForm.JR1(var Message: TMessage)
begin
Caption := 'Message Reçu'
fin

Ok, donc, nous avons maintenant une classe de formulaire qui peut répondre à notre message personnalisé. Tout ce que nous devons faire est de changer tous les formulaires pour être dérivée à partir de TMessageForm au lieu de TForm, comme ceci:

TForm1 = class (TMessageForm)
fin

Vous aurez besoin d'ajouter 'unit1' à votre clause uses dans les unités 2 & 3 comme.

utilise Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Part1

Vous aurez également besoin de faire de toutes les formes visibles au démarrage. nous faisons cela en modifiant les projets .rmr de fichier. Cela peut être fait en ouvrant le fichier dans le bloc-notes, ou en utilisant le Gestionnaire de Projet.

Pour ouvrir le Gestionnaire de Projet appuyez sur CTRL ALT F11, puis sélectionnez à droite, cliquez sur le nom du projet et sélectionnez 'afficher la source'

Coller le code suivant:

utilise
Formes,
Windows,
Unit1 dans ' Unit1.pas' {Form1},
Unite2 dans 'Unite2.pas' {Form2},
Unit3 dans 'Unit3.pas' {Form3}

{$R *.RES}

begin
Application.Initialiser
Application.CreateForm(TForm1, Form1)
Application.CreateForm(TForm2, Form2)
ShowWindow(Form2.Poignée, SW_SHOW)
Application.CreateForm(TForm3, Form3)
ShowWindow(Form3.Poignée, SW_SHOW)
Application.Run
à la fin.

Nous avons ajouté à Windows de la section uses parce que nous avons besoin d'appeler ShowWindow. ShowWindow, fait exactement ce qu'il indique sur l'étain ), il montre un formulaire par sa poignée.

Maintenant, nous sommes prêts à envoyer des messages à toutes les formes dans l'application.

Envoyer un message à toutes les formes

Ajouter un bouton à form1 et double cliquez dessus.
Coller ce code.

{- TForm1.Button1Click }
procedure TForm1.Button1Click(Sender: TObject)
var i: Integer
begin
for i:=0 à l'Écran.FormCount -1 do
à l'Écran.Les formes[i].Effectuer(JR_1,0,0)
fin

ensuite, exécutez l'application et votre tout trié )
Si vous avez des problèmes suite à cet article, alors vous pouvez télécharger le code source complet ici:









Envoyer un message personnalise a l'ensemble des formulaires de demande


Envoyer un message personnalise a l'ensemble des formulaires de demande : Plusieurs milliers de conseils pour vous faciliter la vie.


Rapide tutoriel sur la façon d'envoyer un message windows personnalise a toutes les formes dans une application

Cela sonne comme il devrait etre une tache relativement simple. Malheureusement, la documentation de delphi est absente sur ce sujet.
Pour commencer ce tutoriel, creer un nouveau projet en delphi et ajouter 2 nouvelles formes. Enregistrez tous les fichiers et utiliser les noms par defaut de feuil1, Feuil2, Form3.

Nous sommes maintenant pret :)

Il y a quelques etapes faciles a suivre.

  • Definir des Constantes de Message
  • permet de Definir des gestionnaires de messages
  • Envoyer un message a toutes les formes

Definir des Constantes de Message
C'est facile, il suffit d'ajouter la declaration dans la section uses de form1 comme suit:

const
JR_1 = WM_USER 1

WM_USER windows est defini de la zone de WM valeurs que vous etes autorise a utiliser. Lors de la creation de messages personnalises commencent toujours a WM_USER X..., les valeurs a eviter sont WM_USER 100, 500, 1000, etc. parce que composant les ecrivains ont tendance a utiliser ces valeurs communes pour leurs propres fins.

permet de Definir des gestionnaires de messages

Pour rendre cela plus clair et reduire le code, j'ai cree une classe de formulaire que toutes les formes dans cet exemple sera basee sur:

Ajoutez ce code a la section uses sous la const declaration venez d'ajouter.

type
TMessageForm = class (TForm)
protected
procedure JR1(var Message: TMessage) message JR_1
fin

Maintenant, ajoutez le code suivant a la section mise en œuvre.

{- TMessageForm.JR1 }
procedure TMessageForm.JR1(var Message: TMessage)
begin
Caption := 'Message Reçu'
fin

Ok, donc, nous avons maintenant une classe de formulaire qui peut repondre a notre message personnalise. Tout ce que nous devons faire est de changer tous les formulaires pour etre derivee a partir de TMessageForm au lieu de TForm, comme ceci:

TForm1 = class (TMessageForm)
fin

Vous aurez besoin d'ajouter 'unit1' a votre clause uses dans les unites 2 & 3 comme.

utilise Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Part1

Vous aurez egalement besoin de faire de toutes les formes visibles au demarrage. nous faisons cela en modifiant les projets .rmr de fichier. Cela peut etre fait en ouvrant le fichier dans le bloc-notes, ou en utilisant le Gestionnaire de Projet.

Pour ouvrir le Gestionnaire de Projet appuyez sur CTRL ALT F11, puis selectionnez a droite, cliquez sur le nom du projet et selectionnez 'afficher la source'

Coller le code suivant:

utilise
Formes,
Windows,
Unit1 dans ' Unit1.pas' {Form1},
Unite2 dans 'Unite2.pas' {Form2},
Unit3 dans 'Unit3.pas' {Form3}

{$R *.RES}

begin
Application.Initialiser
Application.CreateForm(TForm1, Form1)
Application.CreateForm(TForm2, Form2)
ShowWindow(Form2.Poignee, SW_SHOW)
Application.CreateForm(TForm3, Form3)
ShowWindow(Form3.Poignee, SW_SHOW)
Application.Run
a la fin.

Nous avons ajoute a Windows de la section uses parce que nous avons besoin d'appeler ShowWindow. ShowWindow, fait exactement ce qu'il indique sur l'etain ), il montre un formulaire par sa poignee.

Maintenant, nous sommes prets a envoyer des messages a toutes les formes dans l'application.

Envoyer un message a toutes les formes

Ajouter un bouton a form1 et double cliquez dessus.
Coller ce code.

{- TForm1.Button1Click }
procedure TForm1.Button1Click(Sender: TObject)
var i: Integer
begin
for i:=0 a l'Ecran.FormCount -1 do
a l'Ecran.Les formes[i].Effectuer(JR_1,0,0)
fin

ensuite, executez l'application et votre tout trie )
Si vous avez des problemes suite a cet article, alors vous pouvez telecharger le code source complet ici:


Envoyer un message personnalisé à l'ensemble des formulaires de demande

Envoyer un message personnalisé à l'ensemble des formulaires de demande : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation