AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Chr() - Probleme mit Variable

Ein Thema von Muellermilchtrinker · begonnen am 27. Dez 2010 · letzter Beitrag vom 27. Dez 2010
Antwort Antwort
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 16:51
Delphi-Version: 2009
Hallo DP,

ich hab folgendes:
Ich hab eine Funktion, die ein PWideChar möchte.
Ich muss aber jetzt nur eine 1 senden. Das mache ich mit Funktionxy(Chr(1)). Soweit funktioniert alles auch.
Wenn ich aber das jetzt mit einer Variable machen will, dann funktioniert das nicht (Funktionxy(Chr(i)).
Die Variable hat bekommt in einer Schleife die Werte von 0 bis 4.
Wenn ich das nun mit der Variable machen will, dann bekomme ich den Error: Inkompatible Typen: 'Char' und 'PWideChar'

Wie muss ich das jetzt machen, dass das mit der Variable funktioniert?
Danke schonmal.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 16:54
Wie schaut der Quellcode (mit variablendefiniton) aus?

Probier mal statt Chr(i) PWideChar(i)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:03
Also der Code wär eigentlich so:
Delphi-Quellcode:
  for I := 0 to 4 do
  begin
    USB_LCD_Command(128,0);
    USB_LCD_Data(Chr(i),1,0);
    sleep(250);
  end;
Mit PWideChar kann ich es compilieren aber beim ausführen bekomm ich eine AV. Das einzigste was geht ist mit der Konstanten und mit Chr()
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:12
Man braucht einfach nur eine Zwischenvariable:
Delphi-Quellcode:
var
  zeichen : Char;
begin
  ...
  zeichen := Chr(i);
  Funktionxy(@zeichen);
Ein direkter Cast wie z.B. PWideChar(i) kann nach hinten losgehen, denn wenn i=1 dann ist PWideChar(i) gleich $00000001 (also ein Zeiger der auf die Adresse 1 zeigt). ==> Zugriffsverletzung
Was aber gebraucht wird ist ein Zeiger, der auf einen 2-Byte Speicherplatz zeigt, dessen Inhalt = 1 ist.

Also könnte man auf die Idee kommen PWideChar(@i) zu übergeben.
Ein Integer ist aber 4 Bytes lang und man ist dann abhängig von der CPU-Architektur (Big-Endian vs. Small-Endian).

Mit einer Zwischenvariablen erspart man sich die ganzen Probleme.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:13
Versuch mal
PWideChar( Chr(i))
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Chr() - Probleme mit Variable

  Alt 27. Dez 2010, 17:15
Funktioniert. Danke.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz