Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Binärrechner (gelöst) (https://www.delphipraxis.net/162504-binaerrechner-geloest.html)

loirad 25. Aug 2011 14:40


Binärrechner (gelöst)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich möchte einen Binärrechner programmieren.
irgendwie werden aber, wenn man erst Binär und dann Hexadezimal rechnet, bei Hexadezimal die Binärzahl und die leztze Hexadezimalzahl angezeigt. Woran liegt das?
Ich komm irgendwie nicht dahinter ...

Hier der Quelltext:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Eingabe: TEdit;
    Berechnen: TButton;
    Text1: TLabel;
    Text2: TLabel;
    Binaer: TLabel;
    Hexa: TLabel;
    Auswahl: TRadioGroup;
    procedure BerechnenClick(Sender: TObject);
  private
    { Private-Deklarationen }
    ErgebnisB:array of string;
    ErgebnisH:array of string;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BerechnenClick(Sender: TObject);
var ergB,zaehlerB,iB,ergH,zaehlerH,iH,Zahl:integer;
begin
Zahl:=strtoint(Eingabe.Text);
//Binär
if Auswahl.ItemIndex=0 then
 begin
  Binaer.Caption:='';
  FillChar(ErgebnisB,SizeOf(ErgebnisB),0);
  zaehlerB:=0;
  ergB:=Zahl;
  repeat
   begin
    inc(zaehlerB);
    setLength(ErgebnisB,zaehlerB+1);
    ErgebnisB[zaehlerB-1]:=inttostr(ergB mod 2);
    ergB:=ergB div 2;
   end
  until ergB=0;
  for iB:=zaehlerB-1 downto 0 do
  Binaer.Caption:=Binaer.Caption+ErgebnisB[iB];
 end;
//Hexadezimal
else
if Auswahl.ItemIndex=1 then
 begin
  Hexa.Caption:='';
  FillChar(ErgebnisH,SizeOf(ErgebnisH),0);
  zaehlerH:=0;
  ergH:=Zahl;
  repeat
   begin
    inc(zaehlerH);
    setLength(ErgebnisH,zaehlerH+1);
    case ergH mod 16 of
     0..9: ErgebnisH[zaehlerH-1]:=inttostr(ergH mod 16);
     10: ErgebnisH[zaehlerH-1]:='A';
     11: ErgebnisH[zaehlerH-1]:='B';
     12: ErgebnisH[zaehlerH-1]:='C';
     13: ErgebnisH[zaehlerH-1]:='D';
     14: ErgebnisH[zaehlerH-1]:='E';
     15: ErgebnisH[zaehlerH-1]:='F';
    end;
    ergH:=ergH div 16;
   end
  until ergH=0;
  for iH:=zaehlerH-1 downto 0 do
  Hexa.Caption:=Binaer.Caption+ErgebnisH[iH];
 end
else showmessage('Bitte Endform auswählen!');
end;

end.
Woran liegt das :?:
Anbei ein Bild des Problems!

Sherlock 25. Aug 2011 15:10

AW: Binärrechner
 
Delphi-Quellcode:
  Hexa.Caption:=Binaer.Caption+ErgebnisH[iH];
Das dürfte es sein.

Sherlock

loirad 25. Aug 2011 15:33

AW: Binärrechner
 
Vielen Dank für die Antwort - hat alles geklappt!! Hat mir sehr geholfen! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz