![]() |
Quelltext vereinfachen!!!
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. |
Re: Quelltext vereinfachen!!!
Versuch mal mit Schleifen zu arbeiten, so wird dein Code effizienter und kürzer,
warte ich versuch Deinen Code mal umzubauen... |
Re: Quelltext vereinfachen!!!
Da fast alles dasselbe ist würde ich mir mal eine allgemeine Prozedur/Funktion überlegen. Case sehe ich auch keins.
|
Re: Quelltext vereinfachen!!!
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; |
Re: Quelltext vereinfachen!!!
schick mir mal Deinen code.. an Philipp@Phillsoft.de dann schreibe ich ihn Dir ein bischen um!
(mit Project Dateien) |
Re: Quelltext vereinfachen!!!
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz