Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Control Resize Bugfix für das WH_CALLWNDPROC Problem

  Alt 25. Mai 2008, 11:51
Da gibt es doch glatt Komponenten, die auf den Windows Bug aufbauen bzw. nur durch diesen funktionieren, da sie einen Endlos-Resize auslösen.
Dadurch das die Rekursions-Beschränkung durch meinen Patch weg fällt, ist dieses Endlos-Resize natürlich eine Endlosschleife. Deswegen habe ich nun eine Enlos-Resize-Erkennung in die Unit eingebaut um die dadurch entstehende Endlosschleife abzubrechen.

Hier mal ein Beispiel für so eine Komponente:
Delphi-Quellcode:
type
  TBadPanel = class(TPanel)
  protected
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
  end;

procedure TBadPanel.WMSize(var Message: TWMSize);
begin
  if Message.Width < 10 then
     Width := 11
  else if Message.Width > 10 then
     Width := 9;
  inherited;
end;

Da die Unit auf meinem aktuellsten Code basiert enthält sie auch die noch in der Experimentierphase befindliche "Optimized Resize Redraw" Funktionalität, die standardmäßig abgeschaltet ist. Dadurch könnten Formulare fliesender und flüssiger (schneller) vergrößert/verkleinert werden.
  Mit Zitat antworten Zitat