Discussion:
Altes Delphi mit neuem Windows
(zu alt für eine Antwort)
Matthias Hanft
2018-03-15 17:52:41 UTC
Permalink
Hallo,

um meinen Delphi-7-Programmen einen frischen "Anstrich" zu geben,
habe ich im Manifest u.a. das hier eingebaut:

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

Das funktioniert im Prinzip prima - sieht total modern aus :-) -,
aber *einen* seltsamen Effekt gibt's trotzdem: Der Text einer
ausgewählten Zeile bleibt in einem TreeView schwarz (und ist
deswegen schlecht lesbar), wird in einer CheckListBox jedoch
- wie üblich - invertiert (also weiß und ist dadurch gut les-
bar). Beispiel auf Loading Image...

Ich kann mich nicht erinnern, "farbtechnisch" an den einzelnen
Controls *irgendetwas* herumgeschraubt zu haben. Besteht eine
Chance, auch den TreeView-Text bei Auswahl (für bessere Les-
barkeit) zu invertieren, und wo müsste ich da suchen?

Danke & Gruß Matthias.
Matthias Hanft
2018-03-15 18:32:02 UTC
Permalink
Post by Matthias Hanft
Ich kann mich nicht erinnern, "farbtechnisch" an den einzelnen
Controls *irgendetwas* herumgeschraubt zu haben.
Hat sich Alzheimer-technisch erledigt - nachschauen ist besser
als erinnern... ich hatte tatsächlich im OnCustomDrawItem stehen:

if (...bestimmte Bedingung...) then
Sender.Canvas.Font.Color:=clWindowText // normal schwarz
else
Sender.Canvas.Font.Color:=clBlue; // eine Art Blau

und das wurde auch bei den ausgewählten Items gemacht. Ich habe
jetzt über das ganze noch drübergeschrieben

if not (cdsSelected in State) then

dann klappts wie bisher mit den Farben, und wenns ausgewählt ist,
macht Windows das selber irgendwie automagisch richtig, also in-
vertiert.

Also vergesst das ganze einfach... :-) (ich hätte den Artikel
auch gecancelt, aber das funktioniert ja irgendwie nie so
richtig)

Gruß Matthias.

Loading...