Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#2

AW: Notification, falls Komponente nicht mehr sichtbar

  Alt 16. Okt 2018, 13:49
Hallo zusammen,

Ich habe eine Checkbox in einer GroupBox und habe folgendes Problem. Setze ich nur GroupBox.Visible := false, dann wird die gesamte GroupBox ausgeblendet, die Properties Checkbox.Visible und Checkbox.Showing bleiben weiterhin auf TRUE. Das verstehe ich nun nicht.
In der Checkbox-Klasse brauche ich eine Benachrichtigung, wenn diese nicht mehr sichtbar ist, d.h. auch wenn der Parent / einer der Parents ausgeblendet wird. Geht das überhaupt irgendwie?

In der Checkbox-Komponente habe ich bereits die Messages CM_VISIBLECHANGED und CM_SHOWINGCHANGED ausprobiert, sie kommen aber nicht, wenn direkt die GroupBox.Visible verändert wird.
Logisch. Du setzt ja auch nicht die Checkboxen auf Visible:=False, sondern nur die Groupbox. Das die darin enthaltene Controls ebenfalls Visible=False werden, dafür musst du schon selber sorgen.

Delphi-Quellcode:
var
  i: Integer;
begin
  for i:=0 to grpTermindaten.ControlCount-1 do
    if grpTermindaten.Controls[i] is TCheckBox then
      TCheckBox (grpTermindaten.Controls[i]).Visible:=grpTermindaten.Visible;
end;
Aber welches Sinn hat das? Wenn die Groupbox nicht visible ist, werden die darin enthaltenen Controls auch nicht dargestellt, egal welchen Visible-State sie haben.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (16. Okt 2018 um 13:51 Uhr)
  Mit Zitat antworten Zitat