Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Sonderzeichen '&' unterdrücken (https://www.delphipraxis.net/115864-sonderzeichen-unterdruecken.html)

Kalli 19. Jun 2008 07:38


Sonderzeichen '&' unterdrücken
 
Hallo zusammen,

ich hab da mal ein Problem ...

Ich erstelle mit TXLSFiles eine Exceldatei. In der Fußzeile möchte ich die Seitennummer andrucken. Dies geht mit TXLSFiles recht einfach. Jedes Sheet had die Eigenschaft 'PageSetup', in der Einstellungen für das Arbeitsblatt vorgenommen werden.

PageSetup.FooterText := 'Seite &[Seite] von %[Seiten]';

Diese Text in der Fußzeile erzeugt die Anzeige der Seitennummern.

Letzt das Problem: Delphi macht aus '&[' eine unterstrichene Eckige Klammer. Damit kann Excel aber nichts anfangen.

Kann man die Funktion von '&' unterdrücken und wenn ja, wie???

Kalli

taaktaak 19. Jun 2008 07:41

Re: Sonderzeichen '&' unterdrücken
 
Moin, Moin,
versuch's doch mal mit dem char-code von "&"

Bernhard Geyer 19. Jun 2008 07:51

Re: Sonderzeichen '&' unterdrücken
 
Zitat:

Zitat von Kalli
Letzt das Problem: Delphi macht aus '&[' eine unterstrichene Eckige Klammer. Damit kann Excel aber nichts anfangen.

Wieso muss immer Delphi für alles Schuld sein? :gruebel:
In vielen Situationen intpretieren die Win-API-Zeichenfunktionen ein & als Anweisung das nächste Zeichen zu unterstreichen um z.B. bei Menü, Buttons Hotkeys zu ermöglichen. Will man ein &-Zeichen haben, so muß dieses mit einem & Escapet werden.

Kalli 19. Jun 2008 08:10

Re: Sonderzeichen '&' unterdrücken
 
Hi,

das mit dem #38 hab ich schon durch.

Der Text kommt im Prinzip bei Excel an. Ruft man die Funktion für das Layout in Excel auf, steht 'Seite Seite] von Seiten]' in der Fußzeile. Ruft man dann die [Benutzerdefinierte Fußzeile ...] auf, steht der richtige Text im Eingabefeld und die Seiten werden nach [OK] richtig angezeigt.

Kalli

FAlter 19. Jun 2008 08:16

Re: Sonderzeichen '&' unterdrücken
 
Hi,

mach ein && draus.

Ansonsten selbst zeichnen und entsprechendes Flag an DrawText übergeben.

Mfg
FAlter

alzaimar 19. Jun 2008 08:25

Re: Sonderzeichen '&' unterdrücken
 
Ich hab eine Sache nicht verstanden:

Delphi-Quellcode:
PageSetup.FooterText := 'Seite &[Seite] von %[Seiten]';
Das funktioniert doch einwandfrei, völlig egal, was irgendwo in einer Anzeige steht. Wo ist also dein Problem?

Nur bei der *Anzeige* dieses Textes wird Delphi bei bestimmten Controls (TLabel, TButton z.B.) das '&' entsprechend interpretieren (bzw. Windows). Und das kann man dann auf unterschiedliche Weise verhindern.

1. Wie schon erwähnt, aus '&' ein '&&' machen (bringt aber bei Dir nichts, weil Excel sonst meckert)
2. Bei TLabel gibt es die Eigenschaft 'ShowAccelChar'. Die setzt Du auf FALSE und schon sieht man das '&'.

Kalli 19. Jun 2008 08:57

Re: Sonderzeichen '&' unterdrücken
 
Hallo alzaimar,

würde es funktionieren, würde ich nicht um Hilfe rufen.

In der Exceldatei kommt halt nur "Seite Seite] von Seiten]" an.

Welche Version von TXLSFiles benutzt Du? ich Hab die vom 27.August 2006.

Kalli

alzaimar 19. Jun 2008 10:13

Re: Sonderzeichen '&' unterdrücken
 
Tach Kalli.

Ich benutze das nicht, hab mich eben nur gewundert, das eine Stringzuweisung so einen Müll verursacht. Da liegt der Fehler aber in der TXLSFiles-Komponente und nicht bei Delphi. Es ist -wie gesagt- eine einfache Zuweisung, und da muss was in der Komponente selbst passieren, das das schief geht (denk ich zumindest).

Ich würde das auf jeden Fall dem Hersteller melden.

Funktioniert denn das '&'-->'&&' ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 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