[Delphi] Modyfikacja TBitmap (Graphics.pas)

0

Witam.

Chciałbym dokonać modyfikacji metody CopyImage(AHandle: HBITMAP; APalette: HPALETTE; DIB: TDIBSection) klasy TBitmap (z unitu Graphics.pas).

procedure TBitmap.CopyImage(AHandle: HBITMAP; APalette: HPALETTE; DIB: TDIBSection);
var
  NewHandle, NewPalette: THandle;
begin
  FreeContext;
  NewHandle := 0;
  NewPalette := 0;
  try
    if APalette = SystemPalette16 then
      NewPalette := APalette
    else
      NewPalette := CopyPalette(APalette);
    NewHandle := CopyBitmap(AHandle, APalette, NewPalette, DIB, FCanvas);
    NewImage(NewHandle, NewPalette, DIB, FImage.FOS2Format);
  except
    InternalDeletePalette(NewPalette);
    if NewHandle <> 0 then DeleteObject(NewHandle);
    raise;
  end;
end;

Czy muszę tą modyfikację zrobić w oryginalnym pliku Delphi 2007 czy też mogę to zrobić w inny sposób? Metoda jest prywatna (i nie jest wirtualna ani dynamiczna) i nie mogę jej przedefiniować (override).

0

że tak zapytam - po co?

0

http://tnij.org/j56z - chce zrobić taką modyfikację.

0

ale CopyImage z tej strony jest dokładnie takie samo jak w Twoim poście

0

Nie do końca.

chodzi o linie:

 except    //попробуйте заменить на finally

i

 raise;  //а эту строку закомментируйте

Proszę zwrócić uwagę na komentarze. Nalezy slowo except zamienić na finally i zakomentować raise

0

Witam ponownie.

Czy jednak ktoś zdecydował by się odpowiedzieć na moje pytanie?

0

Odpowiedzieć jak? To zależy co chcesz osiągnąć. Stworzyć własne TBitmap ze zmienioną metodą — wtedy musiałbyś skopiować kod i zmienić. Zmodyfikować oryginalne TBitmap aby zawsze i wszędzie twoja zmiana miała miejsce — edytuj graphics.pas i przekompiluj VCL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1