Registriert seit: 29. Sep 2003
205 Beiträge
Delphi XE Enterprise
|
AW: selbsterstellte Combobox hat (noch) keinere Fehler
15. Jun 2010, 17:37
So:
Delphi-Quellcode:
procedure TMultiColCheckedComboBox.DoDropDown(Sender : TObject);
var
ScreenPoint : TPoint;
i, j,
FWidth,
FHeight,
FTop,
FLeft : integer;
begin
// damit das Suchfeld nicht unerwartet aufpoppt, wird es beim Zeigen der
// CheckList immer auf unsichtbar geschaltet
if FSearchForm.Visible then
begin
FSearchForm.Visible := false;
end;
if FMultiSearchForm.Visible then
begin
FMultiSearchForm.Visible := false;
end;
// Dropdownbutton
if FButton.Tag = 1 then
begin
FButton.Tag := 0;
if not FEdit.Focused then
EditOnExit(Sender);
Exit;
end;
Click;
// Assign Form coordinate and show
ScreenPoint := Parent.ClientToScreen(Point(Self.Left, Self.Top + Self.Height));
with FPrivForm do
begin
Visible := false;
FLeft := ScreenPoint.X;
FTop := ScreenPoint.Y;
FWidth := 0;
FHeight := 0;
// Gesamtbreite des Grids ermitteln
...
// Aufklapphöhe ermitteln (keine leere Fläche in der DropDownBox)
...
// Breite mindestend Komponentenbreite
...
// Höhe auf Bildschirmgröße limitieren
...
// Breite auf Bildschirmgröße limitieren
...
BorderStyle := bsNone;
OnDeactivate := DoCloseDropDown;
// Box anzeigen
Show;
SetBounds(FLeft, FTop, FWidth, FHeight);
FormStyle := fsStayOnTop; // über die Startleiste
Font := Self.Font;
end;
end;
|
|
Zitat
|