KONVERZIJA DECIMALNOG BROJA U HEKS-A

   Izgled forme rešenja ovog zadataka prikazan je na donjoj slici.

   Forma koristi novu komponentu ComboBox koja sadrži niz stavki u našem primeru brojeva i omuguće da se izabere jedna a takođe poseduje i Edit mogućnosti tj. omogućuje unos i novi stavki u listu. Pritskom na svojstvo Items otvoriće se ekran String List Editor pomoću kojeg upišemo članove te liste što je prikazano na donjoj slici.

   Glavni deo koda ovog programa je sledeći:

.
.
procedure TForm1.ComboBox1Change(Sender: TObject);
Var
i,n,gr:integer;
s:string;
begin
i:=ComboBox1.ItemIndex;
s:=ComboBox1.Items[i];
Val(s,n,gr);
If gr <> 0 Then begin
ComboBox1.SetFocus;
ComboBox1.SelectAll
End
Else Begin
n:=StrToInt(ComboBox1.Items[i]);
Edit1.Text:=DecToBinStr(n)
End;
end;
function TForm1.DecToBinStr(N: Integer): string;
var
S: string;
i: Integer;
Negativan: Boolean;
begin
if N<0 then Negativan:=True;
N:=Abs(N);
for i:=1 to SizeOf(N)*8 do
begin
if N<0 then S:=S+'1'
else S:=S+'0';
N:=N shl 1;
end;
Delete(S,1,Pos('1',S)-1);
if Negativan then S:='-'+S;
Result:=S;
end;

procedure TForm1.Unos(Sender: TObject; var Key: Char);
begin
    If Key=#13 Then
    begin
        ComboBox1.Items.Add(ComboBox1.Text);
        ComboBox1.Text:='';
        Key:=#0;
    End;
end;
end.

   Objasniti ćemo glavne karakteristike ovog programa:

  • U proceduri ComboBox1Change(koja se poziva klikom na neki broj u listi) odredimo redni broj pozvanog člana(i:=ComboBox1.ItemIndex) a zatim preuzmemo element iz liste u promenljivu s(s:=ComboBox1.Items[i]). Nakon toga proveravamo da li je taj string broj, pa ako jeste pretvorimo taj string u ceo broj(n:=StrToInt(ComboBox1.Items[i]) te pozovemo funkciju DecToBinStr koja pretvori broj u binarni(primetite da ovo nije standardna funkcija Delphi-a već je posebno napisana). Na kraju prikažemo dobijeni binarni broj u Edit1 polje. U slučaju ako izabrani član nije numerički podatak vraćamo se na ponovni izbor.
  • U proceduri Unos unosimo novi element u ComboBox1 listu(u događajima ComboBox-a, događaj OnKeyPress). Ispitujemo da li je pritisnut Enter taster(If Key=#13), pa ako jeste dodamo unešeni element u listu.

  Kompletan kod programa možete preuzeti ovde.



http://vojo.milanovic.org
© Copyright, 2005, Milanovic Vojo
All Rights Reserved.