การตั้งค่า Inno - วิธีจัดตำแหน่ง gif แบบเคลื่อนไหวในตัวช่วยปรับขนาด

Aug 20 2020

ฉันต้องการจัดตำแหน่ง gif แบบเคลื่อนไหวให้อยู่ตรงกลางของทุกหน้าในโปรแกรมติดตั้ง ( WizardSizePercent=150) โดยไม่ต้องใช้ค่า

นี่คือรหัสของฉัน:

var
  ParentForm: TSetupForm;

begin
  TimerID := 0;
  SlideID := 0;
  ContentHeight := ParentForm.Top + ParentForm.Height;
  ExtractTemporaryFile('Image1.bmp');
  ExtractTemporaryFile('Image2.bmp');
  ExtractTemporaryFile('Image3.bmp');
  ExtractTemporaryFile('Image4.bmp');
  ExtractTemporaryFile('Image5.bmp');
  ExtractTemporaryFile('Image6.bmp');


  Panel := TPanel.Create(ParentForm);
  Panel.Parent := ParentForm;
  Panel.Left := 185;
  Panel.Top := ParentForm.Top + 130;
  Panel.Width := 1000;
  Panel.Height := 380;
  Panel.Visible := True;

  BackImage := TBitmapImage.Create(ParentForm);
  BackImage.Parent := Panel;
  BackImage.Width:= 1000;
  BackImage.Height:= 380;
  BackImage.Left := (Panel.Height - BackImage.Height) div 2;
  BackImage.Top := (Panel.Height - BackImage.Height) div 2;
  BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image1.bmp'));
  StartSlideTimer;
end;

ฉันจะมีวิธีการเปลี่ยนค่าของContentHeight, PanelและBackImage?

คำตอบ

2 MartinPrikryl Aug 20 2020 at 17:39

สร้างภาพหลังจากที่WizardSizePercentใช้เท่านั้น ดังนั้นเช่นในไม่ได้อยู่ในCurPageChangedInitializeWizard

หรือดีกว่าเพื่อให้มีโซลูชันที่มีประสิทธิภาพมากขึ้นซึ่งใช้งานได้เช่นแม้จะWizardResizableตอบสนองWizardForm.OnResizeด้วยการอัปเดตพิกัดภาพ (หรือมากกว่าPanelพิกัด - แม้ว่าฉันจะไม่เข้าใจจุดประสงค์ก็ตาม) ยกตัวอย่างให้ดูการตั้งค่าความกว้างควบคุมถึงครึ่งหนึ่งของเพจที่กำหนดเอง SurfaceWidth ไม่ทำงานอย่างถูกต้องในการติดตั้ง


โปรดทราบว่าคุณไม่สามารถใช้พิกัดคงที่ ภาพของคุณจะไม่อยู่ตรงกลางอย่างถูกต้องเมื่อแสดง DPI สูง ทั้งขนาดพิกัด - สำหรับการตรวจสอบว่าตัวอย่างเช่นInno ภาพการติดตั้งวาง / ควบคุมในเพจที่กำหนดเอง หรือในกรณีของคุณมันจะดีกว่าถ้าคุณคำนวณพิกัดที่อยู่ตรงกลางทางโปรแกรมตามขนาดภาพและหน้าต่าง - สำหรับสิ่งนั้นให้ตรวจสอบในการตั้งค่า Inno ฉันจะจัดกึ่งกลางข้อความในหน้าต่างได้อย่างไร