AGB  ·  Datenschutz  ·  Impressum  







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

Ist String ein gültiger Variablenname

Ein Thema von v2afrank · begonnen am 17. Sep 2014 · letzter Beitrag vom 18. Sep 2014
Antwort Antwort
Seite 1 von 2  1 2      
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#1

Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 13:18
Delphi-Version: 5
Hallo In einem meiner Programme hat der Benutzer die Möglichkeit eine eigene Oberfläche zu entwerfen.
Dazu kann er auch Namen für die einzelnen Objekte vergeben. Wie kann ich am einfachsten überprüfen ob es ein gültiger Delphi Variablenname ist.
Ich würde ansonsten einfach hingehen ein Control anlegen und diesem dem Namen des Users zuweisen und abwarten ob eine Exception kommt. Gibnt es dafür eine Funktion ?
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 13:36
Was passiert denn, wenn Du das machst? Der Inhalt 'Name' hat ja zunächst nichts mit dem Feldnamen der Komponente zu tun.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 13:39
Könnte man nicht einfach intern einen Tiefstrich voranstellen, den man aber nicht anzeigt? Also der Benutzer nennt das Dingen z.B. String, daraus wird dann _String.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 13:51
SysUtils.IsValidIdent und das wird intern auch vom TComponent.Name verwendet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ExceptionOverflow

Registriert seit: 12. Sep 2014
18 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 13:59
Könnte man nicht einfach intern einen Tiefstrich voranstellen, den man aber nicht anzeigt? Also der Benutzer nennt das Dingen z.B. String, daraus wird dann _String.
Genau so etwas in der Richtung dachte ich mir auch! Da spart man sich auch erst eine Abfrage zu starten. Ich würde eine Konstante (const) vom typ string erstellen die dann z.B. diesen Wert hat: 'User_' und diese Konstante vor jeden vergebenen (vom User) Namen setzen. Und nach außen hin halt einfach die Konstante wieder "abziehen", damit der User auch den Namen sieht, den er selbst vergeben hat.
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 14:31
Genau so etwas in der Richtung dachte ich mir auch! Da spart man sich auch erst eine Abfrage zu starten. Ich würde eine Konstante (const) vom typ string erstellen die dann z.B. diesen Wert hat: 'User_' und diese Konstante vor jeden vergebenen (vom User) Namen setzen. Und nach außen hin halt einfach die Konstante wieder "abziehen", damit der User auch den Namen sieht, den er selbst vergeben hat.
Achtung, wenn der Nutzer auf denselben Gedanken kommt. Dann hast Du schnell: "User_User_Nachname". Das muss Dein "abziehen" dann verkraften!
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 14:37
Eine Komponente (.Name ) kann man gern "String" nennen.
Selbst Eine im Formdesigner, solange diese Komponente kein Feld (Variable) in der Klassendeklaration besitzt.

Variablen, Konstanten, Typen, Prozeduren usw. (im QuellCode) unterliegen zusätzlich noch der Einschränkung der "reservierten Wörter" (siehe OH).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 14:44
Achtung, wenn der Nutzer auf denselben Gedanken kommt. Dann hast Du schnell: "User_User_Nachname". Das muss Dein "abziehen" dann verkraften!
Christoph
Schafft man gerade noch so.
Delphi-Quellcode:
Function Abziehen (const Bezeichner : String; Const prefix : String = 'User_') : String;
Begin
  if substring (Bezeichner,1, Length(Prefix))=prefix then
    result := Substring (Bezeichner, Length(Prefix)+1, maxint)
  else
    result := Bezeichner;
End;
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 15:08
Nur noch Substring() durch z.B. Copy() ersetzen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#10

AW: Ist String ein gültiger Variablenname

  Alt 17. Sep 2014, 15:24
Und XE2 kennt bestimmt auch schon die StrUtils, sowie das Copy ohne den 3. Parameter.

Delphi-Quellcode:
if StartsStr(Prefix, Bezeichner) then
  Result := Copy(Bezeichner, Length(Prefix) + 1)
else
  Result := Bezeichner;

// oder

Result := Bezeichner;
if StartsStr(Prefix, Result) then
  Delete(Result, 1, Length(Prefix));


Sollte es Probleme beim Prefix geben, also bei der Unterscheidung ob programmseitiges Prefix oder Namensteil des Benutzers,
dann einfach ein Zeichen als Prefix verwenden, welches man für die Benutzereingabe an dieser Stelle sperrt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Sep 2014 um 15:27 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:19 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