Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Problem mit Darstellung einer CombBox in StringGrid mit "csOwnerDrawFixed"

  Alt 8. Jun 2013, 22:15
Hallo,

der Rest, der da überbleibt hat wohl folgenden Hintergrund: Die minimale Höhe der Combobox und der SpinEdit hängen von der gewählten Schrift bzw. Schriftgröße ab. Eine Combobox mit Style csDropDown / csDropDownList nimmt keine Änderung an der Höhe an. Im Style csOwnerDrawFixed hängt die Höhe von ItemHeight ab. Bei einem SpinEdit ist die Höhe zwar variabel, kann aber nicht die Mindesthöhe unterschreiten.

Szenario 1:
Delphi-Quellcode:
Combobox.Font.Name := 'Tahoma';
Combobox.Font.Size := 8;
Combobox.Style := csDropDownList; // oder csDropDown
hat zur Folge:
Combobox.Height := 21; // zumindest mit meinen Einstellungen

Szenario 2:
Delphi-Quellcode:
Combobox.Font.Name := 'Tahoma';
Combobox.Font.Size := 8;
Combobox.Style := csOwnerDrawFixed;
hat zur Folge:
Combobox.Height := 22; // zumindest mit meinen Einstellungen
Delphi-Quellcode:
SpinEdit.Font.Name := 'Tahoma';
SpinEdit.Font.Size := 8;
SpinEdit.Height := 22; // Minimalhöhe zumindest hier bei mir
Die Höhe ist nicht änderbar, deshalb läuft Dein SetBounds - zumindest was die Höhe anbelangt - ins Leere. Oder: Die Combobox passt mal genau in die Zelle, mal ist sie etwas zu hoch und überdeckt dann auch die Gridline (und/oder mehr); und diese wird anscheinend nicht aktualisiert.
Zitat:
Wie kann ich verhindern, dass noch ein "Rest" übrig bleibt?
Hast Du schon mal versucht das StringGrid zum Neuzeichnen zu zwingen?

Gruß
Danke für deine Ausführungen!
Das mit der Höhe hatte ich mir auch schon gedacht und von daher die Zellengröße des Grids mal erhöht. Leider brachte es keinen Erfolg.

Das mit dem Neuzeichnen hab ich mir auch schon überlegt, nur wüsst ich nicht, wo genau ich das Neuzeichnen einbauen soll
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat