Hallo nochmal.
Ich habe bei meinen Versuchen mit Andorra die ersten Tutorials durchgearbeitet und versuche jetzt verzweifelt den ImgEdit zu compilieren.
Nach einigem hin und her habe ich die Fehler eingrenzen können, doch in der setdlg.pas kommt es zu einem Fehler.
Nachdem ich "TAdImageList" eingefügt hatte (hab den alten Namen vergessen
) komme ich jetzt bis zur InsprectImage Funktion.
Da bleibe ich aber hängen, da die AdImageList angeblich keine Eigenschaften wie Name und Texture hat!?
[Error] SetDlg.pas(168): Undeclared identifier: 'Name'
[Error] SetDlg.pas(169): Undeclared identifier: 'Texture'
Patternwidth und Patternheight erkennt der auch nicht, genauso wie Skipwidth und Skipheight. Weiter komm ich leider nicht...
Hier die komplette Funktion:
Delphi-Quellcode:
function TSettings.InsprectImage(AImage: TAdImageList):TModalResult;
var bmp:TBitmap;
adbmp:TAdBitmap;
bits:byte;
begin
Setting := true;
Edit1.Text := AImage.Name;
case AImage.Texture.BitDepth of
16:Radiogroup1.ItemIndex := 0;
32:Radiogroup1.ItemIndex := 1;
end;
ListBox1.ItemIndex := ListBox1.Items.IndexOf(AImage.Texture.Compressor.ClassName);
Edit2.Text := inttostr(AImage.PatternWidth);
Edit3.Text := inttostr(AImage.PatternHeight);
Edit4.Text := inttostr(AImage.SkipWidth);
Edit5.Text := inttostr(AImage.SkipHeight);
if AImage.Texture.Initialized then
begin
bmp := TBitmap.Create;
adbmp := TAdBitmap.Create;
adbmp.ReserveMemory(AImage.Texture.Texture.BaseWidth,AImage.Texture.Texture.BaseHeight);
AImage.Texture.Texture.SaveToBitmap(adbmp);
adbmp.AssignToBitmap(bmp);
Image1.Picture.Assign(bmp);
adbmp.AssignAlphaChannelToBitmap(bmp);
Image2.Picture.Assign(bmp);
bmp.Free;
adbmp.Free;
end;
Setting := false;
ChangedImages := false;
result := ShowModal;
if result = mrOk then
begin
AImage.Name := Edit1.Text;
case RadioGroup1.ItemIndex of
0:bits := 16;
1:bits := 32;
else
bits := 32;
end;
if AImage.Texture.BitDepth <> bits then
begin
if (AImage.Texture.BitDepth < bits) or (Application.MessageBox('You''re changing the bit depth of this'+
' texture. This means, that you may loose picture quality. Do you really'+
' want to apply these settings?','Alert',mb_YesNo) = idYes) then
begin
AImage.Texture.BitDepth := bits;
end
else
begin
bits := AImage.Texture.BitDepth;
end;
end
else
begin
bits := AImage.Texture.BitDepth;
end;
AImage.Texture.Compressor := TCompressorClass(GetClass(ListBox1.Items[ListBox1.ItemIndex]));
AImage.PatternWidth := strtointdef(Edit2.Text,0);
AImage.PatternHeight := strtointdef(Edit3.Text,0);
AImage.SkipWidth := strtointdef(Edit4.Text,0);
AImage.SkipWidth := strtointdef(Edit5.Text,0);
if ChangedImages then
begin
adbmp := TAdBitmap.Create;
adbmp.AssignBitmap(Image1.Picture.Bitmap);
adbmp.AssignAlphaChannel(Image2.Picture.Bitmap);
AImage.Texture.Texture.LoadFromBitmap(AdBmp,bits);
adbmp.Free;
end;
AImage.Restore;
end;
end;
Viele Grüße und schon mal einen guten Rutsch
!