AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Ordnung muss sein (LaunchBar)
Thema durchsuchen
Ansicht
Themen-Optionen

Ordnung muss sein (LaunchBar)

Ein Thema von EWeiss · begonnen am 17. Mai 2017 · letzter Beitrag vom 14. Nov 2021
 
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Jun 2017, 12:49
Der Absturz bei Windows 10 kommt von dieser Zeile (uMain.pas Zeile 961):
Delphi-Quellcode:
                  GDIP_DrawImageRectRectI(Graphics, ImgBack, ImgItemHeight, PDis.rcItem.Top,
                    Rect.Right - SideBarWidth, ImgItemHeight, 0, PDis.rcItem.Top *
                      (Integer(imgH) div Rect.Bottom), imgW, (Integer(imgH) div Rect.Bottom)
                      * ImgItemHeight, 2, nil, false, nil);
Rect ist leider leer, deshalb funktioniert die Division durch Rect.Bottom nicht.
Das liegt daran, dass WindowFromDC(PDis.HDC) 0 zurückliefert.
Danke dir für die Info.
Was kann man da machen?

Warum WindowFromDC jetzt 0 unter W10 zurück gibt ist mir schleierhaft.

Habe den Source nochmal aktualisiert da auch in CreateShortCut ein Problem mit dem Free vorlag.

vorher
Delphi-Quellcode:
constructor TShortCut.Create;
begin

  AddChildWindows();
  CreateIcon := TCreateIcon.Create;
end;
Delphi-Quellcode:
  if Assigned(Sprites) then
  begin
    if (Sprites.Count - 1) > ID_MAIN then
    begin
      for K := ID_FIRST to Sprites.Count - 1 do
      begin
        if Sprites[K].h_Bitmap <> 0 then
        begin
          DeleteObject(Sprites[K].h_Bitmap);
          Sprites[K].h_Bitmap := 0;
        end;
      end;
      Sprites.Free;
      AddChildWindows;
    end;
  end;
und jetzt
Delphi-Quellcode:
constructor TShortCut.Create;
begin

  CreateIcon := TCreateIcon.Create;
end;
Delphi-Quellcode:
  if Assigned(Sprites) then
  begin
    Sprites.Free;
    AddChildWindows;
  end else
  AddChildWindows;
Zitat:
Ohne die Zeile wird das Menü angezeigt, allerdings wird der aktuelle Eintrag nach dem Hovern nicht wieder zurückgesetzt, sprich nach einmal Drüberfahren sehen alle gehovert aus.
Nein, nein die brauchen wir weil sonst die Button zum selektieren der Einträge nicht neu gezeichnet werden.
Das Hintergrund Bitmap sorgt dafür das ein Invalidate auf das Menu ausgeführt wird.


gruss

Geändert von EWeiss (14. Jun 2017 um 13:44 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz