![]() |
AW: Altes Programm kompilieren
Delphi-Quellcode:
Function DeCode(Wort:Char):String;
Begin Case Wort Of '1','A' : DeCode:= 'Bar'; '2','B' : DeCode:= 'Einzug'; '3','C' : DeCode:= 'Scheck'; '4','D' : DeCode:= 'Kartenzahlung'; '5','E' : DeCode:= 'Überweisung'; '6','F' : DeCode:= 'Dauerauftrag' Else DeCode:= 'Unbekannt'; End; End; |
AW: Altes Programm kompilieren
Dann musst du nur Wort:Char in Wort:AnsiChar ändern.
|
AW: Altes Programm kompilieren
Zitat:
Dann lassen sich leider sämtliche Dateien nicht mehr einlesen. |
AW: Altes Programm kompilieren
Hallo und Willkommen zurück in der Delphi-Welt!
Das Leben wird oft relativ einfach wenn du nur "docwiki [Suchwort]" in die Internet-Suchmaschine deines Vertrauens eingibst. Für "docwiki AnsiChar" landet man direkt auf der offiziellen Delphi-Dokumentation: ![]() Die sagt dann direkt: Zitat:
|
AW: Altes Programm kompilieren
Zitat:
Dein case würde aber mit beidem funktionieren. Insofern kannst du AnsiChar für die Funktion verwenden oder das Zeichen mit Decode(Char(AktZeiger^.Satz.Typ[1])) vorher umwandeln. |
AW: Altes Programm kompilieren
Zitat:
AktZeiger^.Satz.Typ[1]:= Chr(Ord(AktZeiger^.Satz.Typ[1])+16); Da kommt auch wieder der Fehlercode Inkompatible Type: AnsiChar und Char Übrigens: Wenn ich die Fehlerzeilen auskommentiere (die Funktionen sind zum Testen nicht so wichtig) läuft das Programm :-) das heißt, das heißt, daß ich dann die fehlerhafte Sortierfunktion in Angiff nehmen kann, die seit 2024 nicht mehr funktioniert. Da werde ich mich wohl wieder richtig reinlesen müssen in Delphi. Jetzt wo ich weiß, daß ich es wieder kompilieren kann. Und ich bedanke mich recht herzlich bei den Helfern hier im Forum, man hat es nach so vielen Jahren ja wirklich nicht leicht. |
AW: Altes Programm kompilieren
In der anderen Richtung sollte AnsiChar statt Chr funktionieren. Du kannst auch AnsiChar(Chr(... verwenden, aber die Umwandlung in einen Char ist dort nicht nötig.
|
AW: Altes Programm kompilieren
Zitat:
AktZeiger^.Satz.Typ[1]:= Chr(Ord(AktZeiger^.Satz.Typ[1])+16); umformulieren müßte? Hier man die ganze Prozedur: Begin If AktZeiger <> Nil Then Begin If Ord (AktZeiger^.Satz.Typ[1]) < 58 Then Begin AktZeiger^.Satz.Typ[1]:= Chr(Ord(AktZeiger^.Satz.Typ[1])+16); StringGrid1.Cells[0,StringGrid1.Row]:= C_Kontrolliert; End Else Begin AktZeiger^.Satz.Typ[1]:= Chr(Ord(AktZeiger^.Satz.Typ[1])-16); StringGrid1.Cells[0,StringGrid1.Row]:= ''; End; GlobalChanged:= True; Form1.StatusBar1.Panels[0].Text:= 'Daten geändert'; DispAktZeiger; FillStringGrid(Sender); (* Damit Markierung angezeigt wird *) End; End; |
AW: Altes Programm kompilieren
Das habe ich doch geschrieben, AnsiChar statt Chr:
Delphi-Quellcode:
AktZeiger^.Satz.Typ[1]:= AnsiChar(Ord(AktZeiger^.Satz.Typ[1])+16);
// oder AktZeiger^.Satz.Typ[1]:= AnsiChar(Chr(Ord(AktZeiger^.Satz.Typ[1])+16)); |
AW: Altes Programm kompilieren
Hat geklappt, danke!
AktZeiger^.Satz.Typ[1]:= ansiChar(Ord(AktZeiger^.Satz.Typ[1])+16); Google hatte gar nicht ausgeworfen, daß es diese Funktion gibt... War kurz auf dem Schlauch gestanden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz