AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quelltext vereinfachen!!!

Ein Thema von Christian18 · begonnen am 17. Mär 2004 · letzter Beitrag vom 17. Mär 2004
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 10:00
Hallo,

Ich habe mir ein kleines Programm geschrieben, womit ich schnell bit und byte u.s.w. erechnen kann. der Quelltext ist bloß sehr lang und unübersichtlich. Das programm läuft so weit ganz gut. Wie kann ich den Quelltext übersichtlich gestalten? Also weniger quelltext und so. Hier mein QuellText:

Delphi-Quellcode:
unit UMain;

interface

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

type
  TFMain = class(TForm)
    Button1: TButton;
    Button2: TButton;
    EEingabe: TEdit;
    RBBit: TRadioButton;
    RBByte: TRadioButton;
    RBKByte: TRadioButton;
    RBMByte: TRadioButton;
    RBGByte: TRadioButton;
    RBTByte: TRadioButton;
    EBit: TEdit;
    EByte: TEdit;
    EKByte: TEdit;
    EMByte: TEdit;
    EGByte: TEdit;
    ETByte: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Button3: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure EEingabeEnter(Sender: TObject);
    procedure EEingabeExit(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FMain: TFMain;

implementation

uses UImpressum;

{$R *.dfm}

procedure TFMain.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if shift=[] then begin
    case key of
      27: Close;
    end;
  end;
end;

procedure TFMain.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TFMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if MessageDlg('Möchten Sie das Programm wirklich beenden ?',mtConfirmation,[mbYES,mbNO],0)=mrYes then
    CanClose:=True
  else
    CanClose:=False;
end;

procedure TFMain.Button1Click(Sender: TObject);
  var zahl1: Real;
      ergebnis: Real;
begin
  if
    RBBit.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    EBit.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 8;
    EByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 8 / 1024;
    EKByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 8 / 1024 / 1024;
    EMByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 8 / 1024 / 1024 / 1024;
    EGByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 8 / 1024 / 1024 / 1024 / 1024;
    ETByte.Text:=FloatToStr(ergebnis);
    end;

//------------------------------------------------------------------------------

  if
    RBByte.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    EByte.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 8;
    EBit.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024;
    EKByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024;
    EMByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024 / 1024;
    EGByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024 / 1024 / 1024;
    ETByte.Text:=FloatToStr(ergebnis);
    end;

//------------------------------------------------------------------------------

  if
    RBKByte.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    EKByte.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024;
    EByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 8 * 1024;
    EBit.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024;
    EMByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024;
    EGByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024 / 1024;
    ETByte.Text:=FloatToStr(ergebnis);
    end;

//------------------------------------------------------------------------------

  if
    RBMByte.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    EMByte.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024;
    EKByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024;
    EByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 8 * 1024 * 1024;
    EBit.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024;
    EGByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024 / 1024;
    ETByte.Text:=FloatToStr(ergebnis);
    end;

//------------------------------------------------------------------------------

  if
    RBGByte.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    EGByte.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024;
    EMByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024;
    EKByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024 * 1024;
    EByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 8 * 1024 * 1024 * 1024;
    EBit.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 / 1024;
    ETByte.Text:=FloatToStr(ergebnis);
    end;

//------------------------------------------------------------------------------

  if
    RBTByte.Checked=True
  then
    begin
    zahl1:=0;
    ergebnis:=0;
    ETByte.Text:=EEingabe.Text;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024;
    EGByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024;
    EMByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024 * 1024;
    EKByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 1024 * 1024 * 1024 * 1024;
    EByte.Text:=FloatToStr(ergebnis);

    zahl1:=0;
    ergebnis:=0;
    zahl1:=StrToFloat(EEingabe.Text);
    ergebnis := zahl1 * 8 * 1024 * 1024 * 1024 * 1024 * 1024;
    EBit.Text:=FloatToStr(ergebnis);
    end;

  if
    RBBit.Checked=True
    and
    RBByte.Checked=True
    and
    RBKByte.Checked=True
    and
    RBMByte.Checked=True
    and
    RBGByte.Checked=True
    and
    RBTByte.Checked=True
  then
    ShowMessage('Bitte treffen Sie erst eine Auswahl!');

end;

procedure TFMain.EEingabeEnter(Sender: TObject);
begin
  EEingabe.Color:=clYellow;
end;

procedure TFMain.EEingabeExit(Sender: TObject);
begin
  EEingabe.Color:=clWindow;
end;

procedure TFMain.Button3Click(Sender: TObject);
begin
  FImpressum.ShowModal;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#2

Re: Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 10:08
Versuch mal mit Schleifen zu arbeiten, so wird dein Code effizienter und kürzer,
warte ich versuch Deinen Code mal umzubauen...
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 10:08
Da fast alles dasselbe ist würde ich mir mal eine allgemeine Prozedur/Funktion überlegen. Case sehe ich auch keins.
Gruß
Hansa
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#4

Re: Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 10:16
Yo hallo,
1) Du solltest mal modulileren (in Methoden zusammen fassen)
2) Nimm mal die power-Funktion für Exponential- Berechnungen anstatt. ... * 1024 * 1024 * 1024
Delphi-Quellcode:
Sowas hier ...

if shift=[] then begin
    case key of
      27: Close;
    end;
  end;

... ersetze mal durch

if (shift=[]) AND (key = 27) then Close;
How much wood would a wood-chuck chuck if a wood-chuck would chuck wood?
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#5

Re: Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 10:52
schick mir mal Deinen code.. an Philipp@Phillsoft.de dann schreibe ich ihn Dir ein bischen um!
(mit Project Dateien)
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#6

Re: Quelltext vereinfachen!!!

  Alt 17. Mär 2004, 11:18
Vielen Dank für die hilfen! ich habe meinen Code jetzt in eine kleine schliefe gefasst und es funktioniert auch. also vielen dank noch einmal!

Bye Bye Christian18
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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