Hallo,
gibt es eine Möglichkeit, den Speicherbedarf von Powerpoint-Objekten (Slide, Shape) festzustellen?
Bei meinem ersten Versuch habe ich mit D6Pro das gewünschte Shape oder Slide in eine Dummy-Präsentation übertragen und die Änderung der Dateigröße bestimmt:
<PRE>
function GetSlideMemSize(ASlide:OLEVariant) : integer;
var
i : integer;
n : integer;
begin
i := ASlide.SlideIndex;
TestPresentation.Save;
n := GetFileSize(TestPresentationFile);
TestPresentation.Slides.InsertFromFile(ActPresenta tion.FullName, 0, i, i);
TestPresentation.Save;
result := GetFileSize(TestPresentationFile) - n;
TestPresentation.Slides.Item(1).Delete;
end;
function GetShapeMemSize(AShape:OLEVariant) : integer;
var
n : integer;
slide : OLEVariant;
begin
if TestPresentation.Slides.Count>0
then slide := TestPresentation.Slides.Item(1)
else slide := TestPresentation.Slides.Add(1, ppLayoutBlank);
TestPresentation.Save;
n := GetFileSize(TestPresentationFile);
slide.Shapes.AddShape(AShape.Type, AShape.Left, AShape.Top, AShape.Width, AShape.Height);
TestPresentation.Save;
result := GetFileSize(TestPresentationFile) - n;
Slide.Delete;
end;
</PRE>
("GetFileSize" ermittelt darin über einen Aufruf von "FindFirst" die aktuelle Dateigröße.)
Allerdings fällt mir dabei auf, dass einige Folien einen Speicherbedarf < 0 aufzeigen, und dass der Speicherbedarf einer Folie viel größer ist als die Summe des Speicherbedarfs der einzelnen Shapes. Beides deutet darauf hin, dass mit dem obigen Vorgehen etwas nicht stimmt.
Weiß jemand Rat?
Danke - Werner
gibt es eine Möglichkeit, den Speicherbedarf von Powerpoint-Objekten (Slide, Shape) festzustellen?
Bei meinem ersten Versuch habe ich mit D6Pro das gewünschte Shape oder Slide in eine Dummy-Präsentation übertragen und die Änderung der Dateigröße bestimmt:
<PRE>
function GetSlideMemSize(ASlide:OLEVariant) : integer;
var
i : integer;
n : integer;
begin
i := ASlide.SlideIndex;
TestPresentation.Save;
n := GetFileSize(TestPresentationFile);
TestPresentation.Slides.InsertFromFile(ActPresenta tion.FullName, 0, i, i);
TestPresentation.Save;
result := GetFileSize(TestPresentationFile) - n;
TestPresentation.Slides.Item(1).Delete;
end;
function GetShapeMemSize(AShape:OLEVariant) : integer;
var
n : integer;
slide : OLEVariant;
begin
if TestPresentation.Slides.Count>0
then slide := TestPresentation.Slides.Item(1)
else slide := TestPresentation.Slides.Add(1, ppLayoutBlank);
TestPresentation.Save;
n := GetFileSize(TestPresentationFile);
slide.Shapes.AddShape(AShape.Type, AShape.Left, AShape.Top, AShape.Width, AShape.Height);
TestPresentation.Save;
result := GetFileSize(TestPresentationFile) - n;
Slide.Delete;
end;
</PRE>
("GetFileSize" ermittelt darin über einen Aufruf von "FindFirst" die aktuelle Dateigröße.)
Allerdings fällt mir dabei auf, dass einige Folien einen Speicherbedarf < 0 aufzeigen, und dass der Speicherbedarf einer Folie viel größer ist als die Summe des Speicherbedarfs der einzelnen Shapes. Beides deutet darauf hin, dass mit dem obigen Vorgehen etwas nicht stimmt.
Weiß jemand Rat?
Danke - Werner
Comment