Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was bringen Konstanten? (https://www.delphipraxis.net/8968-bringen-konstanten.html)

Tom 16. Sep 2003 07:54

Re: Was bringen Konstanten?
 
Zitat:

Zitat von silent
1. (wenn es um eine versionsnummer geht) hat kein anderer das an meinem programm zu ändern

Mit 19 steht man noch nicht unbedingt im Berufsleben und arbeitet isoliert vor sich hin. Falls Du mal mit programmieren Geld verdienen möchtest: Du wirst Quelltexte anderer fortführen müssen und andere werden Deine Quelltext fortführen. Ist so.

Zitat:

wenn derjenige nichtmal weiss was die variable/konstante tut
Es geht darum anderen (und auch Dir selber) das Leben leicht zu machen. Sieht man oben im Quelltext
Delphi-Quellcode:
Const Version = '0.815';
weiß jeder Programmierer, dass diese Angabe nirgendwo mehr geändert wird. Nutze ich dagegen eine Variable ist davon auszugehen, dass irgendwo im Quelltext eine Änderung erfolgt. Dieses gibt selbst bei Versionsnummern - Stichwort: Bedingte Compilierung - Sinn.

PS: Das Beispiel mit der Versionsnummer ist etwas unglücklich, da man diese über die Projektoptionen einstellt und diese im Source bei der Anzeige auswertet.
PPS: Du benutzt auch noch globale Variablen. Pfui!

Pseudemys Nelsoni 16. Sep 2003 08:00

Re: Was bringen Konstanten?
 
hm, jo aber ne version wird doch nicht mitten im source geändert ...aber vom prinzip her wirds mir doch klar was ihr meint :)

Zitat:

Mit 19 steht man noch nicht unbedingt im Berufsleben und arbeitet isoliert vor sich hin. Falls Du mal mit programmieren Geld verdienen möchtest: Du wirst Quelltexte anderer fortführen müssen und andere werden Deine Quelltext fortführen. Ist so.
soweit werd ich sowieso nie kommen ;)


Zitat:

PPS: Du benutzt auch noch globale Variablen. Pfui!
jo, sag mir mal folgendes...

Eine Prozedur ändert einen Wert...wie willst du nun mit einer anderen Prozedur darauf zurückgreifen ohne eine globale variable?

Hansa 16. Sep 2003 08:00

Re: Was bringen Konstanten?
 
Kaum Nachteile, nur: Delphi hat mehr zu tun, der Compiler braucht 1 mS länger, ein paar Byte mehr Platz wird gebraucht, EXE wird größer usw. Also nichts wichtiges. Das ist nicht ironisch gemeint ! Es ist echt fast egal. Die Fehlerquelle ist aber immer noch vorhanden und das bist Du :!: Stell Dir eine Rechnung vor, wo Du mit Variablen hantierst. Und jetzt willst Du mit
Delphi-Quellcode:
MWST := i;
diese auf 16 einstellen. Vorher hast Du an anderer Stelle i auf 33 gesetzt. Dann am besten noch global deklariert. Schon krachts. Deshalb so was erst gar nicht anfangen. Globale Variablen gehören hier auch zum Thema: Vorsicht damit !

Theorie und Praxis sind aber 2 paar Schuhe. Wenn es ginge würde ich den Mwst.-Satz sofort in eine Konstante packen. Aber es ist nur eine Konstante auf Zeit. Deshalb liegt das ganze in einer Datei. Und dazu brauche ich eine Variable, die den Wert aufnimmt. Eine Versionsnummer, oder die Anzahl Zeilen auf einem Blatt Papier in eine Variable zu packen ist Blödsinn.

Und noch was anderes ist noch gar nicht gesagt worden: Wozu gibt es Compiler-Direktiven ? Falls Herr Meier nur Din A 5 Papier benutzt und Herr Schmitt Din A 4 könnte man coden:

Delphi-Quellcode:
(*$DEFINE MEIER*)

