Delphi: создание и отображение TImage в FormCreate
Будучи совсем новичком, я только что получил ответ на свой первый вопрос ( Delphi: TImage.Create вызывает нарушение прав доступа), чтобы немедленно столкнуться с новой проблемой:
procedure TSelectorForm.FormCreate(Sender: TObject);
var
Loop: Byte;
begin
for Loop := 1 to 10 do
begin
ArrayOfImages[Loop] := TImage.Create(SelectorForm);
MainForm.MyImageList.GetBitmap(Loop - 1, ArrayOfImages[Loop].Picture.Bitmap);
ArrayOfImages[Loop].Top := ...
ArrayOfImages[Loop].Left := ...
ArrayOfImages[Loop].Enabled := True;
ArrayOfImages[Loop].Visible := True;
end;
end;
Когда я отображаю эту форму
procedure TMainForm.MyImageClick(Sender: TObject);
begin
SelectorForm.Visible := True;
end;
изображения не видны. Что я делаю неправильно?
Я хочу поблагодарить всех за их советы. Надеемся, что элементарные вопросы помогут другим избежать их в будущем:-)
2 ответа
Установите для свойства "Родитель" всех компонентов изображения форму, в которой они содержатся.
procedure TSelectorForm.FormCreate(Sender: TObject);
var
Loop: Byte;
begin
for Loop := 1 to 10 do
begin
ArrayOfImages[Loop] := TImage.Create(SelectorForm);
MainForm.MyImageList.GetBitmap(Loop - 1, ArrayOfImages[Loop].Picture.Bitmap);
ArrayOfImages[Loop].Top := ...
ArrayOfImages[Loop].Left := ...
ArrayOfImages[Loop].Visible := True;
ArrayOfImages[Loop].Parent := SelectorForm;
end;
end;
Ну, я полагаю, что вы должны добавить сингл TImage
компоненты к контрольному списку текущей формы?
Это означает: только потому, что вы создаете TImage
в коде не означает, что он на самом деле добавляется в элементы управления формы. Вам придется делать это в коде - однако я не прикасался к Delphi уже пару лет, поэтому сейчас не могу предоставить какой-либо код.