Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Satty67,
5. Mai 2009
Zur Visualisierung kann man sich ja auch schnell was basteln:
function VisualizeASCII(Text : String; SpaceToo : Boolean) : String;
const
ASCII_Codes : array of String = (
'<NUL>', '<SOH>', '<STX>', '<ETX>', '<EOT>', '<ENQ>', '<ACK>', '<BEL>',
'<BS>', '<TAB>', '<LF>', '<VT>', '<FF>', '<CR>', '<SO>', '<SI>', '<DLE>',
'<DC1>', '<DC2>', '<DC3>', '<DC4>', '<NAK>', '<SYN>',...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Satty67,
5. Mai 2009
Das ist die Forderung des ComControl von Windows, da kann Delphi nichts dafür. Windows arbeitet schon immer mit NUL-terminierten Strings, ich glaube nicht, dass das irgendwann einmal unter Windows ging. :gruebel:
Delphi übergibt an das Windows-Element evtl. sogar ein '1234'#0'6789'#0#0. Nur schneiden Windows Funktion den String vor seiner Sichtbarkeit ab. Ich bin sogar relativ sicher, dass...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Satty67,
29. Apr 2009
Also zur Speicherung der binären Daten hast Du jetzt einen Datentyp genommen, der auch alle binären Zeichen speichern kann (Delphi-String, array of Byte wäre auch gegangen etc.)
Zur Anzeige musst Du die Daten aber aufbereiten, also Zeichen 0-31 und 127 ersetzen (Parser). Den TEdit.Text wurde zwar in Delphi als String implementiert, ist aber eigentlich ein PChar (das eben keine #0 als...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Satty67,
28. Apr 2009
Nicht ganz...
s := '1234'#0'6789';
Edit1.Text := s; // Anzeige 1234
ShowMessage(IntToStr(Length(s))); // 9!
String ist in Delphi durchaus in der Lage, auch #0 aufzunehmen, ohne die Länge zu kürzen. Nur Edit.Text ist wohl am Ende ein PChar, das dann bei der Anzeige tatsächlich abgeschnitten wird.