Hurtig tutorial på hvordan du sender en tilpassede vinduer melding til alle former i et program
Dette høres ut som det skal være en ganske enkel oppgave. Dessverre dokumentasjonen i delphi mangler på dette temaet. Å starte denne opplæringen opprette et nytt prosjekt i Delphi og tilsett 2 nye former. Lagre alle filene og bruke standard navnene på Form1, Form2, Form3.
Vi er nå klar :)
Det er noen enkle trinn for å følge.
Definer beskjed handlers
Send melding til alle former
Definer Message konstanter Dette er enkelt, bare legge erklæringen i bruk i form1 som følger:
const JR_1 = WM_USER + 1;
WM_USER er vinduer definert område av WM verdier som du har lov til å bruke. Når du oppretter egendefinerte meldinger alltid starter på WM_USER + X ..., verdier for å unngå er WM_USER + 100, 500, 1000, etc. fordi komponent forfattere har en tendens til å bruke disse felles verdier for sine egne formål.
Definer beskjed handlers
For å gjøre dette klarere og redusere koden jeg har laget et skjema klasse som alle former i dette eksemplet vil være basert på.
Legg denne koden til bruksområder avsnittet under const erklæring nettopp lagt
typen TMessageForm = klasse ( TForm) beskyttet prosedyre JR1 (var Melding: TMessage); Meldingen JR_1; end;
Nå kan du legge til følgende kode i gjennomføringen delen
{- TMessageForm.JR1} prosedyre TMessageForm.JR1 (var Melding: TMessage.); begynne Caption: = 'Message Recieved'; enden,
Ok, så nå har vi en form klasse som kan svare på vår egen melding. Alt vi trenger å gjøre er å endre alle skjemaer som skal avledet fra TMessageForm stedet for TForm, som så:
TForm1 = klasse (TMessageForm) end;
Du må legge 'enhet1' til din bruk klausul i enheter 2 &Co. . 3 som så
bruker Windows, Meldinger, SysUtils, kurs, grafikk, kontroller, skjemaer, Dialoger, Unit1;
Du må også gjøre alle former synlige ved oppstart. Vi gjør dette ved å redigere prosjektene .dpr fil. Dette kan gjøres ved åpningen i filen i notepad, eller ved hjelp av prosjektleder.
Vil åpne Prosjektleder trykke CTRL + ALT + F11, og velg deretter høyreklikk på prosjektnavnet, og velg "vis kilde" Anmeldelser lim inn følgende kode:
bruker Skjemaer, Windows, Unit1 i 'Unit1.pas {Form1} Unit2 i' Unit2.pas {Form2} Unit3 i 'Unit3.pas {Form3}; product: { $ R * res}
begynne Application.Initialize; Application.CreateForm (TForm1, Form1); Application.CreateForm (TForm2, Form2); Showwindow (Form2.Handle, SW_SHOW); Application.CreateForm (TForm3, Form3); Showwindow (Form3.Handle, SW_SHOW); Application.Run; enden.
Vi har lagt Windows til bruksområder delen fordi vi trenger å ringe Showwindow. Showwindow, gjør akkurat hva det står på tinn;..) Det viser en form i håndtaket
Nå er vi klar til å sende meldinger til alle skjemaene i søknaden
Send melding til alle former Anmeldelser Legg til en knapp i Form1 og dbl klikk på den. Lim inn denne koden
{- TForm1.Button1Click} prosedyre TForm1.Button1Click (Sender: TObject.); Var i: Integer; begynne for i: = 0 til Screen.FormCount -1 gjøre Screen.Forms [i] .Utfør (JR_1,0,0); end;
Nå kjører programmet og din alle sortert;) Hvis du har problemer med å følge denne artikkelen så kan du laste ned hele kildekoden her:
Previous:Windows Taskbar Tips &Tricks