Autor Beitrag
N3M081
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 16.03.05 00:04 
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:
ausblenden 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 user profile iconTino: Code- durch Delphi- & Quote-Tags ersetzt.
Moderiert von user profile iconMotzi: Topic aus Sonstiges verschoben am Mi 16.03.2005 um 00:58
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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:
wdbee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.03.05 08:48 
Unter .NET läuft das anders. Schau mal da: www.dsdt.info/refere...cl/konvertierung.php
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: 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)

_________________
Ist Zeit wirklich Geld?
chrisdrury
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184

WinXP
D5 Prof
BeitragVerfasst: 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.:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: 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]

_________________
mfg.
mâximôv
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 17.03.05 14:05 
user profile iconchrisdrury 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:
ausblenden Delphi-Quelltext
1:
2:
SysUtils.DeleteFile(MyFile);
SysUtils.CloseFile(f);

_________________
Ist Zeit wirklich Geld?
chrisdrury
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184

WinXP
D5 Prof
BeitragVerfasst: 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!