Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Theming / CommonControls - Geht es auch teilweise?

  Alt 25. Feb 2016, 20:14
Kannst du nicht sowas machen?

Delphi-Quellcode:
TBaseForm = class(TForm)
protected
  FRepaintDisabled: Boolean;
  procedure DoPaint; override;
public
  procedure DisableRepaints;
  procedure EnableRepaints;
end;

procedure TBaseForm.DisableRepaints;
begin
  FRepaintDisabled := True;
end;

procedure TBaseForm.EnableRepaints;
begin
  FRepaintDisabled := True;
end;

procedure TBaseForm.DoPaint;
begin
  if not FRepaintDisabled then
    inherited DoPaint;
end;

---------------------------------------------

procedure TMyForm.FormPaint(Sender: TObject);
begin
  // bla bla bla ...

  DisableRepaints;
  Button1.Left := Button1.Left + 1;
  EnableRepaints;

  // bla bla bla ...
end;
Soll jetzt eher Pseudocode sein, habe lange nichts mit Delphi gemacht. Wenn es sehr viele Stellen sind und man nicht alle einzeln ändern will, könnte man auch
Delphi-Quellcode:
procedure TBaseForm.DoPaint;
begin
  if not FRepaintDisabled then
  begin
    DisableRepaints;
    inherited DoPaint;
    EnableRepaints;
  end;
end;
versuchen. Könnte natürlich ungewollte Seiteneffekt haben.
  Mit Zitat antworten Zitat