Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Operator oder Semikolon fehlt bei Delete anweisung???


daywalker0086 - Di 12.04.11 16:56
Titel: Operator oder Semikolon fehlt bei Delete anweisung???
Hallo Leute ich habe gerade einen komoischen Fehler
Das ist der Code um den es geht:

Delphi-Quelltext
1:
2:
if HG[2] = '/' then
      Delete(HG,2,1);


Es erscheint folgender Fehler:
[Fehler] Hauptunit.pas(330): E2066 Operator oder Semikolon fehlt

das ist die Zeile: Delete(HG,2,1);
kommentiere ich sie aus funktioniert alles.
Das ganze ist gekommen obwohl ich ganz woanders etwas am Code verändert habe, was ich auch schon wieder raus genommen habe.
Woran kann denn das liegen?


beastofchaos - Di 12.04.11 17:02

Also wenn HG ein String ist, dann ist der Fehler reichlich komisch... :/


daywalker0086 - Di 12.04.11 17:04

HG ist eine String,
echt komisch, das kam auf einmal ohne das ich was daran verändert habe...

Edit:
der Fehler kommt überall wo ich delete stehen habe, also wenn ich irgendwo
delete('test',2,1);
schreibe kommt der gleiche Fehler...


Bergmann89 - Di 12.04.11 17:10

Hey,

guck mal 2-3 Zeilen oben drüber. Kann sein das da was fehlt. Oder hast du vlt ne Funktion definiert, die auch delete heißt?

Mfg Bergmann.


daywalker0086 - Di 12.04.11 17:16

Oh mann... :roll:
ich hatte in einem popupmenü einen Button mit dem Namen delete definiert :autsch:
bitte den threat ganz schnell löschen :oops:

Danke für den Tip, da ich den button ja nicht sehe wenn das popupfenster zu ist, hätt ich da noch lange gesucht.


beastofchaos - Di 12.04.11 17:28

Glaub ich auch, oder du hast diese StandardUnit zu den String-Funktionen/Prozeduren aus der uses-Klausel entfernt

edit: upps, ist ja shcon geklärt :P


jaenicke - Di 12.04.11 17:32

Da zeigt sich wieder wie wichtig eine sinnvolle Benennung von Variablen und Komponenten ist. ;-)


beastofchaos - Di 12.04.11 18:29

genau, um richtig übersichtlich zu arbeiten, WÜRDE ich den Namen einen Bustaben voraussetzen: BDelete(Button), VDelete(Variable), CDelete usw.


jaenicke - Di 12.04.11 18:52

Die ungarische Notation wird in der Regel nicht verwendet. Ich selbst nutze diese ausschließlich bei Komponenten (auch da finden das viele falsch, aber ich halte es für deutlich übersichtlicher).

Dennoch kann man auch mit BDelete nicht viel anfangen. Denn es sagt nichts darüber aus was gelöscht werden soll. Deshalb würde solch ein Menüeintrag bei mir z.B. mniDeleteSelectedText heißen.

Klar ist es erst einmal mehr Tipparbeit, aber dafür kann man den Quelltext später sehr viel leichter lesen und durch die Syntaxergänzung kann man längere Bezeichner ja auch schnell schreiben.