type PapierTyp = (DINA5,DINA4);

(*IFDEF Meier*)
  CONST
    p = DINA5;
(*$ELSE*)
  CONST
    p = DINA4;
So und nun ists gut. Produziere eben notfalls Spaghetti - Code mit Variablen. Bluescreens kommen nicht von ungefähr. :mrgreen:

Pseudemys Nelsoni 16. Sep 2003 08:04

Re: Was bringen Konstanten?
 
Zitat:

MWST := i;
diese auf 16 einstellen. Vorher hast Du an anderer Stelle i auf 33 gesetzt. Dann am besten noch global deklariert. Schon krachts. Deshalb so was erst gar nicht anfangen.
ich werd die variable kaum auf 33 irgendwo setzen wenn MWST sowieso 16 ist -_-


aber danke für die ganzen besispiele, z.b mit herr maier ^^

Tom 16. Sep 2003 08:04

Re: Was bringen Konstanten?
 
Zitat:

Zitat von silent
Eine Prozedur ändert einen Wert...

Das wäre dann eine Funktion mit Rückgabewert ..., statt eine globale Variable zu ändern.

Zitat:

wie willst du nun mit einer anderen Prozedur darauf zurückgreifen ohne eine globale variable?
Diese Konstrukte sollte man mit Übergabeparametern vermeiden. Ansonsten ist in der OOP alles an Klassen, Methoden und Eigenschaften etc. orientiert. Zum Stichwort Property gibt es z.B. eine Menge Lesenwertes in der OH.

Pseudemys Nelsoni 16. Sep 2003 08:08

Re: Was bringen Konstanten?
 
Zitat:

Das wäre dann eine Funktion ...

Procedure irgendwas;
begin
s := 'bla'; (s ist global definiert)
end;

wozu brauch ich da eine function O_o...naja wie gesagt ich komm kaum ohne globale variablen aus, weil ich sie oft von mehreren prozeduren aus brauche

Hansa 16. Sep 2003 08:08

Re: Was bringen Konstanten?
 
Zitat:

Zitat von silent
Zitat:

PPS: Du benutzt auch noch globale Variablen. Pfui!
jo, sag mir mal folgendes...

Eine Prozedur ändert einen Wert...wie willst du nun mit einer anderen Prozedur darauf zurückgreifen ohne eine globale variable?

Haste schon mal was von Wert/Const/Var-Parametern gehört, Kapselung, von Funktionen, Rückgabewert, Sichtbarkeit usw. ? Da besteht ofensichtlich erhöhter Nachholbedarf. Globale Variable nur im Notfall benutzen, wenns wirklich nicht anders geht zum Bsp. eben mit Konstanten.

Pseudemys Nelsoni 16. Sep 2003 08:11

Re: Was bringen Konstanten?
 
ich bin mit variablen/konstanten definieren kapitel in meinem buch schon 2mal durch, also davon steht da nichts drin :(

neolithos 16. Sep 2003 08:12

Re: Was bringen Konstanten?
 
@silent:
Bei die ist Hopfen und Malz verloren.

Schreib du mal richtige Programme! Dann wirst du schon merken warum viele was gegen Globale Variablen haben.

Übrigens wenn ich mal eine Globale Variable verwende, dann heißt die nicht "i" oder "s", sondern sie erzählt eine Kurzgeschichte.

wie:
oPluginList

besser wäre sogar
goPluginList

Tom 16. Sep 2003 08:13

Re: Was bringen Konstanten?
 
Zitat:

Zitat von silent
Procedure irgendwas;
begin
s := 'bla'; (s ist global definiert)
end;

Wenn Du wirklich in dieser Art un Weise Deine Quelltext aufbaust: Beschäftige Dich mit den Grundlagen der OOP. Diese hier in diesem Thread zu erläutern, dürfte den Rahmen etwas sprengen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.
Seite 3 von 6     123 45     Letzte »    

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