Entwickler-Ecke
Andere .NET-Sprachen - Probs mit SysUtils
N3M081 - Mi 16.03.05 00:04
Titel: Probs mit SysUtils
Hi,
hab grad angefangen mit Delphi und stehe nun vor einem Problem.
Wollt was ganz einfaches machen und prompt kommen Fehler, vielleicht kann mir einer von Euch helfen.
Der Code:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); begin TextBox4.Text:=IntToStr(StrToInt(TextBox1.Text) + StrToInt(TextBox2.Text)); end; |
und die Fehlermeldung:
Fehlermeldung hat folgendes geschrieben: |
[Error] WinForm.pas(182): E2003 Undeclared identifier: 'IntToStr'
[Fatal Error] Project1.dpr(15): F2063 Could not compile used unit 'WinForm.pas' |
unter uses hab ich die sysutils eingebunden und trotzdem die Fehler!
Gruß N3M0
Moderiert von Tino: Code- durch Delphi- & Quote-Tags ersetzt.Moderiert von Motzi: Topic aus Sonstiges verschoben am Mi 16.03.2005 um 00:58
delfiphan - Mi 16.03.05 01:38
Kenn mich leider überhaupt nicht aus mit .NET.
Wenn du bei new Projects VCL Forms Application wählst, solltest du inttostr und strtoint benützen können. Bei einer Windows Forms Application kommst du wahrscheinlich nicht drum herum, sowas wie Button1.Text := System.&String.Format('{0}',[i]); zu schreiben. Aber wie gesagt, I don't really know...
Edit: :welcome:
AndyB - Mi 16.03.05 15:09
Wenn man die Unit SysUtils einbindet, geht es auch auf die Pascal'sche Art.
Nur ist die jetzt mit Borland.VCL.SysUtils in der uses-Annweisung anzugeben. (Oder man setzt die Unit-Default-Namespace Projekt-Option)
chrisdrury - Do 17.03.05 09:44
Jo, so ein ähnliches Problem habe ich auch, allerdings mit Delphi 5:
Bisher aufgefallen ist mir das bei den Funktionen Copy und
DeleteFile.
Wenn ich die einsetze, meckert der Compiler immer, das etwas nicht stimmt, z. B.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TEditForm.XmlParse; VAR Filename : STRING; f : TEXTFILE; BEGIN Filename := ExtractFilePath (Application.ExeName)+'Contents.txt'; AssignFile (f, Filename); TRY Rewrite (f); TRY XmlParser.StartScan; XmlParser.Normalize := FALSE; WHILE XmlParser.Scan DO IF (XmlParser.CurPartType = ptContent) OR (XmlParser.CurPartType = ptCData) THEN Write (f, XmlParser.CurContent); FINALLY CloseFile (f); END;
XMLRichEdit.PlainText := TRUE; XMLRichEdit.Lines.LoadFromFile (Filename); EXCEPT XMLRichEdit.Lines.Clear; END; SysUtils.DeleteFile(filename); END; |
Entscheidend ist hier die letzte Zeile:
Wenn ich nur DeleteFile(filename) einsetze, meldet sich der
Compiler mit folgender Fehlermeldung:
Inkompatible Typen: 'String' und 'PChar'!
Achja, natürlich steht SysUtils in der Uses-Anweisung.
maximus - Do 17.03.05 12:51
[OT]
@chrisdrury: Wenn du dir keine feinde machen willst, dann solltest du unbedingt die schlüsselwörter klein schreiben. Der code sieht grausam aus. Man hat das früher so gemacht, weil es noch keine syntax-highlighter gab.
[/OT]
AndyB - Do 17.03.05 14:05
chrisdrury hat folgendes geschrieben: |
Wenn ich nur DeleteFile(filename) einsetze, meldet sich der
Compiler mit folgender Fehlermeldung:
Inkompatible Typen: 'String' und 'PChar'! |
Du hast da wohl "SysUtils, ..., Windows, ..." stehen.
Und nicht "Windows, SysUtils, ...".
Dadurch findet der Compiler, weil Windows.pas als letztes eingebunden wird, die Funktionen in Windows.pas und nimmt diese anstatt denen aus SysUtils.
Wenn du die uses-Reihenfolge nicht ändern kannst, aus welchen Gründen auch immer, dann muss du eben den "full qualified name" angeben:
Delphi-Quelltext
1: 2:
| SysUtils.DeleteFile(MyFile); SysUtils.CloseFile(f); |
chrisdrury - Mo 21.03.05 08:33
@ maximus:
Hab den Code so übernommen, per copy and paste, hatte nur noch keine Muße, ihn zu ändern.
Normalerweise schreibe ich so auch nicht! :wink:
@ andyB:
Was es nicht so alles gibt bei Delphi... :?
Auf die Idee, dass Windows vor SysUtils in der uses-Anweisung stehen muss, bin ich noch gar nicht gekommen!
Werd ich mal ausprobieren, vielen Dank für den Tip!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!