Guten Morgen allerseits,
Ich habe eine Anwendung gebastelt, welche unter verschiedenen Windows Versionen laufen muss.
In der Anwendung ist eine TCombobox mit derer Font Farbe ich Eigenschaften Darstellen will. Leider funktioniert das nur unter Windows XP, unter Windows 7 geht es nicht. Es hängt sicherlich damit zusammen, dass mein Element Read Only ist.
Wenn ich Hergehe und die Eigentschaft ReadOnly = false mache, dann sieht man auch unter Windows 7 die Rote schrift, dies Bedingt aber, dass ich im OnKeyPress Ereigniss Key := #0 mache. Kennt jemand noch eine "Bessere" variante das Problem zu lösen ?
Gruß
Corpsman
Font.Color in TCombobox funktioniert nicht..
Re: Font.Color in TCombobox funktioniert nicht..
Hatte erst in einem klassischen Style von Win7 probiert, da ging Readonly ebenfalls, in einem anderen Style nicht...
Evt. müsstest du die Combobox selber zeichnen siehe z.B. (ungetestet): http://www.lazarusforum.de/viewtopic.php?f=18&t=1697
...einfacher ist deine Lösung, nur Pfeil-, Tabulator und Entertaste zuzulassen, ansonsten Key:=0;
Evt. müsstest du die Combobox selber zeichnen siehe z.B. (ungetestet): http://www.lazarusforum.de/viewtopic.php?f=18&t=1697
...einfacher ist deine Lösung, nur Pfeil-, Tabulator und Entertaste zuzulassen, ansonsten Key:=0;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Font.Color in TCombobox funktioniert nicht..
Nehme alles zurück, Selberzeichnen ist doch einfacher und funktioniert auch super mit readonly (einfach Style auf csOwnerDrawFixed stellen):Michl hat geschrieben:...einfacher ist deine Lösung, nur Pfeil-, Tabulator und Entertaste zuzulassen, ansonsten Key:=0;
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
Combobox1.Items.Add('Test');
Combobox1.ItemIndex:=0;
Combobox1.ReadOnly:=True;
Combobox1.Style:=csOwnerDrawFixed; // like csDropDownList, but custom drawn
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Combobox1.Font.Color=$0000FF
then Combobox1.Font.Color:=$00FF00
else Combobox1.Font.Color:=$0000FF;
end;
- Dateianhänge
-
- combobox.jpg (8.27 KiB) 556 mal betrachtet
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;