Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Zeilenumbruch verbessern (https://www.delphipraxis.net/200942-zeilenumbruch-verbessern.html)

DasWolf 13. Jun 2019 08:15

AW: Zeilenumbruch verbessern
 
Zitat:

Zitat von TraumTaenzerDieter (Beitrag 1434495)
Nur wenn ich die Fensterhöhe per Titlebar verändere
dann tun mir "die Augen weh".

Das ist bei mir auch so.

Alles andere läuft bei mir auf Windows 8.1 64 Bit flickerfrei.
Das Einzige was aufgefallen ist, ist, dass bei Abwahl der Checkboxen "Crystal" oder "Blur mode" zuerst ganz kurz ein Zwischenbackground kommt und dann erst der Standard.

EWeiss 13. Jun 2019 13:33

AW: Zeilenumbruch verbessern
 
Zitat:

Läuft bei mir leider nicht. Die Datei Graphics.dcu wird nicht gefunden.
Das hat dann aber mit deinem System zu tun Graphics ist eine Standard Unit in Delphi.
Zitat:

Auf Win7x64 läuft es und auch flickerfrei.
Danke euch.. Habe vergessen bei zu schreiben das ich ältere System nicht mehr unterstütze. mindestens Win10
Windows 10 verwendete eine andere Methode für Blur wundert mich das es unter win7 damit noch geht.

Zitat:

Nur wenn ich die Fensterhöhe per Titlebar verändere dann tun mir "die Augen weh".
Muss ich mal prüfen Danke.

Zitat:

Das Einzige was aufgefallen ist, ist, dass bei Abwahl der Checkboxen "Crystal" oder "Blur mode" zuerst ganz kurz ein Zwischenbackground kommt und dann erst der Standard.
Wenn dann nur beim Blur Effekt.
Diese Implementierung ist unter Windows 10 sehr schlecht. Es arbeitet nicht mit WM_PRINT zusammen und die Regionen von Fenstern werden grundsätzlich ignoriert.

Nebenbei der Fix für den Resize.. auch wenn es darum eigentlich nicht ging.

Delphi-Quellcode:
{$REGION 'Procedure ResizeWindow'}

procedure ResizeWindow(WinHandle: HWND; ChangeBackground: integer);
begin

  if SKAERO_IsEngineAssigned then
  begin
    // Nicht minimiert
    if ChangeBackground = 0 then
      if not IsIconic(WinHandle) then
        ShowWindow(WinHandle, SW_HIDE);

    if SKAERO_Composited(WinHandle) then
      lRes := SKAERO_BeginDeferWindowPos(WinHandle, 0);

    // Hintergrund neuzeichnen
    SKAERO_DrawBackground(WinHandle);
   
    // Controls Repositionieren
    SKAERO_AnchorEnum(WinHandle);

    if SKAERO_Composited(WinHandle) then
      SKAERO_EndDeferWindowPos(WinHandle, lRes);

    if ChangeBackground <> 0 then
      SKAERO_UpdateWindow(WinHandle, False);

    if ChangeBackground = 0 then
      ShowWindow(WinHandle, SW_SHOW);
  end;
end;
{$ENDREGION}
gruss

EWeiss 13. Jun 2019 17:30

AW: Zeilenumbruch verbessern
 
Zitat:

Nur wenn ich die Fensterhöhe per Titlebar verändere dann tun mir "die Augen weh".
Nochmal.. wegen dem Fenster wenn du es mit der linken Seite in der Größe veränderst.
Mache das mal mit dem Explorer.. was denkst du was dort abgeht?
Richtig genau das selbe nur halt nicht ganz so sichtbar wie bei mir.

Von oben verändert..
Schau mal wie die Statusbar da rum hüpft.

Von der linken Seite verändert..
Da hüpft fast alles rum.

Wie soll man das als Developer korrekt ausrichten wenn es selbst der Explorer nicht mal kann.

gruss

holger_barntrup 14. Jun 2019 09:49

AW: Zeilenumbruch verbessern
 
[QUOTE=EWeiss;1434556Das hat dann aber mit deinem System zu tun Graphics ist eine Standard Unit in Delphi.[/QUOTE]

Es musste bei mir vcl.graphics heißen, jetzt läuft es.
Win7 64Bit

Hüpft halt wie schon geschrieben. Blur und Crystal funktionieren ohne Probleme.

EWeiss 14. Jun 2019 14:57

AW: Zeilenumbruch verbessern
 
Zitat:

Zitat von holger_barntrup (Beitrag 1434633)
Zitat:

Zitat von EWeiss (Beitrag 1434556)
Das hat dann aber mit deinem System zu tun Graphics ist eine Standard Unit in Delphi.

Es musste bei mir vcl.graphics heißen, jetzt läuft es.
Win7 64Bit

Hüpft halt wie schon geschrieben. Blur und Crystal funktionieren ohne Probleme.

OK. Danke! Habe das hüpfen schon behoben..
Entferne in uMain\WinMain bei wc.style "CS_HREDRAW or CS_VREDRAW" dann hüpfen zumindest die Controls nicht mehr.
Die rechte Seite zieht jedoch immer noch nach.

Nun gut bedient man das Teil normal über die Rechte Seite beim resize dann hat man die Probleme nicht.

Delphi-Quellcode:
{$REGION 'Procedure ResizeWindow'}

procedure ResizeWindow(WinHandle: HWND; ChangeBackground: integer);
begin

  if SKAERO_IsEngineAssigned then
  begin
    if SKAERO_Composited(WinHandle) then
      lRes := SKAERO_BeginDeferWindowPos(WinHandle, 0);

    // Hintergrund neuzeichnen
    SKAERO_DrawBackground(WinHandle);

    // Controls Repositionieren
    SKAERO_AnchorEnum(WinHandle);

    if SKAERO_Composited(WinHandle) then
      SKAERO_EndDeferWindowPos(WinHandle, lRes);

    SKAERO_UpdateWindow(WinHandle, False);
    SKAERO_UpdateWindow(TabInfo.Handle, False);
  end;
end;
{$ENDREGION}
Delphi-Quellcode:
function WinMain(hInstance: HINST; hPrevInstance: HINST; lpCmdLine: PChar; nCmdShow: integer)
  : integer; stdcall;

var
  Msg: TMsg;
  myClass: PWideChar;
  myTitle: PWideChar;
  dwStyle: DWORD;
  dwExStyle: DWORD;
  wc: TWndClassEx;
  X: integer;
  Y: integer;
  IsInitialized: Bool;
  rc: TRect;
  Path: string;

begin

  myClass := 'POPUPWINDOW';

  wc.cbSize := SIZEOF(wc);
  IsInitialized := GetClassInfoEx(hInstance, myClass, wc);
  if IsInitialized = False then
  begin
    wc.cbSize := SIZEOF(wc);
    // Remove the Flicker of Window change size from left or Top side
    // deactivate CS_HREDRAW or CS_VREDRAW
    wc.style := CS_DBLCLKS;
gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz