Index: VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas =================================================================== diff -u -r597 -r598 --- VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas (.../VerpakkingDetailScherm.pas) (revision 597) +++ VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas (.../VerpakkingDetailScherm.pas) (revision 598) @@ -13,11 +13,12 @@ Resourcestring NERGENS_DEEL_VAN_CAPTION = '--Nergens deel van--'; + GEEN_DATA_CAPTION = 'Geen verpakking geselecteerd'; type TFormVerpakkingDetail = class(TFormSubscherm) PanelVerpakkingControls: TPanel; - Label10: TLabel; + LabelParameters: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; @@ -53,6 +54,8 @@ CheckComboBoxPositie: TCheckedComboBox; CheckComboBoxRichting: TCheckedComboBox; + LabelGeenData: TLabel; + procedure LaadCheckedComboBoxen(); procedure UpdateGui(Sender: TObject); procedure ToonProductVerpakking(ProductVerpakking: TProductVerpakking); @@ -76,6 +79,7 @@ ProductVerpakkingSubject: TSubject); begin inherited Create(AOwner, Navigator, ApplicationContext); + // Observer self.FProductVerpakkingSubject := ProductVerpakkingSubject; self.FProductVerpakkingSubjectObserver := TSubjectObserver.Create(self); self.FProductVerpakkingSubjectObserver.OnChange := UpdateGui; @@ -97,6 +101,7 @@ procedure TFormVerpakkingDetail.LaadCheckedComboBoxen(); begin // Vervang sommige comboboxen door TCheckedComboBox + CheckComboBoxPositie := TCheckedComboBox.Create(self); with CheckComboBoxPositie do CheckComboBoxPositie.Delimiter := ';'; @@ -110,9 +115,17 @@ procedure TFormVerpakkingDetail.UpdateGui(Sender: TObject); begin - if ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking <> nil then - ToonProductVerpakking(ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking); + // Toon de geselecteerde verpakking + if ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking = nil then + begin + // Product niet aanwezig + TUtil.ToonLabelOverScherm(self, LabelGeenData, GEEN_DATA_CAPTION, false); + exit; + end; + // Product aanwezig + ToonProductVerpakking(ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking); + TUtil.ToonLabelOverScherm(self, LabelGeenData, GEEN_DATA_CAPTION, true); UpdateControlsEnableStatus(); end; @@ -126,9 +139,9 @@ for Item in Waarden.keys do ComboBox.Items.AddObject(Vertaling[Item], TObject(Item)); // Items selecteren. Als waarde niet aanwezig is, uit default halen. Als dat niet gaat eerste item selecteren. - if (GeselecteerdeWaarde <> '') and (Vertaling.TryGetValue(GeselecteerdeWaarde, Item) = True) then + if (GeselecteerdeWaarde <> '') and (Vertaling.TryGetValue(GeselecteerdeWaarde, Item) = true) then ComboBox.ItemIndex := ComboBox.Items.IndexOf(Item) - else if (DefaultGeselecteerdeWaarde <> '') and (Vertaling.TryGetValue(DefaultGeselecteerdeWaarde, Item) = True) then + else if (DefaultGeselecteerdeWaarde <> '') and (Vertaling.TryGetValue(DefaultGeselecteerdeWaarde, Item) = true) then ComboBox.ItemIndex := ComboBox.Items.IndexOf(Item) // Default else if ComboBox.Items.Count > 0 then ComboBox.ItemIndex := 0; // Geen waarde, geen default, eerste item selecteren. @@ -151,19 +164,19 @@ if GeselecteerdeWaarden.Count > 0 then begin for Item in GeselecteerdeWaarden do - if Vertaling.TryGetValue(Item, TempStr) = True then + if Vertaling.TryGetValue(Item, TempStr) = true then begin if CheckedComboBox.Items.IndexOf(TempStr) >= 0 then - CheckedComboBox.Checked[CheckedComboBox.Items.IndexOf(TempStr)] := True; + CheckedComboBox.Checked[CheckedComboBox.Items.IndexOf(TempStr)] := true; end; end else // Default waarden for Item in DefaultGeselecteerdeWaarden do - if Vertaling.TryGetValue(Item, TempStr) = True then + if Vertaling.TryGetValue(Item, TempStr) = true then begin if CheckedComboBox.Items.IndexOf(TempStr) >= 0 then - CheckedComboBox.Checked[CheckedComboBox.Items.IndexOf(TempStr)] := True; + CheckedComboBox.Checked[CheckedComboBox.Items.IndexOf(TempStr)] := true; end; end; @@ -197,36 +210,24 @@ // Breedte, Diepte, Hoogte. // Default waarde altijd als placeholder instellen - EditBreedte.TextHint := IntToStr(ProductVerpakking.DefaultBreedte); // Default + EditBreedte.TextHint := ProductVerpakking.DefaultBreedte; // Default if ProductVerpakking.Breedte <> ProductVerpakking.DefaultBreedte then - EditBreedte.Text := IntToStr(ProductVerpakking.Breedte); + EditBreedte.Text := ProductVerpakking.Breedte; - EditDiepte.TextHint := IntToStr(ProductVerpakking.DefaultDiepte); // Default + EditDiepte.TextHint := ProductVerpakking.DefaultDiepte; // Default if ProductVerpakking.Diepte <> ProductVerpakking.DefaultDiepte then - EditDiepte.Text := IntToStr(ProductVerpakking.Diepte); + EditDiepte.Text := ProductVerpakking.Diepte; - EditHoogte.TextHint := IntToStr(ProductVerpakking.DefaultHoogte); // Default + EditHoogte.TextHint := ProductVerpakking.DefaultHoogte; // Default if ProductVerpakking.Hoogte <> ProductVerpakking.DefaultHoogte then - EditHoogte.Text := IntToStr(ProductVerpakking.Hoogte); + EditHoogte.Text := ProductVerpakking.Hoogte; - // Max.Comb.Aantal, Aantal + // Max.Comb.Aantal EditMaxCombAantal.Text := ProductVerpakking.MaxCombinAantal; + + // Aantal EditAantal.Text := ProductVerpakking.Aantal; - // Parameters - TUtil.FreeControlChildren(ScrollBoxParameters); - for Parameter in ProductVerpakking.Parameters do - begin - NieuweParameterControl := TCustomPanelVerpakkingParameter.Create(ScrollBoxParameters); - with NieuweParameterControl do - begin - Parent := ScrollBoxParameters; - ProductVerpakkingParameter := Parameter; - end; - end; - - // Rechterhelft - // Plaatsing LaadEnSelecteerWaardenComboBox(ApplicationContext.UiInstellingenContext.Plaatsing, ComboBoxPlaatsing, ProductVerpakking.Plaatsing, ProductVerpakking.DefaultPlaatsing, ApplicationContext.UiInstellingenContext.Plaatsing); @@ -242,23 +243,35 @@ // OptiType LaadEnSelecteerWaardenComboBox(ApplicationContext.UiInstellingenContext.OptiTypes, ComboBoxOptiType, ProductVerpakking.OptiType, ProductVerpakking.DefaultOptiType, ApplicationContext.UiInstellingenContext.OptiTypes); + + + // Rechterhelft + + // Parameters + TUtil.FreeControlChildren(ScrollBoxParameters); + for Parameter in ProductVerpakking.Parameters do + begin + NieuweParameterControl := TCustomPanelVerpakkingParameter.Create(ScrollBoxParameters); + with NieuweParameterControl do + begin + Parent := ScrollBoxParameters; + ProductVerpakkingParameter := Parameter; + end; + end; end; procedure TFormVerpakkingDetail.UpdateControlsEnableStatus(); -var - VerpakkingAanwezigEnGeselecteerd: Boolean; - I: Integer; begin - // Details controls enable status aanpassen naargelang er een verpakking geselecteerd is. - VerpakkingAanwezigEnGeselecteerd := ApplicationContext.ProductVerpakkingContext.GeselecteerdeVerpakking <> nil; - for I := 0 to PanelVerpakkingControls.ControlCount - 1 do - if Assigned(PanelVerpakkingControls.Controls[I]) then - PanelVerpakkingControls.Controls[I].Enabled := VerpakkingAanwezigEnGeselecteerd; - - // Linkerdeel, wat hierboven ook uitkomt, deze controls overschrijven. - EditMeta.Enabled := False; - EditVolumeVan.Enabled := False; - ComboBoxDeelVan.Enabled := (ComboBoxDeelVan.Items.Count > 0) and VerpakkingAanwezigEnGeselecteerd; + EditMeta.Enabled := false; + EditVolumeVan.Enabled := false; + ComboBoxDeelVan.Enabled := (ComboBoxDeelVan.Items.Count > 0); + ComboBoxPlaatsing.Enabled := (ComboBoxPlaatsing.Items.Count > 0); + ComboBoxPositie.Enabled := (ComboBoxPositie.Items.Count > 0); + ComboBoxRichting.Enabled := (ComboBoxRichting.Items.Count > 0); + ComboBoxOptiType.Enabled := (ComboBoxOptiType.Items.Count > 0); + // Parameters + ScrollBoxParameters.visible := (ScrollBoxParameters.ControlCount > 0); + LabelParameters.visible := (ScrollBoxParameters.ControlCount > 0); end; end.