Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Name für Komponente (https://www.delphipraxis.net/149792-name-fuer-komponente.html)

Cogito 30. Mär 2010 10:21


Name für Komponente
 
Hallo zusammen,

ich lasse in einem Dialog den Benutzer einen Namen für eine Abfrage eingeben, so weit so gut. Nun möchte ich aber genau diesen eingegebenen Namen als Name für eine Komponente verwenden. Hierbei gelten aber glaube ich ziemlich genaue Vorschriften (keine Leerzeichen und Zahlen am Anfang oder sowas). Hat jemand eine Routine die aus einem String einen validen Namen für eine Komponente machen kann, bzw. Fehler meldet falls der string völlig unpassend ist (Leerzeichen könnte man ja durch _ ersetzen)?

himitsu 30. Mär 2010 10:26

Re: Name für Komponente
 
Delphi-Referenz durchsuchenIsValidIdent in der SysUtils

erlaubt für erstes Zeichen: 'A'..'Z', 'a'..'z', '_'
nachfolgende Zeichen: 'A'..'Z', 'a'..'z', '_', '0'..'9'

erlaubt ist auch ein Leerstring (kein Name)


Seit Delphi 2009 hat sich das aber etwas geändert und es ist mehr erlaubt.

Sharky 30. Mär 2010 10:27

Re: Name für Komponente
 
Hai Cogito,

ich würde schon bei der Eingabe nur gültige Zeichen (a-z,0-1,_) zulassen.

Cogito 30. Mär 2010 10:32

Re: Name für Komponente
 
Zitat:

Zitat von Sharky
Hai Cogito,

ich würde schon bei der Eingabe nur gültige Zeichen (a-z,0-1,_) zulassen.

Ja das wäre auch das was ich mir vorstelle, nur bräuchte ich dafür eine Routine... :(

Sharky 30. Mär 2010 10:59

Re: Name für Komponente
 
Zitat:

Zitat von Cogito
Ja das wäre auch das was ich mir vorstelle, nur bräuchte ich dafür eine Routine... :(

Suche mal nach Edit und nur Zahlen.

Da haben wir massig Threads zu dem Thema.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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