Einzelnen Beitrag anzeigen

Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

AdImageList.name und AdImageList.texture

  Alt 31. Dez 2010, 12:35
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 !
  Mit Zitat antworten Zitat