Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - delete/insert --> untyped
BlauBeer - Fr 08.10.10 10:38
Titel: delete/insert --> untyped
in der Schule lernen wir gerade Delphi (Borland Delphi 5.0 (build 5.6.2)), da ich ausschließlich Linux benutze verwende ich Lazarus 0.9.29
wir sollen an einem einfachen Beispiel demonstrieren, dass wir die Grundlagen von Stringverarbeitung verstanden haben - theoretisch müsste es funktionieren, bis auf ein paar Stellen:
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: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| ...
procedure TForm1.cmdInsClick(Sender: TObject); var str,strIns: String; var s: Integer; begin str:=txtWortein.Text; strIns:=txtInsert.Text; If ((str<>'') And (strIns<>''))Then begin s:=StrToInt(txtStelle.Text); If (0<s) And (s<(length(str)+1)) Then ShowMessage('Der neue Text: '+Insert(strIns,str,length(str))) Else ShowMessage('Fehlerhafte Stelle!') end Else ShowMessage('Keine Eingabe oder kein einzufügender Text!'); end;
... procedure TForm1.cmdDelClick(Sender: TObject); var str: String; var s,l: Integer; begin str:=txtWortein.Text; If (str<>'')Then begin s:=StrToInt(txtStelle.Text); If (0<s) And (s<(length(str)+1)) Then begin l:=StrToInt(txtAnzahl.Text); If (0<l) And (l<length(str)+1-s) Then ShowMessage('Der neue Text: '+Delete(str,s,l+s)) Else ShowMessage('Fehlerhafte Länge!') end Else ShowMessage('Fehlerhafte Stelle!') end Else ShowMessage('Keine Eingabe!'); end;
... |
Die Fehlermeldung (Zeilen angepasst):
Delphi-Quelltext
1: 2: 3:
| unit1.pas(13,45) Error: Incompatible types: got "untyped" expected "AnsiString" unit1.pas(35,51) Error: Incompatible types: got "untyped" expected "AnsiString" unit1.pas(277) Fatal: There were 2 errors compiling module, stopping |
MaxWurzel - Fr 08.10.10 10:50
procedure Insert(Source: string; var S: string; Index: Integer); hat keinen Rückgabewert. Versuch mal folgendes:
Delphi-Quelltext
1: 2:
| Insert(strIns,str,s); ShowMessage('Der neue Text: '+str); |
Bergmann89 - Fr 08.10.10 19:03
Hey,
eine Anwendung, die abstützt, oder mit Fehlern um sich schmeißt ist nicht so schön. Speziell für dein Programm gibt es in Delphi 3 einfache Methoden die Fehler zu umgehen:
1. Lösung: Fehler abfangen und ordentliche Meldung ausgeben:
Delphi-Quelltext
1: 2: 3: 4: 5:
| try s := StrToInt(Edit1.Text); except ShowMessage('Sie müssen eine Zahl eingeben!'); end; |
2. Lösung: Fehler ignorieren:
Delphi-Quelltext
1:
| s := StrToIntDef(Edit1.Text, 0); |
3. und besste Lösung: voher prüfen und dementsprechend handeln:
Delphi-Quelltext
1: 2:
| if not TryStrToInt(Edit1.Text, s) then ShowMessage('Sie müssen eine Zahl eingeben!'); |
MfG Bergmann.
BlauBeer - Sa 09.10.10 10:48
vielen Dank, es funktioniert :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!