Hi,
habe mal wieder ein Problem.
Ich wette, die Lösung ist mal wieder total einfach nur komme ich einfach nicht drauf.
Ich habe eine zur Laufzeit erstellte ComboBox, die als Parent ein StringGrid hat und sich immer auf der gerade ausgewählten Zelle befindet. Das funktioniert alles soweit. Der Style ist csDropDownList, d.h. man kann nur Einträge aus der Liste auswählen, nichts selbst tippen. Wenn ich mit den Pfeiltasten navigiere während ich die Box ausgwählt habe kann ich auch ganz normal zwischen den Einträgen wechseln, nur wenn ich die Liste ausklappen will sieht man sie nicht. Auch wenn der Style anders ist tritt das gleiche Problem auf.
Ich vermute, dass die Liste einfach von dem StringGrid verdeckt wird.
Wie kann ich das beheben, ohne Parent zu ändern?
Hier noch das Stück Code, auch wenn es wahrscheinlich irrelevant ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm2.StuplaMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var xz,yz,i: Integer; begin if button=mbLeft then begin Stupla.MouseToCell(X,Y,xz,yz); ComboBoxCell.Free; ComboBoxCell := TComboBox.Create(Stupla); ComboBoxCell.Parent := Stupla; ComboBoxCell.Width := Stupla.ColWidths[xz]-1; ComboBoxCell.Height := Stupla.RowHeights[yz]; ComboBoxCell.Left := (xz*(Stupla.DefaultColWidth+1)+1); ComboBoxCell.Top := (yz*(Stupla.DefaultRowHeight+1)); ComboBoxCell.Show; ComboBoxCell.Setfocus;
ComboBoxCell.Style := csDropDownList; for i:=0 to Kurswahl.Count-1 do begin ComboBoxCell.Items.Add(Kurswahl[i]); end;
end; end; |
Die Variablen sollten alle richtig definiert sein (ComboBoxCell, Stupla etc.).
Danke schonmal.
Gruß, Nitr0