Einzelnen Beitrag anzeigen

sahry

Registriert seit: 19. Dez 2009
2 Beiträge
 
#1

Umrechnung in die interne Zahlendarstellung eines Rechners

  Alt 20. Dez 2009, 00:14
Hallo,

ich brauche dringend Hilfe für mein letztes Uni Projekt. Mir fehlt nur noch dieser eine Schein und dann kann ich auch meine Diplom Arbeit abgeben, aber leider habe ich mich auf eine Projektarbeit eingelassen in einer Gruppe und wurde nun von dieser im Stich gelassen.. Ich hab die Aufgabe ein Umrechnungsprogramm zur internen Zahlendarstellung (im Hexsystem unn im Binärsystem) in Pascal zu schreiben. Was die Benutzeroberfläche angeht haben wir relativ strikte vorgaben. Ich glaub das hab ich richtig gelöst.
Ich bräuchte dringend Hilfe und das so schnell wie möglich. Ich würde echt nicht Fragen wenn ich mehr Zeit hätte, aber mich hat es schon 3 Wochen gekostet die Benutzeroberfläche zu erstellen weil ich mich mit Delphi/Pascal wirklich null auskenne. Vielleicht möchte mir ja jemand Helfen und hat sogar spaß an der Aufgabe.



Delphi-Quellcode:
unit EINGABE1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, Mask, ExtCtrls;

type
  TFormular = class(TForm)
    LabelUeberschrift: TLabel;
    RadioGroupAusgabetyp: TRadioGroup;
    RadioButtonFestpunkt: TRadioButton;
    RadioButtonIBMDW: TRadioButton;
    RadioButtonIBMExt: TRadioButton;
    RadioButtonIEEELReal: TRadioButton;
    RadioButtonIEEEExtReal: TRadioButton;
    LabelEingabe: TLabel;
    MaskEditEingabeInt: TMaskEdit;
    MaskEditEingabeReal: TMaskEdit;
    LabelAusgabe: TLabel;
    EditAusgabeHex: TEdit;
    EditAusgabeBin: TEdit;
    BitBtnExit: TBitBtn;
    BitBtnUmrechnen: TBitBtn;
    GroupBoxEingabetyp: TGroupBox;
    RadioButtonInteger: TRadioButton;
    RadioButtonReal: TRadioButton;
    LabelSedezimal: TLabel;
    LabelBinaer: TLabel;
    procedure RadioButtonIntegerClick(Sender: TObject);
    procedure RadioButtonRealClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtnUmrechnenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Formular: TFormular;

implementation

{$R *.DFM}

procedure TFormular.RadioButtonIntegerClick(Sender: TObject);
begin
  RadioButtonIBMDW.Enabled := FALSE;
  RadioButtonIBMExt.Enabled := FALSE;
  RadioButtonIEEELReal.Enabled := FALSE;
  RadioButtonIEEEExtReal.Enabled := FALSE;
  RadioButtonFestpunkt.Enabled := TRUE;
  RadioButtonFestpunkt.Checked := TRUE;
  MaskEditEingabeInt.Visible := TRUE;
  MaskEditEingabeReal.Visible := FALSE;

end;

procedure TFormular.RadioButtonRealClick(Sender: TObject);
begin
  RadioButtonIBMDW.Enabled := TRUE;
  RadioButtonIBMExt.Enabled := TRUE;
  RadioButtonIEEELReal.Enabled := TRUE;
  RadioButtonIEEEExtReal.Enabled := TRUE;
  RadioButtonFestpunkt.Enabled := FALSE;
  RadioButtonFestpunkt.Checked := FALSE;
  RadioButtonIBMDW.Checked := TRUE;
  MaskEditEingabeInt.Visible := FALSE;
  MaskEditEingabeReal.Visible := TRUE;
end;

procedure TFormular.FormShow(Sender: TObject);
begin
  RadioButtonInteger.Checked := TRUE;
end;


{ NEU }

procedure TFormular.BitBtnUmrechnenClick(Sender: TObject);


begin { TFormular.BitBtnUmrechnenClick }
  IF (RadioButtonFestpunkt.Checked AND(MaskEditEingabeInt.Text = ''))
     OR (RadioButtonReal.Checked AND (MaskEditEingabeReal.Text = ''))
  THEN Exit;

  IF RadioButtonFestpunkt.Checked
  THEN BEGIN { Ganzzahlige Umrechnung }

         { ===> Code für ganzzahlige Umrechnung einfügen }

         { Ausgabe nach EditAusgabeHex.Text und EditAusgabeBin.Text }

       END
  ELSE BEGIN { Realzahlige Umrechnung }
         IF RadioButtonIBMDW.Checked
            OR RadioButtonIBMExt.Checked
         THEN BEGIN

                { ===> Code für Umrechnung IBM-Gleitpunktformate einfügen }

                { Ausgabe nach EditAusgabeHex.Text und EditAusgabeBin.Text }

              END
         ELSE BEGIN

                { ===> Code für Umrechnung IEEE-Gleitpunktformate einfügen }

                { Ausgabe nach EditAusgabeHex.Text und EditAusgabeBin.Text }
              END;
       END;

end { TFormular.BitBtnUmrechnenClick };


end.


Die Benutzeroberfläche sind dementsprechend so aus:

(Siehe Anhang)

So jetzt fehlen mir natürlich die Code Teile für die Umrechnungen. Wenn jemand mir helfen möchte einfach hier melden.

Edit: Ahso für die Eingaefelder gibt es auch Beschränkungen.
Wenn es Integer ist dann dürfen nur ganze Zahlen eingegeben werden und Vorzeichen.
Bei Real darf auch noch ein Komma eingegeben werden.
Damit hab ich mich schon beschäftigt und dachte an diese Lösung:

Delphi-Quellcode:
procedure TFormular.MaskEditEingabeIntKeyPress(Sender: TObject;
  var Key: Char);
   begin
     if not (Key in ['0'..'9', '+', '-', #8]) then
     begin
     SysUtils.Beep;
     ShowMessage('Bitte geben Sie eine ganze Zahl ein');
     Key := #0;

        end;
     end;

procedure TFormular.MaskEditEingabeRealKeyPress(Sender: TObject;
  var Key: Char);
begin
     if not (Key in ['0'..'9', ',', '+', '-', #8]) then
     begin
     SysUtils.Beep;
     ShowMessage('Bitte geben Sie eine Zahl ein');
     Key := #0;

     end;
      end;
Für weitere und genauere Infos steh ich zur Verfügung

[edit=SirThornberry]Bild in Anhang gepackt damit der Beitrag nicht irgendwann wertlos/unvollständig wird wenn das Bild vom externen Server verschwindet. Mfg, SirThornberry[/edit]
Miniaturansicht angehängter Grafiken
18905236_588.jpg  
  Mit Zitat antworten Zitat