gpt4 book ai didi

arrays - 通过数组将图像加载到 TImage 中

转载 作者:行者123 更新时间:2023-12-03 03:28:53 28 4
gpt4 key购买 nike

我对 delphi 很陌生,正在为我的 A level 做一个项目。当我运行我的代码时,图像不显示,我到处都看了,但我的老师无法帮助我。谁能告诉我我错过了什么?

    const
Animal : array[0..6] of string = ('Bears','Dogs','Cats','Chickens','Horses','Cows','Monkeys');
ImagePaths : array [0..6] of string
= ('img0.JPG', 'img1.JPG', 'img2.JPG', 'img3.JPG', 'img4.JPG', 'img5.JPG',
'img6.JPG');

var i:integer;
Images : array [0..11] of TImage;

procedure LoadImages;
var
k,l:integer;
begin
Randomize;
k:=Random(11);
for l:= 0 to k do
begin
Images[l] := TImage.Create(nil);
Images[l].Picture.LoadFromFile(ImagePaths[i])
end

结束;

procedure TForm4.FormCreate(Sender: TObject);
begin
randomize;
i:=random(6);
QuestionLbl.Caption:=Format('How many %s are there?',[Animal[i]]);
LoadImages;
end;

这个想法是,为 child 显示随机数量的相同随机选择的动物的图像,然后计算和输入(如果有帮助的话)。非常感谢任何帮助。

编辑。

因为这只是一个原型(prototype),所以我已将其全部复制到新应用程序中,这是我未包含的所有代码:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,jpeg, ExtCtrls;

type
TForm1 = class(TForm)
QuestionLbl: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

同样的错误正在发生,我担心我太无知,无法遵循我确信非常明确的指示。

最佳答案

似乎缺少的是您需要告诉图像哪个控件是其父控件,以便它可以出现在屏幕上。这样做:

Images[l].Parent := TheForm;

显然,您的表单变量将具有不同的名称,但我确信您知道它的名称。

当你这样做时,你会发现它们最终都在彼此之上。然后分配给 TopLeft 属性来定位。最后,您可能需要设置图像的 HeightWidth 属性以匹配图像的尺寸,Images[l].Picture.Height图像[l].Picture.Width

<小时/>

我无法想象为什么您的代码会产生访问冲突,但它可能与您提出的问题无关。下面的代码证明我上面说的是正确的:

procedure TMyForm.FormCreate(Sender: TObject);
var
Image: TImage;
begin
Image := TImage.Create(Self);
Image.Parent := Self;
Image.Picture.LoadFromFile('C:\desktop\image.jpg');
Image.Top := 0;
Image.Left := 0;
Image.Height := Image.Picture.Height;
Image.Width := Image.Picture.Width;
end;

没有您的完整代码,我无法调试您的 AV。

关于arrays - 通过数组将图像加载到 TImage 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7612740/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com