Hey Alexander! It's good to see that y'all have individual logins now
I'm calling Set_EntrantFieldProperties during my .Initialize procedure for the frame. (All of my frames have an .Initialize and .UnInitialize that I use after .Create and before .Destroy)
This is where I create / call the frame from my main form:
When the frame is a sweepstakes frame, I hide all of the various regions except for the background region and use the background region as the parent for the frame.
- Code: Select all
if Self.ActiveFrame = Include.C_FRAME_SWEEPSTAKES_CAMPAIGN then
begin
if not Assigned(Self.FframeSweepstakes) then
begin
Self.FframeSweepstakes := TframeSweepstakes.Create(Self);
Self.FframeSweepstakes.Name := FindUniqueName;
SetFrameParent(Self.FframeSweepstakes, Self.regionBackground);
Self.FframeSweepstakes.Height := Self.regionBackground.Height;
Self.FframeSweepstakes.Width := Self.regionBackground.Width;
Self.FframeSweepstakes.Align := TAlign.alClient;
end;
Self.regionHeader.Visible := False;
Self.regionFooter.Visible := False;
Self.regionLeft.Visible := False;
Self.regionRight.Visible := False;
Self.regionMain.Visible := False;
Self.regionHeader.RenderInvisibleControls := False;
Self.regionFooter.RenderInvisibleControls := False;
Self.regionLeft.RenderInvisibleControls := False;
Self.regionRight.RenderInvisibleControls := False;
Self.regionMain.RenderInvisibleControls := False;
(Self.FframeSweepstakes as TframeSweepstakes).Visible := True;
(Self.FframeSweepstakes as TframeSweepstakes).LockIndicator := Self.IWCGJQLockIndicator1;
(Self.FframeSweepstakes as TframeSweepstakes).Initialize;
end;
And here is my .Initialize code from the frame:
- Code: Select all
procedure TframeSweepstakes.Initialize;
var
slStates: TStringList;
imagePanel: TIWCGJQImage;
Panel: TIWCGJQCarouselPanel;
strImageFilePath: String;
i, c, iWidth, iHeight: Integer;
begin
SetLength(Self.FSweepstakesPanels, Ord(High(TSweepstakesPanel)));
// Initialize the frame
Self.FSweepstakesCampaign := UserSession.CreateSweepstakesCampaign(UserSession.CurrentDomain);
// set the Theme based on the sweepstakes campaign
Self.ParentForm.StyleSheet.Filename := WebApplication.ApplicationPath + 'wwwroot\ui-themes\' + Self.FSweepstakesCampaign.WebTheme + '\jquery-ui.css';
// make sure each control know who he is
Self.editFirstName.Tag := Ord(TEntrantField.efFirstName);
Self.editLastName.Tag := Ord(TEntrantField.efLastName);
Self.editAddress1.Tag := Ord(TEntrantField.efAddress1);
Self.editAddress2.Tag := Ord(TEntrantField.efAddress2);
Self.editCity.Tag := Ord(TEntrantField.efCity);
Self.editStateProvince.Tag := Ord(TEntrantField.efStateProvince);
Self.editPostalCode.Tag := Ord(TEntrantField.efPostalCode);
Self.editPhone.Tag := Ord(TEntrantField.efPhone);
Self.editDOB.Tag := Ord(TEntrantField.efDOB);
Self.editEmailAddress.Tag := Ord(TEntrantField.efEmail);
Self.editEmailAddress2.Tag := Ord(TEntrantField.efEmail2);
Self.editPrivacyPolicy.Tag := Ord(TEntrantField.efPrivacyPolicy);
// add the edit controls to the SweepstakesCampaign object
Self.FSweepstakesCampaign.EditControls.Add(Self.editFirstName);
Self.FSweepstakesCampaign.EditControls.Add(Self.editLastName);
Self.FSweepstakesCampaign.EditControls.Add(Self.editAddress1);
Self.FSweepstakesCampaign.EditControls.Add(Self.editAddress2);
Self.FSweepstakesCampaign.EditControls.Add(Self.editCity);
Self.FSweepstakesCampaign.EditControls.Add(Self.editStateProvince);
Self.FSweepstakesCampaign.EditControls.Add(Self.editPostalCode);
Self.FSweepstakesCampaign.EditControls.Add(Self.editPhone);
Self.FSweepstakesCampaign.EditControls.Add(Self.editDOB);
Self.FSweepstakesCampaign.EditControls.Add(Self.editEmailAddress);
Self.FSweepstakesCampaign.EditControls.Add(Self.editEmailAddress2);
Self.FSweepstakesCampaign.EditControls.Add(Self.editPrivacyPolicy);
for i := 0 to Ord(High(TSweepstakesPanel)) - 1 do
begin
strImageFilePath := '';
case TSweepstakesPanel(i) of
spPreview: strImageFilePath := Self.FSweepstakesCampaign.PreviewImage;
spAgeGate: strImageFilePath := Self.FSweepstakesCampaign.AgeGateImage;
spEntry: strImageFilePath := Self.FSweepstakesCampaign.EntryImage;
spThanks: strImageFilePath := Self.FSweepstakesCampaign.ThanksImage;
spEnded: strImageFilePath := Self.FSweepstakesCampaign.EndedImage;
spError: strImageFilePath := Self.FSweepstakesCampaign.ErrorImage;
end;
if not S2Snax.IsEmptyString(strImageFilePath) then
begin
Panel:= Self.carouselPages.AddNewPanel;
Self.FSweepstakesPanels[i] := Self.carouselPages.PanelCount - 1;
Panel.Color:= Self.FSweepstakesCampaign.BGColor;
Panel.HorzScrollBar.Visible := False;
Panel.VertScrollBar.Visible := False;
Panel.Tag := i; // TSweepstakesPanel
imagePanel := TIWCGJQImage.Create(Panel);
imagePanel.Parent := Panel;
imagePanel.Align := TAlign.alClient;
imagePanel.Picture.Picture.LoadFromFile(strImageFilePath);
iWidth := imagePanel.Picture.Width;
iHeight := imagePanel.Picture.Height;
if (TSweepstakesPanel(i) = TSweepstakesPanel.spEntry) then
begin
////////////////////////////////////////////
/// HERE IS WHERE I CALL THE Set_EntrantFieldsProperties procedure
////////////////////////////////////////////
Self.FSweepstakesCampaign.Set_EntrantFieldsProperties(imagePanel);
Self.FSweepstakesCampaign.Set_SubmitButtonProperties(Self.buttonSubmit, imagePanel);
Self.FSweepstakesCampaign.HideEntrantFields;
TIWCGJQContainer(Self.FSweepstakesCampaign.EditControls[0]).SetFocus;
end;
end;
end;
carouselPages.Width := iWidth;
carouselPages.Height := iHeight;
Self.regionBackground.Color := Self.FSweepstakesCampaign.BGColor;
// Load up the State list
Self.editStateProvince.Items.Clear;
slStates := UserSession.GetSweepstakesStateList(Self.FSweepstakesCampaign);
for i := 0 to slStates.Count - 1 do
Self.editStateProvince.Items.AddOption(slStates[i], slStates[i], False);
Self.FSweepstakesCampaign.ShowEntrantFields;
Self.buttonSubmit.Visible := True;
end;
I can send you the frame and it's supporting .pas files if you would like to see all of the code.
Thanks!
Scott