Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: Checkbox in StringGrid -> Klicken klappt nicht

  Alt 9. Feb 2013, 00:36
Hallo,

der Vom TE eingeschlagene Weg
  CHB_OK.Parent := StringGrid1;
kann nicht funktionieren.
Annahme: Es ist eine Zelle selektiert, so dass die Checkbox im Grid angezeigt wird. Was passiert, wenn man mit der Maus auf die Checkbox klickt?
Die WM_LBUTTONDOWN Message wird in TButtonControl.WndProc eigentlich nur über TWinControl.WndProc an TControl.WndProc weitergereicht, um dann über TObject.Dispatch in TControl.WMLButtonDown zu landen. Soweit passt eigentlich noch alles. Wenn jetzt die Kinder mit den Eltern sprechen: Die von der Checkbox abgesetzte WM_COMMAND Message landet jetzt aber (bei Mama und Papa) in der TCustomGrid.WMCommand und dort wird eben nur der InplaceEditor (falls existent), nicht aber die Checkbox behandelt.
Die WM_COMMAND Message würde von der Checkbox über TCustomCheckBox.CNCommand verarbeitet werden; kommt dort nur nicht mehr an.
Wer also das Standardverhalten einer Checkbox erhalten möchte, suche sich bessere Eltern.

Kompletter Unsinn ist übrigens mein Vorschlag (also ganz schnell vergessen)
  CHB_OK.CreateParentedControl (StringGrid1.Handle);
Außer eine Instanz einer TWinControl anzulegen tut es nix. Lieber TE sollte Du diesen Vorschlag übernommen haben (wenn es funktioniert, dann nur weil die CHB_OK.Parent Zuweisung fehlt und die Checkbox auf einem Form, einem Panel o. ä. liegt), es tut mir leid zu schnell aus der Hüfte geschossen zu haben.

@Bummi:
Zitat:
Mich interessiert immer noch warum das beschriebene Verhalten auftritt
Danke! Das habe ich gebraucht. Sonst hätte ich wohl über meinen Post nicht mehr nachgedacht und mich mit (m)einer unsinnigen Lösung zufrieden gegeben.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat