Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Anregungen & Bugreports Für Vorschläge an den Autor Roland und neue XProfan-Versionen

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 108, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 43, Antworten: 3
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50823, Antworten: 1388
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 8, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 39, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 3, Antworten: 0
Gehe zum ersten neuen Beitrag Sicher Löschen 3.19 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Cleaning Suite 2.1 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag GoodSync 9.2.0.0 (Windows,...
Aufrufe: 2, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27.01.2011, 19:58   #1 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
Standard Veränderte Variablengültigkeit

Hallo allerseits

X2 ist nun in Sack und Tüten und ich möchte denn auch gleich mal einen Vorschlag für die nächste Version machen.

Innerhalb einer Prozedur wäre es wünschenswert, die Möglichkeit zu haben, Variablen auch als Static zu deklarieren, z. B.: Declare Static x%. Eine solche Variable hätte dann die Eigenschaft, beim ersten Aufruf der Prozedur erstellt zu werden und dann im Speicher zu verbleiben, bis das Programm endet. Jeder nachfolgende Prozeduraufruf ignoriert die Deklaration und "verbindet" mit der bereits vorhandenen Variablen.
Ich sehe hierbei den Vorteil, dass zum Notieren von Werten innerhalb der Prozedur keine globale Variable notwendig wird.

Das Konzept ließe sich dann auch ausbauen auf Units. Dort wäre es denkbar außerhalb von Prozeduren globale Variablen anzulegen: Declare Local x%. Diese Variable ist dann nur für alle Prozeduren innerhalb dieser Unit sichtbar, nicht aber im Hauptprogramm. Ohne Local wäre es eine ganz normale globale Variable.
Oder gegenteilig: Declare Public x% in der Unit außerhalb einer Prozedur wäre auch im Hauptprogramm sichtbar, ohne Public nur in der Unit.
Der Vorteil wäre hier, dass ich als Nutzer einer fremden Unit nicht wissen muß, welche Variablen dort intern vorhanden sind. Außer eben denen, die speziell für das Hauptprogramm verfügbar gemacht werden. Und mit diesen mir dann unbekannten und unsichtbaren Variablen kann es keine Kollision bei Namensgleichheit geben.

Ohne diese speziellen Erweiterungen sollte dann alles so laufen, wie bisher.

Gruß Volkmar
Volkmar ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 28.01.2011, 07:17   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

Ich muss ganz ehrlich sagen, dass ich da keinen Vorteil sehe.

Die Static-Variablen lassen sich ganz einfach per globale Variablen declarieren.

Die Local-Variablen in Units kann man ganz einfach statt mit variable% durch ?_variable% realisieren. Die ist natürlich noch von außerhalb der Unit sichtbar, aber es sollte zu keinen Kollisionen kommen. Ich frage mich gerade, warum ich etwas in der Unit verstecken sollte.

Vielleicht hast du ja konkrete Beispiele, damit ich das verstehe.

Viele Grüße,
Jac
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Alt 28.01.2011, 15:19   #3 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
Ich muss ganz ehrlich sagen, dass ich da keinen Vorteil sehe.

Die Static-Variablen lassen sich ganz einfach per globale Variablen declarieren.
Für kleinere Progrämmchen reicht es sicherlich aus.

Globale Variablen machen jedes längere Programm undurchschaubar und
erhöhen die Gefahr der Nutzung falscher Variablen um ein vielfaches!

Ich bin auch für Lokale Variablen im Haupprogramm und in Proceduren,
sowie für statisch Variablen in Proceduren, die auch Lokal sein sollten!

In X-ProfPad habe ich 3 (eine davon strukturiert) globale Variablen
+ 3 globale Hashtables, in 20000 Zeilen. Es geht also auch weit-
gehend ohne globale Variablen und es ist herrlich
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Alt 28.01.2011, 17:57   #4 (Direktlink)
Forenmaskottchen
 
Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 756
Standard

Hallo

Was ich mir eigentlich dachte, es sollte möglichst wenige lokale Variablen geben. In einem großen Projekt kommt da sonst Einiges zusammen, was in Wahrheit gar nicht gebraucht wird. Es funktioniert natürlich mit globalen Variablen, ist also nicht eine neue Qualität von der Art, dass nun Dinge möglich sind, die es bisher nicht gab.
Ich will auch nicht was verstecken im Sinne von Geheimhaltung. Nennen wir es daher einfach mal konsequente Kapselung.

@Jac, Variablenkollisionen kannst Du selbstverständlich jetzt schon unter Verwendung des Namensraumes einer Unit umgehen. Und die finden auch nicht wirklich im Programm statt, so dass es nicht mehr (richtig) funktioniert. Eher im Kopf.
Manchmal gehen mir einfach die Ideen für Variablennamen aus.

Ich fände es eben wirklich einfach nur besser, wenn Variablen dort stehen, wo sie gebraucht werden. Thomas hat's da auf den Punkt gebraucht. So genial war ich noch nie. Aber ich muß ihm beipflichten, so ein Programm sieht super aus. Und läßt sich auch prima pflegen.

Sehe ich mir ein Windowsprogramm mal an, dann sieht doch das ganz einfach aus:

Initialisierung
Fensterschleife
Beenden

Aus diesen drei Teilen werden dann jeweils die Prozeduren gerufen. Und die kennen dann jeweils die Variablen, die sie benötigen und geben das, was benötigt wird in Form eines Parameters weiter. Das Einzige Problem dabei wäre eine Prozedur, die mehrere Werte liefert (oder ändert). Für den Fall wäre dann noch was Neues (schon wieder) notwendig, eine Übergabe ByRef. Globale Variablen wäre dann die absolute Ausnahme.
Geben muß es die aber natürlich weiterhin. Sonst laufen ja alle alten Codes nicht mehr.

Ich finde aber, dass mal drüber nachgedacht werden sollte.

Gruß Volkmar
Volkmar ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Veränderte Seitendarstellung Posaxia Allgemein 5 06.12.2005 12:49



Alle Zeitangaben in WEZ +2. Es ist jetzt 22:24 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2