nCount := 0;
FillChar(AbsFrequency, SizeOf(AbsFrequency), 0);
for i := 0 to mmEncryptMessage.Lines.Count β 1 do
for j := 1 to Length(mmEncryptMessage.Lines[i]) do
begin
//ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Ch := mmEncryptMessage.Lines[i][j];
//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»
//ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΡΡΡΠΊΠΈΡ Π±ΡΠΊΠ²
if Ch in RusLetters then
begin
//ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ
//ΠΈ Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΡΡΠΊΠΈΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ
AbsFrequency[UpCaseRus(Ch)] :=
AbsFrequency[UpCaseRus(Ch)] + 1;
Inc(nCount);
end;
end;
if nCount = 0 then
begin
MessageDlg(\'ΠΠ΅ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ\' +
\' ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΡΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ\', mtError, [mbOk], 0);
Exit;
end;
//Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΎΡΡ Π±ΡΠΊΠ² Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ
//ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ
FillChar(RelFreqInMsg, SizeOf(RelFreqInMsg), 0);
for i := Low(RusSrcAlphabet) to High(RusSrcAlphabet) div 2 do
RelFreqInMsg[RusSrcAlphabet[i]] :=
AbsFrequency[RusSrcAlphabet[i]] / nCount;
//ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΎΡ, ΠΏΡΠΈ
//ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΡΡΠΎΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΠΈΡ Π±ΡΠΊΠ²
//Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΡΠ°ΡΡΠΎΡΠ°ΠΌ
//ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΠΈΡ Π±ΡΠΊΠ² Π² ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΡΠΎ Π΅ΡΡΡ ΡΡΠΌΠΌΠ°
//Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΡΠ°Π·Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΎΡ Π±ΡΠΊΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ
h := High(RusSrcAlphabet) div 2 + 1;
MinDelta := h;
for i := 1 to h β 1 do
begin
Delta := 0;
for j := 0 to h β 1 do
Delta := Delta + Abs(RelFreqInLang[RusSrcAlphabet[j]] β
RelFreqInMsg[RusSrcAlphabet[(i + j + h) mod h]]);
//ΠΎΡΠ΅ΡΠ΅Π΄Π½Π°Ρ ΡΡΠΌΠΌΠ° ΡΠ°Π·Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ?
if MinDelta > Delta then
begin
//Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π΅Π΅β¦
MinDelta := Delta;
//β¦ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΊΠ»ΡΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ
//Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
nHackKey := i;
end;
end;
edKey.Text := IntToStr(nHackKey);
h := High(RusSrcAlphabet) + 1;
RecalcAlphabet(h β nHackKey mod h);
mmDecryptMessage.Lines.BeginUpdate;
mmDecryptMessage.Clear;
for i := 0 to mmEncryptMessage.Lines.Count β 1 do
mmDecryptMessage.Lines.Add(DecryptString(
mmEncryptMessage.Lines[i], nHackKey));
mmDecryptMessage.Lines.EndUpdate;
end;
ΠΡΠΎΠ³ ΡΠ°Π±ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 12.9. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ Π½Π°Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ!
Π ΠΈΡ. 12.9. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Π¨ΠΈΡΡ Π¦Π΅Π·Π°ΡΡ β Π²Π·Π»ΠΎΠΌΒ»
Π₯ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠ°ΡΡΠΎΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΠ°ΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠΊΠ², Π½ΠΎ ΠΈ ΠΏΠΎ ΡΠ°ΡΡΠΎΡΠ΅ ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ»ΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Π΅Π΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΠΈΠΌΠΎΠΉ ΠΈ ΠΠΈΠΊΠΎΠ»Π°Π΅ΠΌ, ΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΠΈΠΌΠ° Π½Π°ΡΠ½Π΅Ρ ΡΠ²ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠ»ΠΎΠ² Β«ΠΠΎΡΠΎΠ³ΠΎΠΉΠΠΈΠΊΠΎΠ»Π°ΠΉΒ» Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π½Π°ΡΠ½Π΅Ρ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Β«Π«ΠΡ2!Β». ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ°ΠΌΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΡΠΊΡΡΡΡ ΡΠ΅ΠΉ-ΡΠΎ ΡΠΈΡΡ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΡ, ΡΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ. Π§Π°ΡΡΠΎ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉΠΊΠΎΡΡΠΈ ΡΡΠΈΡ ΡΠΈΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΡΡΠΎΡΠ½ΡΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ ΡΡΠ° ΠΊΠ½ΠΈΠ³Π°. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ Π½ΡΠ°Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Windows ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ°). ΠΠΎ ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Deplhi, ΡΠ°ΠΊ ΠΈ Windows API Ρ ΠΎΡΡ Π±Ρ ΠΏΡΠΎΠ»ΠΈΠ»ΠΈ ΡΠ²Π΅Ρ ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΠΠ‘, ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ (ΡΠ΅ΡΡ ΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ).
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ ΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΡΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ. ΠΠ°ΠΌ Π»ΠΈΡΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ Π²Π°ΠΌ ΡΡΠΏΠ΅Ρ ΠΎΠ², ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Delphi ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ ΡΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1 ΠΠΎΠ΄Ρ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ
Π ΡΠ°Π±Π». Π1.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠΎΠ΄Ρ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° Π1
. 1 . ΠΠΎΠ΄Ρ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2 ΠΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ: ΠΎΠ±ΡΠΈΠ΅ (ΡΠ°Π±Π». Π2.1), Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (ΡΠ°Π±Π». Π2.2), ΡΡΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ (ΡΠ°Π±Π». Π2.3), ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ (ΡΠ°Π±Π». Π2.4), ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ (ΡΠ°Π±Π». Π2.5), ΡΠΏΠΈΡΠΊΠΎΠ² (ΡΠ°Π±Π». Π2.6) ΠΈ ΡΡΠΈΠ»ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (ΡΠ°Π±Π». Π2.7).
Π’Π°Π±Π»ΠΈΡΠ° Π2.1
. ΠΠ±ΡΠΈΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
Π’Π°Π±Π»ΠΈΡΠ° Π2.2. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
Π’Π°Π±Π»ΠΈΡΠ° Π2.3. Π‘ΡΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ
Π’Π°Π±Π»ΠΈΡΠ° Π2.4. Π‘ΡΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ
Π’Π°Π±Π»ΠΈΡΠ° Π2.5. Π‘ΡΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ
Π’Π°Π±Π»ΠΈΡΠ° Π2.6. Π‘ΡΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² (ListBox)Π’Π°Π±Π»ΠΈΡΠ° Π2.7. Π‘ΡΠΈΠ»ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (ComboBox)
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3 Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² wParam ΠΈ lParam ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π§Π°ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ wParam ΠΈΠ»ΠΈ 1 Par am ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° ΡΡΡΡΠΊΡΡΡΡ. ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ: ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Windows.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° WM_SETTEXT, WM_SETFONT ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΈΠΌ ΠΌΠΎΠ³ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ GET, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΡΠ°ΠΊ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (ΡΠ°Π±Π». Π3.1), ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΡΠ°Π±Π». Π3.2), ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ (ΡΠ°Π±Π». Π3.Π), ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π΄ΠΏΠΈΡΡΠΌΠΈ (ΡΠ°Π±Π». Π3.4), ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌ (ΡΠ°Π±Π». Π3.5), ΡΠΏΠΈΡΠΊΠΎΠΌ (ΡΠ°Π±Π». Π3.6) ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ (ΡΠ°Π±Π». Π3.7).
Π’Π°Π±Π»ΠΈΡΠ° Π3.1
. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π’Π°Π±Π»ΠΈΡΠ° Π3.2. Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π’Π°Π±Π»ΠΈΡΠ° Π3.3. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
Π’Π°Π±Π»ΠΈΡΠ° Π3.4. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½Π°Π΄ΠΏΠΈΡΡΠΌΠΈ
Π’Π°Π±Π»ΠΈΡΠ° Π3.5. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌΠ’Π°Π±Π»ΠΈΡΠ° Π3.6. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠΌ (ListBox)
Π’Π°Π±Π»ΠΈΡΠ° Π3.7. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ (ComboBox)