E2034 bei Verwendung von Delete (Stringbearbeitung)
spacer
Autor Nachricht
OsCor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
BeitragVerfasst: Do 26.01.12 11:12 
Hallo Foristen,

bei meinen ersten Gehversuchen in XE habe ich in folgendem Quelltext den Fehler E2034 erhalten (zu viele Parameter). Ich bin mir aber keiner Schuld bewußt.
In der Hilfe habe ich allerdings keinerlei Hinweise auf die Existenz dieser procedure gefunden. Kann es sein, dass es sie in XE gar nicht mehr gibt?

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:

SP := Pos(S, Zeile);
FieldByName('Bearbeiter').AsString := Copy(Zeile, 1, SP-1);
Delete(Zeile, 1, SP);


Oswald
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 313
Erhaltene Danke: 11



BeitragVerfasst: Do 26.01.12 11:50 
Ich tippe, dass er sich auf ein anderes Delete bezieht. Z.B. auf eines aus der Klasse in der du die Prozedur aufrufst.

Probier mal
ausblenden Delphi-Quelltext markieren
1:
system.Delete(Zeile, 1, SP);
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OsCor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
BeitragVerfasst: Do 26.01.12 11:58 
In der Zeile, in der ich das ausprobiert habe, wird der Fehler beim Kompilieren tatsächlich nicht mehr moniert. Aber ich habe noch nicht kapiert, was da passiert. Und da wäre ich sehr daran interessiert.

Oswald

P.S. Natürlich kann man die Delete-Prozedur durch eine entsprechende Zeile mit Copy ersetzen, aber ich habe in etlichen Anwendungen Delete in „größerem” Umfang eingesetzt. Bei einer Portierung stünde mir etliche Arbeit ins Haus.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 2837
Erhaltene Danke: 182

Win 2000, Win XP
Delphi 7, Turbo Delphi Exp.
BeitragVerfasst: Do 26.01.12 12:14 
Und deswegen benutzt man kein With (oder jedenfalls nur in sehr begrenzten Fällen): da passieren sehr seltsame Dinge, die man selten direkt überblickt :roll:

Ich nehme mal an, das sieht so aus?
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
with SomeTable do begin
...
SP := Pos(S, Zeile);
FieldByName('Bearbeiter').AsString := Copy(Zeile, 1, SP-1);
Delete(Zeile, 1, SP);
...
end;

Dann wird Delete auf SomeTable.Delete aufgelöst, und das hat keine Parameter.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Ich code EdgeMonkey -~==~- #ee-lounge in Freenode
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OsCor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55

Win XP, Win 7 (32)
Delphi 2007 Prof, RAD Studio XE2
BeitragVerfasst: Do 26.01.12 12:26 
Völlig richtig. Darauf hätte ich wirklich auch selber kommen können :oops:

Vielen Dank
Oswald
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home