Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Edit1.Text nach AnsiChar?


Eritacus - Sa 19.02.11 17:47
Titel: Edit1.Text nach AnsiChar?
Hi,

wahrscheinlich nur Brett vor Kopf...
Hab' im Speicher einen Buffer erzeugt und mit dem Inhalt einer beliebigen Datei gefüllt.
Adressieren geht über einen Pointer (Integer).

Lesen z.B.: Label1.Caption := Buffer[Pointer]; ...geht wunderbar

Schreiben z.B.: Buffer[Pointer] := 'A'; ... geht wunderbar
oder: Buffer[Pointer] := z; ...geht, wenn z : AnsiChar

Das zu schreibende Zeichen möchte ich aber aus einem TEdit holen! (Umwandeln String in AnsiChar?)
Geht das, und wenn, dann wie?

Gruß und schonmal Danke

Eritacus


jaenicke - Sa 19.02.11 18:03


Delphi-Quelltext
1:
2:
if Length(MyEdit.Text) > 0 then
  MyChar := MyEdit.Text[1]; // das erste Zeichen aus dem Editfeld


Eritacus - Sa 19.02.11 20:14

Danke für die schnelle Antwort, aber das funktioniert eben nicht - genau das ist ja das Problem!

myChar wäre vom Typ Char, aber es wird AnsiChar verlangt.
Sonst kommt die Fehlermeldung: Inkompatible Typen von Char und AnsiChar.

Ich muß also irgendwie einen String in AnsiChar umwandeln.

Schreiben: Buffer[Pointer] := z; --> z : AnsiChar

Gruß


jaenicke - Sa 19.02.11 20:31

Caste es einfach... (aber es sollte eigentlich nur eine Warnung kommen hätte ich gedacht)

Delphi-Quelltext
1:
2:
3:
4:
5:
var
  MyChar: AnsiChar;
begin
  if Length(MyEdit.Text) > 0 then
    MyChar := AnsiChar(MyEdit.Text[1]); // das erste Zeichen aus dem Editfeld


Eritacus - Sa 19.02.11 20:52

DAS WAR ES!!!
Vielen Dank, es funktiniert prima. Und daran habe ich nun so lange geknobelt.
Wie gesagt, manchmal Brett vor Kopf!

Vielen Dank

Eritacus