![]() |
Beurteilung meines Quelltextes
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, danke für die schnellen Antworten und für den Tip mit dem Speedbutton, klappt auch (war ja auch nicht anders zu erwarten :zwinker: ). Aber eine Frage:
Wie findet ihr meinen Quelltext? Gibt es da überflüssige Stellen oder unsaubere Passagen? Gruß Stefan PS:Wenn ihr nicht wollt, müsst ihr euch den Code nicht durchlesen, ist ja auch ziemlich lang, das ist rein optional! [edit=Christian Seehase]Dies ist ein Thread der aus ![]() |
Re: Fokusieren des Buttons vermeiden
Den Code habe ich nur überflogen und kann darüber schlecht urteilen, aber:
1. Bennene mal deine Komponenten um, in einem halben Jahr kannst du damit nichts mehr anfangen. Da musst du selbst ein System finden, z.B. bAddition (b=Button), je nachdem, was dir zusagt. Gewöhn es dir gleich an und du programmierst besser, als ich es in deinem Alter getan habe. 2. Die Codeformatierung ist nicht gerade übersichtlich. Wenn du mal >2500 Zeilen-Projekte programmierst, wirst du es noch verstehen, weil es einfach (gerade bei mehreren If-Abfragen!) total unübersichtlich ist und du auch langsamer sein würdest. Du hast aber im Vergleich zu vielen Anderen noch eine anschauliche Codeformatierung, die nicht so schlimm ist, nur um dir einen besseren Weg zu zeigen. Da kann ich nur dieses Tutorial empfehlen: ![]() |
Re: Fokusieren des Buttons vermeiden
Wenn du ein richtiges Projekt machen willst, dann benenn die Controls um. Weißt du nach einem Monat noch (ohne Kommentare im Code) noch, was Button237 macht? Oder wüsstest du dann noch, was der Button btnSaveSettings macht? :wink:
//EDIT: Zu lahm, aber mit Beispiel, deshalb send ichs mal trotzdem |
Re: Fokusieren des Buttons vermeiden
Styleguide bleibt jedem selbst überlassen, wobei deiner in den meisten Teilen recht gut lesbar ist, da gibt's deutlich schlimmere. Dazu gäbe es aber in der DP einige Diskussionen, also falls du wissen möchtest, wie man etwas formatieren kann (Einrückungen etc.) einfach suchen. ;)
An deiner Stelle würde ich auf jedenfall den Komponenten aussagekräftigere Namen geben. "Button1" lässt nicht darauf schließen, was dieser Button macht. Wobei es bei dir hier zufälligerweise ok ist, da er auf die Taste 1 reagiert. Aber beispielsweise "Button15", da wäre "BtnPlus" oder ähnliches, deutlich schöner. PS: Da ich ein paar Beispiele drin habe, sende ich es dennoch ab, auch wenn's z.T. bereits genannt wurde. PPS: Aber eigentlich gehört sowas nicht in dieses Thema ... |
Re: Fokusieren des Buttons vermeiden
Zitat:
s1 : String; // Kommentar s2 : String // Kommentar und rücke es ein. Dann findet man sich nach zig Jahren noch recht schnell in den Code rein, weil man ihn dadurch auch sehr gut kommentieren kann. Mir ist auch aufgefallen, dass mir nach lästigen if-else-Klauseln immer die Augen etwas weh taten.... Das
Delphi-Quellcode:
wurde zu:
if ... then begin
... end else begin ... end;
Delphi-Quellcode:
Darüber kann man Stunden diskutieren, also lassen wir das. Du hast schon recht, dass jeder seinen eigene Formatierung haben sollte, aber viele kommen doch erst später zu einer einheitlichen Codeformatierung.
if ... then
begin ... // Falls uneingerückt, ist dies nicht meine Schuld --> Highlighter end else begin end; *** EDIT *** Verdammt, habe dein zweites PS übersehen, sry. |
Re: Fokusieren des Buttons vermeiden
'n Abend!
Ich hab Deinen Code auch nur kurz überflogen :-D Was mir auffiel: Statt
Delphi-Quellcode:
genügt
or (operation=true)
Delphi-Quellcode:
Bei if auch:
or operation
Delphi-Quellcode:
=
If strich=true then
Delphi-Quellcode:
Gibt in der DP auch Threads zu dem Thema.
If strich then
Der Typ Real ist Out :zwinker:
Delphi-Quellcode:
Grüßle!
var vorzeichenwechsel:real; = var vorzeichenwechsel:Single;
PS: Wenn Du Code Postest, dann bitte mit den richtigen Tags, in diesem Fall Delphi-Tags, damit man das besser lesen kann :zwinker: |
Re: Fokusieren des Buttons vermeiden
Schau mal folgenden Code an, der wiedeholt sich mindestens 10 Mal mit ganz geringen Unterschieden:
Delphi-Quellcode:
Wenn man ein Codefragment so oft sieht, muss sofort die Alarmglocke UNTERFUNKTION klingeln!!
procedure TForm1.Button10Click(Sender: TObject);
begin if (panel1.caption='0') or (operation=true) then begin panel1.caption:='0'; operation:=false; end else panel1.caption:=panel1.caption+'0'; if strich=true then zahl:=true; panel1.setfocus; end; Hier die Unterfunktion mit dem Parameter "zahl":
Delphi-Quellcode:
Damit ergibt sich folgende Vereinfachung (und zwar für 10 Buttons):
procedure TForm1.ZahlKlick(zahl:char);
begin if (panel1.caption='0') or (operation=true) then begin panel1.caption:=zahl; operation:=false; end else panel1.caption:=panel1.caption+zahl; if strich=true then zahl:=true; panel1.setfocus;end;
Delphi-Quellcode:
Deine Art zu programmieren nennt man "Programmierung mittels Copy & Paste" und erzeugt sehr viel Programmcode, der nur schwer zu debuggen ist.
procedure TForm1.Button10Click(Sender: TObject);
begin ZahlKlick('0'); end; ![]() |
Re: Fokusieren des Buttons vermeiden
@Sunlight7:Danke für den Typ mit dem Boolean-Variablen, aber was bedeutet, dass Real out ist? Ist es schlechter als Single oder Double?
@all: Danke schön für die ganzen Tips, ich wusste nicht, dass ich so viel falsch mache... :-D Ich weiss, ich bin ein bisschen offtopic geworden, kann man den Titel denn noch nachträglich ändern? Gruß Stefan |
Re: Fokusieren des Buttons vermeiden
Moin Stefan,
ich schlage mal vor Du überlegst Dir einen Titel, schickst mir den, und ich teile das Thema, so dass ein neuer Thread entsteht. |
Re: Fokusieren des Buttons vermeiden
Hallo Christian, (für Moin ist es wohl etwas zu spät... :))
als zweiten Titel würde ich 'Wie findet ihr mein Quelltext' oder falls zu lang 'Beurteilung meines Quelltextes' nehmen. Danke fürs Angebot. Gruß Stefan Edit: Ups, sehe grade, dass der zweite Titel nur ein Zeichen länger ist... :gruebel: Nimm halt irgendeinen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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