Combobox im Vista Style?

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.
Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Combobox im Vista Style?

Beitrag von Antrepolit »

Mir ist folgedes aufgefallen:

Eine Combobox im Vista-Style sieht so aus:

Bild

Meine sehen immer nur so aus:

Bild

Der Unterschied sollte ersichtlich sein (Sieht aus wie ein breiter Button).
Wie bekomme ich diesen Style hin? Mit Lazarus will das nicht so recht klappen.
Und Google liefert mir auch keine Resultate...

Jemand ne Idee?
Grüße, Antrepolit

care only if your os is really burning

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Combobox im Vista Style?

Beitrag von Targion »

!? Probierst du das denn unter Vista/7 aus? Hast du ein XPManifest eingebunden?

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

Manifest ist eingebunden.
Ich habe Windows 7 Pro. Der XP-Look funktioniert ja, aber es soll eben mehr sein.
Grüße, Antrepolit

care only if your os is really burning

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Euklid »

Betrifft das Problem nur die Combo-Box?

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

Euklid hat geschrieben:Betrifft das Problem nur die Combo-Box?


Wie's bisher aussieht schon, die Buttons sind Vista-like.

Ist es vllt. nur eine Eigenschaft der ComboBox?
ReadOnly auf true bringt leider nix...

Bei Delphi hatte ich das auf der Arbeit auch; dort konnte ich den Style
ändern, weiß nur nicht mehr genau, welcher das war, und ob es
denn nur daran lag.
Grüße, Antrepolit

care only if your os is really burning

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Euklid »

Antrepolit hat geschrieben:
Euklid hat geschrieben:Betrifft das Problem nur die Combo-Box?


Wie's bisher aussieht schon, die Buttons sind Vista-like.

Ist es vllt. nur eine Eigenschaft der ComboBox?


Ich vermute eher einen kleinen Bug in Verbindung mit der von Lazarus eingebundenen Manifest-Datei. Diese scheint dann bezüglich der Combo-Boxen noch den XP-Stil vorzugeben.

Bugs können hier gemeldet werden: http://bugs.freepascal.org

Ich vermute dahinter nichts größeres, daher sollte das schnell bereinigt werden können.

Viele Grüße, Euklid

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Socke »

Vielleicht hilft TComboBox.Style weiter. Unter GTK2 gibts vom Stil her zwei Varianten: eine zum Eintippen (aka XP-Look) und eine, wo nur die Vorgabewerte ausgewählt werden können (aka Win7-Look).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

@Socke: Schon geprüft.

Style kann nur die Werte einer ENumeration annehmen, und diese habe ich alle 5 ausprobiert - ohne Erfolg.
Grüße, Antrepolit

care only if your os is really burning

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Combobox im Vista Style?

Beitrag von pluto »

Unter GTK2 gibt es die Möglichkeit so genannte RC Dateien Manuell nach zu laden. Vielleicht gibt es unter Windows was vergleichbares, wenn du einfach versuchst ein Systemtheme zu verwenden. Die Combobox müsste auf eine API Funktion von Windows Basieren. Ansonsten Selbst machen:
01: Eine neue Komponente erstellen, ableiten von TCustomControl
02: Dort Edit Feld einbauen und ein Button
03: Wenn du auf den Button Klickst eine ListBox öffnen.
04: Hier hättest du VIELLEICHT den Vorteil, dass du das ThemenService nutzen könntest. Als Beispiel THeaderControl, dort wird es genutzt. Vielleicht Hilft dir das weiter. Vielleicht wird auch "nur" die Falsche Themen Datei geladen.
MFG
Michael Springwald

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

Es scheint ein Bug zu sein.

Der ListStyle DropDownList funktioniert bei Delphi für den Style, aber nicht bei Lazarus.
Ich habe schon versucht, in der Manifest-Datei den Eintrag

Code: Alles auswählen

<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>

auf Version 6.1.0.0 zu setzen, laut MSDN müsste das der Windows 7 Style sein, aber nichts. Lazarus überschreibt die Manifestdatei immer, es sei denn, Themes werden deaktiviert.
Dann aber hat man den Old School Look.
Kann man evtl. Einfluss nehmen, auf was, was Lazarus in die Manifest-Datei einbindet?
Grüße, Antrepolit

care only if your os is really burning

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Socke »

Antrepolit hat geschrieben:Kann man evtl. Einfluss nehmen, auf was, was Lazarus in die Manifest-Datei einbindet?

Einen direkten Weg kenne ich nicht, gibt aber noch zwei indirekte Möglichkeiten:
  1. Du schaltest in den Projektoptionen das manifest aus und bindest es selbst manuell ein.
  2. Du platzierst die manifest-Datei im Verzeichnis der exe-Datei und benennst sie <Programmnam>.manifest
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

@Socke:

klappt leider nicht. Meine Antwort von eben ist irgenwie verloren gegangen, deshalb im Schnelldurchgang, was ich getan habe:

Manifest.xml -> Manifest.RC -> Manifest.lrs (eingebunden {$ ...})

Führte bei Version 6.1.0.0 immer dum Debuggerfehler. Bei Version 6.0.1.0 ging es, aber wie gehabt.

Was läuft da bloß schief?
Grüße, Antrepolit

care only if your os is really burning

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Socke »

Antrepolit hat geschrieben:Manifest.xml -> Manifest.RC -> Manifest.lrs (eingebunden {$ ...})

Das kann ja auch nicht funktionieren :D
Vergleiche mal eine Lazarusresource {$I myres.lrs} und eine Windowsresource {$R mywinres.res}.

Windows kann das Manifest nicht aus einer Lazarusresource holen.
Also: Manifest.xml -> Manifest.RC -> windres -> {$R Manifest.res}
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Combobox im Vista Style?

Beitrag von Antrepolit »

Doch Socke, das funktioniert auch so.

Ich habe mich an eine Anleitung gehalten: http://www.delphipraxis.net/post1074546.html

Und der Debuggerfehler kam auch nur bei dem ändern der Version auf 6.1.0.0.
Mit 6.0.1.0 hat es ja funktioniert. Die Frage ist warum.
Grüße, Antrepolit

care only if your os is really burning

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Combobox im Vista Style?

Beitrag von Hitman »

Antrepolit hat geschrieben:[...]auf Version 6.1.0.0 zu setzen, laut MSDN müsste das der Windows 7 Style sein, aber nichts.

Hast du dazu einen Link? Ich finde nämlich nichts dazu und eine Suche auf meinem Windows 7 gibt mir keine Bestätigung, dass es ein neueres Common Controls Assembly als 6.0 gibt.
Das erklärt dann nämlich auch den Crash - wenn SxS das Assembly nicht finden kann, löst es einen Fehler aus (sieht auch Log Einträge).

On-Topic: Die ComboBox wird soweit ich weiß teils selbst gezeichnet (um OwnerDraw zu ermöglichen). Folglich gibt es dadurch kein System Look and Feel.

Antworten