Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Belegt die Verwendung eines Manifests die Tasten um? (https://www.delphipraxis.net/154514-belegt-die-verwendung-eines-manifests-die-tasten-um.html)

DelphiBandit 14. Sep 2010 07:19

Belegt die Verwendung eines Manifests die Tasten um?
 
Hallo zusammen,

habe heute aus dem Test eine ganz merkwürdige Rückmeldung bei der Verwendung der XPManifest-Komponente bekommen. Und zwar verhält sich eine TComboBox nicht mehr wie vorher was Tastendrücke angeht. Vorher war es so, dass man Anfangsbuchstaben tippen konnte, einmal Page-Down sprang auf den ersten Eintrag, der dem Getippten entsprach. Sobald ich das Manifest einbinde und in den Programmoptionen sage Laufzeit-Themes einbinden, springt die ComboBox bei Page-Up / Page-Down jedoch an das Ende und den Anfang der Einträge. Frage ich den Tastencode ab, er VK_PRIOR und VK_NEXT, aber die Combobox verhält sich nicht so wie vorher.

Das Manifest haben wir erst in der aktuellen Programmversion eingebunden, um das Outfit des Programmes ein wenig aufzuhübschen.

Ich habe schon mit vielen möglichen Keywords versucht hier was zu finden, leider ohne Erfolg. Kennt jemand das Problem und kann man das Verhalten irgendwie wieder gerade rücken?

RWarnecke 14. Sep 2010 07:39

AW: Belegt die Verwendung eines Manifests die Tasten um?
 
Unter welchen Betriebssystem läuft das ganze denn ? Denn ich hatte ein etwas anderes Problem, dass mein Programm mit einem Manifest erst ab Windows XP 2 lief, wie hier beschrieben. Vielleicht gibt es da ja einen weiteren Effekt.

DelphiBandit 14. Sep 2010 07:48

AW: Belegt die Verwendung eines Manifests die Tasten um?
 
das Ganze läuft hier unter WinXP SP3, allerdings haben das sicherlich nicht alle unsere Anwender. Für mein Problem habe ich jetzt einen trivialen Workaround geschaffen, da sich die ComboBox mit den Tasten VK_UP / VK_DOWN so verhält wie ich möchte.

Vermutlich steckt dahinter, dass das Theming auch für die Bedienung der Komponenten ein "einheitliches" Verhalten erzeugt. Das ist aber nur eine Vermutung meinerseits ;)
Delphi-Quellcode:
procedure TdlgStamm.cmbAuswahlKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  if Key = VK_PRIOR then
    Key := VK_UP;
  if Key = VK_NEXT then
    Key := VK_DOWN;
Und wir sollten uns auf jeden Fall vorher auch Dein Problem beachten, bevor wir ausliefern. Kann man das Problem u.U. umgehen, wenn man XP-Style komplett ausschaltet? Das werde ich gleich ausprobieren, aber auch nicht wirklich eine Lösung. Win XP SP1a startet ohne Fehlermeldung, ganz ohne SP muß ich mir erstmal eine VM aufsetzten :D

RWarnecke 14. Sep 2010 08:01

AW: Belegt die Verwendung eines Manifests die Tasten um?
 
Mit dem Manifest aus meinem angegebenen Link, kannst Du das Programm mit Manifest starten, von Windows XP ohne Service-Pack bis Windows 7.

DelphiBandit 14. Sep 2010 09:17

AW: Belegt die Verwendung eines Manifests die Tasten um?
 
So, die VM mit XP Prof und NoSP ist fertig. Die Anwendung läuft mit dem Standard-Manifest, welches als Komponente dabei ist ohne Probleme/Fehlermeldungen. Könnte vllt. daran liegen, dass wir noch Delphi 2007 nehmen und Du schon etwas weiter bist mit Deiner Delphi-Version?

Danke auf jeden Fall für den Hinweis! Für das Verhalten der ComboBox habe ich zwar noch keine Lösung und weiß auch gar nicht so genau wie ich dazu was finden soll. Aber werde weiter versuchen da zu einer globalen Lösung zu finden.

RWarnecke 14. Sep 2010 12:21

AW: Belegt die Verwendung eines Manifests die Tasten um?
 
Zitat:

Zitat von DelphiBandit (Beitrag 1049471)
Könnte vllt. daran liegen, dass wir noch Delphi 2007 nehmen und Du schon etwas weiter bist mit Deiner Delphi-Version?

Nee, das Programm SystemInfo habe ich noch unter der BDS 2006 entwickelt. Ich habe allerdings nie die Komponente genommen sondern die XML-Datei immer als Resource mit in die Anwendung eingebunden.


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