Zitat von
Nick Phoenix:
Danke klappt super
Jetzt gibt es allerdings ein neues Problem
, wenn ich die Größe des Formulars mit changescale änder, änder sich zwar die größe des Flash bereiches, der eigentliche Film bleibt aber in der selben größe und lässt sich durch einen Klick nur ein einziges MAl auf die gesamtgröße anpassen. Wie schaffe ich es, das der Film immer den gesamten Flaschbereich kompleet ausfüllt
Hi,
du musst in der ShockwaveFlashObjects_TLB.pas, die Resize Methode überschreiben.
z.B.
Code:
TShockwaveFlash = class(TOleControl)
private
FOnReadyStateChange: TShockwaveFlashOnReadyStateChange;
FOnProgress: TShockwaveFlashOnProgress;
FOnFSCommand: TShockwaveFlashFSCommand;
FIntf: IShockwaveFlash;
function GetControlInterface: IShockwaveFlash;
protected
procedure CreateControl;
procedure InitControlData; override;
procedure Resize; override; //<---
und dann weiter unten ...
Code:
function TShockwaveFlash.TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double;
begin
Result := DefaultInterface.TGetPropertyAsNumber(target, property_);
end;
procedure TShockwaveFlash.Resize;<----
var
SavedParent: TWinControl;
begin
{Sync flash bounds after move}
SavedParent := Parent;
Try
Parent := nil;
inherited;
finally
Parent := SavedParent;
end;
end;
class function CoFlashProp.Create: IUnknown;
begin
Result := CreateComObject(CLASS_FlashProp) as IUnknown;
end;
Gruß