[ Pobierz całość w formacie PDF ]
.Sytuacje te rozpoznawane s¹ ³atwo napodstawie treœci podpowiedzi, których d³uga czêœæ brzmi wtedy (odpowiednio)„Ctrl+V|Memory Recall” oraz „LCD” – to w³aœnie jest treœci¹ pierwszejinstrukcji if.Druga instrukcja if zapobiega wypisaniu na œrodkowym panelutekstu „LCD”, który pe³ni jedynie rolê identyfikacyjn¹.Dotychczasprzeœledziliœmy dzia³anie podpowiedzi zwi¹zanej z klawiszem „MR”, zobaczmy wiêcteraz, jak funkcjonuje podpowiedŸ dubluj¹ca zawartoœæ wyœwietlacza (patrzwydruk 3.11).Wydruk 3.11.Odœwie¿anie zawartoœci wyœwietlaczavoid __fastcall TMainForm::UpdateLCDScreen(const AnsiString& NewNumber,bool Constant){int NumberWidth = LCDScreen->Canvas->TextWidth(NewNumber);// parametr Constant dodany zosta³ w celu wymuszenia lewostronnego// wyrównania gdy wyœwietlana jest sta³a lub zawartoœæ pamiêciif(Operation == coComplete || Constant){if( (NumberWidth >= LCDScreen->Width)&& (LCDScreen->Alignment == taRightJustify) ){LCDScreen->Alignment = taLeftJustify;}else if( (NumberWidth < LCDScreen->Width)&& (LCDScreen->Alignment != taRightJustify) ){LCDScreen->Alignment = taRightJustify;}}else if(LCDScreen->Alignment != taRightJustify){LCDScreen->Alignment = taRightJustify;}LCDScreen->Caption = NewNumber;int pos = LCDScreen->Hint.Pos("|");int length = LCDScreen->Hint.Length();AnsiString LCDScreenHint= LCDScreen->Hint.SubString(pos, length-pos+1);LCDScreen->Hint = NewNumber + LCDScreenHint;if(NumberWidth >= LCDScreen->Width) LCDScreen->ShowHint = true;else LCDScreen->ShowHint = false;}Powy¿sza funkcja wywo³ywana jest ka¿dorazowo, gdy zawartoœæ wyœwietlacza ma siêzmieniæ w wyniku np.wprowadzenia nowej cyfry czy zmiany reprezentacjiwyœwietlania.Po dokonaniu niezbêdnych ustawieñ, zwi¹zanych z wyrównaniemwyœwietlania, nowa zawartoœæ podstawiana jest pod w³aœciwoœæ Captionwyœwietlacza (bêd¹cego etykiet¹ TLabel).Drugi parametr wywo³ania ma za zadaniewymusiæ lewostronne wyrównanie wówczas, gdy na wyœwietlaczu ma pojawiæ siêjedna z predefiniowanych sta³ych – je¿eli bowiem sta³a nie mieœci siê w ca³oœcina wyœwietlaczu, wa¿niejszy jest jej pocz¹tek ni¿ koniec.Parametr ten jestparametrem domyœlnym i mo¿na go pomin¹æ w wywo³aniu – zak³ada siê wówczas, i¿ma on wartoœæ false, zgodnie z deklaracj¹ funkcji:void __fastcall UpdateLCDScreen(const AnsiString& NewNumber,bool Constant = false);Je¿eli funkcja UpdateLCDScreen() stwierdzi, i¿ kursor myszy znajduje siê wobrêbie wyœwietlacza, zwi¹zana z wyœwietlaczem podpowiedŸ (standardowo „|LCD”)uaktualniana jest teraz tak, i¿ jej krótka czêœæ staje siê kopi¹ zawartoœciwyœwietlacza.Aby ograniczyæ wyœwietlenie podpowiedzi tylko do tych przypadków,gdy zawartoœæ wyœwietlacza staje siê zbyt du¿a, by móg³ on pokazaæ j¹ wca³oœci, ustawiana jest odpowiednio w³aœciwoœæ ShowHint wyœwietlacza:if(NumberWidth >= LCDScreen->Width) LCDScreen->ShowHint = true;else LCDScreen->ShowHint = false;Kontrola migracji skupienia pomiêdzy elementami interfejsuJednym z najwa¿niejszych czynników, warunkuj¹cych wygodê obs³ugi aplikacji,jest sposób przekazywania jej danych wejœciowych.W aplikacjach dla Windows – igeneralnie innych aplikacjach sterowanych zdarzeniami i zorientowanych naobs³ugê graficzn¹ – pierwszorzêdne znaczenie ma sposób obs³ugi klawiatury [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • listy-do-eda.opx.pl