Szervezése interakció az alkalmazás a felhasználó Delhiben

alkalmazás felhasználói interakció van jelen minden egyes program. Az alkalmazásnak képesnek kell lennie, hogy tájékoztassa a felhasználót erről, vagy hogy az események, hogy lehetőséget biztosítsunk arra, hogy egy döntést, és azt eljuttatják a programot. Erre a Delphi programozó segítségével többféleképpen, szinttől függően interakció a felhasználói alkalmazás minden egyes esetben.

funkció ShowMessage

A legegyszerűbb eset az ilyen kölcsönhatás - csak tájékoztatja a felhasználót. Nos, legalábbis ez volt az eredmény kiszámításához a nullával osztani. Egyszerű információs üzenet jelzi a felhasználónak, hogy szükség van, hogy a változás a számítás az adatokat. Ahhoz, hogy hozzon létre egy egyszerű információs üzenet egy beépített függvény ShowMessage:

ShowMessage (nullával osztás nem lehet! ');

ShowMesage funkció lehetővé teszi, hogy levezeti az üzenetet egy pár sort. Ehhez, a szabványos szimbólumokat az átmenet a következő sor: # 10 # 13:

ShowMessage ( 'hiba történt nullával osztani.' + # 10 # 13 + 'helyes bevitt adatokat.');

Példa.
Itt van, mit kell keresni egy programot, amely kiszámítja az eredményt elosztjuk a két szám, a szervezet az információ kiadását a felhasználói hibás:

eljárás TForm1.Button1Click (Sender: TObject);
var x, y: egész;
kezdődik
megpróbál
X: = StrToInt (Edit1.Text);
y: = StrToInt (Edit2.Text);
ha y = 0, akkor
kezdődik
ShowMessage (nullával osztás nem lehet! '+ # 10 # 13 + 'beírást.');
Edit2.SetFocus;
exit;
végén;
Label3.Caption: = 'Érték:' + FloatToStr (x / y) ;;
kivéve
ShowMessage (egész kijavítani kell beírni! ');
Edit1.SetFocus;
végén;
végén;

A program figyelmezteti a felhasználót, mint te meg nulla, és általában a bevezetése nem numerikus adatokat vagy nem egész számok. Információ jelenik meg a modális ablak módban, azaz, ha kiadó képviselet működik a program futása megszakad, és továbbra is használható, miután az ablak zárva van a nyilatkozatot követően a függvényhívás ShowMessage:

Szervezése interakció az alkalmazás a felhasználó Delhiben

funkció MessageDlg

Általában csak egy egyszerű információt, a kérelemben meg kell szerezni a felhasználó hozzájárul ahhoz, hogy az adott művelet elvégzésére. Ez a fajta kölcsönhatás a program és a felhasználó teszi MessageDlg funkciót. Ahogy a neve is mutatja, a MessageDlg funkció pontosan párbeszéd hogy feltesz egy kérdést, és várja a felhasználó választ.

Egy ilyen válasz MessageDlg funkció biztosítja a felhasználó egy sor gomb, ami arra utal egy adott választ. Arra a kérdésre, lehet, például, hogy „Igen” - „Nem” vagy „Igen” - „Nem” - „Mégsem”, vagy más lehetőségek. Itt van egy leírás MessageDlg funkciók:

működnek MessageDlg (const Msg: String; DlgType: TMsgDlgType;
Gombok: TMsgDlgButtons; HelpCtx: Longint): egész;

MessageDlg funkció paraméterek:
Msg - a megjelenő üzenetet, hogy kiad egy pár sort, DlgType - írja a párbeszéd, mint a „Veszély, Error, információk, megerősítése”, stb Gombok - egy sor gomb megfelelő fejezetei HelpCtx - az esetek többségében akkor a „0” - nulla. Minden típusú párbeszédet jeleníti meg ikon, amely minden bizonnyal hozzáteszi színes és informatív ablak által kiadott funkciót.

Ahhoz, hogy minél több információt a lehetőségeket, kérjük, használja a Delphi Segítség: CTRL billentyűt az egér a kívánt funkció vagy paraméter. Nyisson meg egy modul a teljes leírást.

MessageDlg függvény visszatérési értéke megfelel a felhasználó adott választ a kérdésre. Ez az érték könnyű megszerezni egy egész változó, és elemezni, mielőtt használni a programban. Például nyomja meg a „Yes” értéke „6” gombot, az eredmény megnyomásával bármely más gombok is könnyű megszerezni.

Például megszervezése érdekében az alkalmazás bezárja a párbeszéd, a program használja ezt az opciót MessageDlg funkciók:

Eredmény: = MessageDlg (Tudni akarja zárni az alkalmazást? ", MtConfirmation [mbYes, mbNo], 0);
ha Eredmény = 6, majd Application.Terminate;

eljárás TForm1.Button1Click (Sender: TObject);
var Eredmény: integer;
kezdődik
ha Memo1.Modified
majd Eredmény: = MessageDlg ( 'Változtatások mentése?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
ügy eredménye
2: exit; // kattintva a „Mégsem”, ki a funkcióból, az alkalmazások bezárása nélkül
6: Memo1.Lines.SaveToFile ( 'ImyaFayla.txt'); // Csattanó „Igen”, mentse a fájlt
7 :; // kattintva „Nem”, nem csinál semmit
mást exit; // Ha az ablak zárva van, ha a „X” a cím - is elhagyja nélkül az alkalmazás bezárása
végén;
Application.Terminate; // Az alkalmazás bezárása
végén;

Szervezése interakció az alkalmazás a felhasználó Delhiben

Látjuk, hogy míg a funkció ShowMessage funkció MessageDlg haladóbb felületen. Beállítható az ablak címét, piktogramoy output egy adott típusú kérelmet, és egy sor gomb, amely lehetővé teszi, hogy fogadják és elemzik a felhasználó választ. Ezzel, MessageDlg funkció sikeresen lehet használni helyette ShowMessage funkciót.

Oroszosodás MessageDlg funkció

Természetesen ezek a gombok címoldalára, mint „igen”, „nem”, „Mégsem” már régóta szabvánnyá vált, és érthető, hogy a felhasználók fordítás nélkül. Alkalmazása azonban MessageDlg függvényt a programban, ahol az összes többi jelek jelennek meg az orosz, azt látjuk, hogy az angol felületen annak ablak néz idegen. Vonikaet kérdés, hogyan lehet Russify ablak címét, és a gombfelirataihoz ilyen kényelmes és hasznos funkciók, mint a MessageDlg.

Számos módja van erre. Cím és név MessageDlg funkcióbillentyűk venni a modul összeállításához és consts.pas helyezni az alkalmazás források. Ezért az adatok megváltoztatása állandók az említett modul, valamint újrafordítás az alkalmazás, akkor kap elég egy orosz nyelvű ablakban kijelzett funkció MessageDlg.

Azonban valami, amit nem mindig helyesen standard modulok Delphi. Van egy másik módja, hogy a társított kialakulhatna egy dinamikus MessageDlg funkciót. Ez a módszer lehetővé teszi, hogy megjelenése előtt dinamikusan változtatni a paramétereket a funkciót. Itt van, hogy e módszer használatával lehet eloroszosodott kéri, hogy mentse a szöveget az előző program:

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
ha Memo1.Modified majd
A CreateMessageDialog ( 'Változtatások mentése?', mtInformation [mbYes, mbNo, mbCancel]) do
megpróbál
Caption: = 'Kérdés, hogy mentse'; // módosítása Ablakcímhez
(FindComponent ( 'Igen'), mint TButton) .Caption: = 'igen'; // oroszosodás „Igen” gombra
(FindComponent ( 'nem'), mint TButton) .Caption: = 'none'; // oroszosodás "No" gombra,
(FindComponent ( 'Mégsem'), mint TButton) .Caption: = 'Mégsem'; // oroszosodás „Mégsem” gombot
ShowModal; // Hívja a párbeszédablakban a modális módban
esetében ModalResult a // vizsgálat eredménye, hogy lezárja a modális párbeszédablak
2: exit;
6: Memo1.Lines.SaveToFile ( 'ImyaFayla.txt');
7 :;
mást exit;
végén;
végül
mentes;
végén;
Application.Terminate;
végén;

Szervezése interakció az alkalmazás a felhasználó Delhiben

Kapcsolódó cikkek