Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   & ersetzen, wenn es nicht als && vorkommt (https://www.delphipraxis.net/210887-ersetzen-wenn-es-nicht-als-vorkommt.html)

TurboMagic 26. Jun 2022 12:33

& ersetzen, wenn es nicht als && vorkommt
 
Hallo,

wie kann man am einfachsten einzelne & ersetzen die z.B. in Labels für
sowas benutzt werden: &OK (unterstreicht das O um anzuzeigen, dass Alt-O
diese Aktion auslöst) ohne aber && komplett zu ersetzen?
&& würde ja genutzt, um wirklich ein & in so einem String anzuzeigen und
sollte daher dann ja nur auf & reduziert werden.

Ja, eine eigene Routine wäre schnell geschrieben, aber gibt's da nicht was
vorgefertigtes für?

Grüße
TurboMagic

himitsu 26. Jun 2022 12:56

AW: & ersetzen, wenn es nicht als && vorkommt
 
Delphi-Referenz durchsuchenStripHotkey?

TurboMagic 26. Jun 2022 13:03

AW: & ersetzen, wenn es nicht als && vorkommt
 
Hallo,

möglich, dumm dabei nur, dass man dann eine VCL Unit
in nicht GUI Code (das wäre nämlich im Code zum Auslesen von Produktnamen
aus der DB) einbinden müsste...

Ich schaue mir das aber später mal an.

Grüße
TurboMagic

Uwe Raabe 26. Jun 2022 13:05

AW: & ersetzen, wenn es nicht als && vorkommt
 
Der Code ist nicht kompliziert und wenn du auf die Besonderheiten verzichten kannst, kommst du mit einer abgespeckten Version aus:
Delphi-Quellcode:
function StripHotkey(const Text: string): string;
var
  I: Integer;
begin
  Result := Text;
  I := 1;
  while I <= Length(Result) do
  begin
    if Result[I] = '&' then
      Delete(Result, I, 1);
    Inc(I);
  end;
end;

Redeemer 26. Jun 2022 21:15

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von TurboMagic (Beitrag 1507873)
Hallo,

möglich, dumm dabei nur, dass man dann eine VCL Unit
in nicht GUI Code (das wäre nämlich im Code zum Auslesen von Produktnamen
aus der DB) einbinden müsste...

Was machen Accelerators in der DB?

HolgerX 27. Jun 2022 06:46

AW: & ersetzen, wenn es nicht als && vorkommt
 
Hmm..

Wenn es immer nur um das erste '&' geht, dann würde ein
Delphi-Quellcode:
s := StringReplace(s, '&', '', []);

genau dies tun..

TurboMagic 27. Jun 2022 08:04

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von Redeemer (Beitrag 1507887)
Zitat:

Zitat von TurboMagic (Beitrag 1507873)
Hallo,

möglich, dumm dabei nur, dass man dann eine VCL Unit
in nicht GUI Code (das wäre nämlich im Code zum Auslesen von Produktnamen
aus der DB) einbinden müsste...

Was machen Accelerators in der DB?

Ganz einfach: Benutzer können Produkte anlegen, die dann als Buttons dargestellt werden.
Für diese Buttons können die Nutzer auf diesem Weg Accelerator Keys definieren, was für
Tastaturnutzer hilfreich sein kann.

Danke den vielen Tipps, das ist inzwischen gelöst.

bcvs 27. Jun 2022 08:19

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von TurboMagic (Beitrag 1507895)
Ganz einfach: Benutzer können Produkte anlegen, die dann als Buttons dargestellt werden.

Sollte man dann nicht besser Produktnamen und Button-Beschriftung getrennt voneinander speichern?

Sinspin 27. Jun 2022 12:20

AW: & ersetzen, wenn es nicht als && vorkommt
 
Zitat:

Zitat von HolgerX (Beitrag 1507894)
Delphi-Quellcode:
s := StringReplace(s, '&', '', []);

Das schießt zu kurz. da würde auch die erwünschten doppel & (&&) platt machen.

Das dagegen funktioniert:
Zitat:

Zitat von Uwe Raabe (Beitrag 1507874)
Delphi-Quellcode:
function StripHotkey(const Text: string): string;
var
  I: Integer;
begin
  Result := Text;
  I := 1;
  while I <= Length(Result) do
  begin
    if Result[I] = '&' then
      Delete(Result, I, 1);
    Inc(I);
  end;
end;


DeddyH 27. Jun 2022 12:21

AW: & ersetzen, wenn es nicht als && vorkommt
 
Nein, es würde nur das erste Vorkommen von "&" löschen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
Seite 1 von 3  1 23      

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