Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Das Zeichen & erhält beim Auslesen einen anderen Wert (https://www.delphipraxis.net/136506-das-zeichen-erhaelt-beim-auslesen-einen-anderen-wert.html)

Alfredo 1. Jul 2009 22:39

Datenbank: dbf • Version: Foxpro 2.6 • Zugriff über: ADS

Das Zeichen & erhält beim Auslesen einen anderen Wert
 
Im Datagrid steht z.B. im Feld NAME == "Müller & Partner".

Delphi-Quellcode:
Stringvariable := ADSTable1.FieldValues['NAME']
showmessage(Stringvariable);
Dann erhält man als Ausgabe "Müller _Partner".

Gruß
Alfred

Muetze1 1. Jul 2009 22:51

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Das ist ein falscher Fehler, da der Text ordentlich ausgelesen wird. Nur die Anzeige durch ShowMessage verfälscht dieses. Das & Zeichen ist die Kennzeichnung für ShortCuts und wird somit als Unterstrich dargestellt (sogenanntes Escape Zeichen). Um das Escapezeichen zu deaktivieren musst du das Escapezeichen escapen, also doppelt-&.

hoika 2. Jul 2009 06:59

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Hallo,

aber das ShowMessage das falsch anzeigt, ist komisch.
Bei einem TLabel wird das ja über ShowAccelChar gesteuert.


Heiko

mkinzler 2. Jul 2009 07:02

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Was zeigt er im Debugger an?

himitsu 2. Jul 2009 07:16

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
in Delphi wurde wohl einfach vergessen das SS_NOPREFIX anzugeben.

standardmäßig wird & als Accelchar angesehn und man muß es erst abschalten.
nur gibt es bei den Dialogen halt keine ShowAccelChar-Option :? .

Alfredo 2. Jul 2009 08:29

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
@himitsu

Wo setze ich denn SS_NOPREFIX.


@mkinzler

mit dem Debugger stehe ich leider noch auf Kriegsfuss,
so dass showmessage mein Debugger ist.


Gruß
Alfred

himitsu 2. Jul 2009 08:39

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Zitat:

Zitat von Alfredo
Wo setze ich denn SS_NOPREFIX.

bei dieser Funktion garnicht, denn das müßte ja "intern" gesetzt werden (beim Edit aktiviert man Setzen dieses Flags halt mit der Eigenschaft ShowAccelChars)

Zitat:

Zitat von Alfredo
mit dem Debugger stehe ich leider noch auf Kriegsfuss,
so dass showmessage mein Debugger ist.

Strg+Alt+W (oder Ansicht > Debugfenster > Überwachte Ausdrücke)
und dort den Namen der Variable eintragen

sobald das Programm im Debugmode (angehalten) in einer Prozedur steht, wo diese Variable verfügbar ist, wird ihr Inhalt angezeigt.

oder auch einfach mal den Mauszeiger über einem Variablennamen (im Quelltext) halten und 'nen paar Sekündchen warten, dann zeigt der Debugges den Inhalt auch an.

oder Rechtsklick (Popupmenü) auf eine Variable > Fehlersuche > Auswerten/Ändern

Sherlock 2. Jul 2009 08:40

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Mach doch einfach ein

Delphi-Quellcode:
StringReplace(Name, '&', '&&',[rfReplaceAll])
Sherlock

hoika 2. Jul 2009 09:45

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Hallo,

NEIN !!! ;)

Du kannst doch nicht den Variablen-Inhalt ändern, Mensch !!! ;)
nur weil ShowMessage ihn falsch anzeigt (wenn es so ist).

Wenn z.B. ein Label den Wert korrekt anzeigt, ist es doch OK.


Heiko

Sherlock 2. Jul 2009 09:53

Re: Das Zeichen & erhält beim Auslesen einen anderen Wer
 
Der Variableninhalt wird nicht geändert. StringReplace ist eine Funktion deren Ergebnis der korrigierte String ist ;)

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.
Seite 1 von 2  1 2      

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