Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Ordnung muss sein (LaunchBar) (https://www.delphipraxis.net/192767-ordnung-muss-sein-launchbar.html)

EWeiss 15. Jun 2017 18:31

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374635)
Liegt wohl wirklich eher unter Windows 10. Das Problem scheint zu sein, dass unter Windows 10 den Desktop-Ordner nicht gefunden wird (daher bleibt die Leiste auch leer).
Selbst mit der OTTB.txt/.config wird nichts angezeigt.

Wie kann der nicht gefunden werden?
Der liegt doch unter User/Desktop ich kann mir nicht vorstellen das unter W10 das Verzeichnis nicht mehr existiert.
Eventuell mal mit Adminrechten starten,

Check mal diese Zeile in CreateShortCut.
Delphi-Quellcode:
sDeskTopAdm := GetSpecialFolder(CSIDL_DESKTOP) + '\';



gruss

EWeiss 15. Jun 2017 18:33

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374637)
Zu mindestens solltest du das so machen, dann gibts keinen Absturz, wenn keine Elemente in der Liste sind:

Delphi-Quellcode:
  if (Sprites.Count > ID_FIRST) And (Sprites[ID_FIRST].Left < 40) then
    Sprites[ID_LEFT].Visible := True
  else
    Sprites[ID_LEFT].Visible := false;

Nö das ist definitiv falsch! Sorry :)
Der Sprites.Count ist immer korrekt.

Wenn überhaupt dann liegt es an deinem System der Desktop Ordner muss vorhanden sein.
Ich kann aber nicht den Quelltext manipulieren weil auf deinem System etwas nicht stimmt.

Wie gesagt prüf mal diese Zeile

Delphi-Quellcode:
sDeskTopAdm := GetSpecialFolder(CSIDL_DESKTOP) + '\';

Das sollte dir zurück liefern.
C:\Users\UserName\Desktop\ (Admin) oder C:\Users\Public\Desktop\ (Public).

gruss

jaenicke 15. Jun 2017 19:42

AW: Ordnung muss sein (LaunchBar)
 
GetSpecialFolder liefert schon einen Backslash am Ende. Der ist daher dann doppelt vorhanden. Besser ist in so einem Fall IncludeTrailingPathDelimiter zu benutzen:
Delphi-Quellcode:
sDeskTopAdm := IncludeTrailingPathDelimiter(GetSpecialFolder(CSIDL_DESKTOP));
// fügt das Pfadtrennzeichen hinzu, wenn es noch nicht da ist
Bei mir funktioniert die aktuell angehängte Version nun jedenfalls mit Windows 10 und auch Icons sind nun da. :thumb:
Das Problem mit dem leicht verschobenen Menütext ist noch da, stört aber nicht wirklich. Die Koordinaten stimmen jedenfalls. Diese sind bei beiden Zeichenvorgängen gleich. Warum das so falsch aussieht, kann ich aktuell auch nicht sagen.

// EDIT:
Nehme ich diese Zeile heraus, wird der durch die Mausbewegung gehoverte Eintrag nicht mehr zurückgesetzt, aber der Fehler mit der Textverschiebung ist weg:
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);

Whookie 15. Jun 2017 19:52

AW: Ordnung muss sein (LaunchBar)
 
Hab da jetzt noch mal reingeschaut und das unter Windows 10 zum Laufen gebracht:

uShortCut.pas
Delphi-Quellcode:
procedure TShortCut.CreateShortCut(WinHandle: HWND);
...
begin
  ..

  if Win32MajorVersion >= 10 then
  begin
    Prop.ProgManHandle := 0;
    repeat
      Prop.ProgManHandle := FindWindowEx(0, Prop.ProgManHandle, 'WorkerW', '');
      Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
    until (Prop.ListViewHandle<>0) Or (Prop.ProgManHandle = 0);
  End
  else
  begin
    Prop.ProgManHandle := FindWindow('Progman', 'Program Manager');
    Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
  end;
  Prop.ListViewHandle := FindWindowEx(Prop.ListViewHandle, 0, 'SysListView32', 'FolderView');
  ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);
  ...
Allerdings muss man dann die OTTB.config aus dem Post oben löschen (sie führt zu einem Crash weil wohl ein paar der Links nicht vorhanden oder ungültig sind).

EWeiss 15. Jun 2017 19:56

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von jaenicke (Beitrag 1374643)
GetSpecialFolder liefert schon einen Backslash am Ende. Der ist daher dann doppelt vorhanden. Besser ist in so einem Fall IncludeTrailingPathDelimiter zu benutzen:
Delphi-Quellcode:
sDeskTopAdm := IncludeTrailingPathDelimiter(GetSpecialFolder(CSIDL_DESKTOP));
// fügt das Pfadtrennzeichen hinzu, wenn es noch nicht da ist
Bei mir funktioniert die aktuell angehängte Version nun jedenfalls mit Windows 10 und auch Icons sind nun da. :thumb:
Das Problem mit dem leicht verschobenen Menütext ist noch da, stört aber nicht wirklich. Die Koordinaten stimmen jedenfalls. Diese sind bei beiden Zeichenvorgängen gleich. Warum das so falsch aussieht, kann ich aktuell auch nicht sagen.

Ok daran könnte es liegen.
Ich muss den Backlash hier anhängen warum auch immer sonst geht es nicht.
Werde es ändern ;)

Und neue Version hochladen.

Zitat:

Die Koordinaten stimmen jedenfalls. Diese sind bei beiden Zeichenvorgängen gleich. Warum das so falsch aussieht, kann ich aktuell auch nicht sagen.
Sorry W10 ist immer noch ein Experimentier System. ;) Nicht schlagen LOL.

Zitat:

Das Problem mit dem leicht verschobenen Menütext ist noch da, stört aber nicht wirklich.
Mich stört das enorm will das weg haben ;)
Ist das gleiche Menu wie hier.
http://www.delphipraxis.net/192329-kvideo-player.html Tritt das dort auch auf ?

Was mich mal interessieren würde hängt sich bei dir die IDE beim Debuggen des Menüs auf?
1. Ich setze einen Breakpoint bei, in WM_DRAWITEM:

Delphi-Quellcode:
if ImgBack = 0 then
  ImgBack := GDIP_CreateImageFromFile(FolderResource + 'Menu\MEN_Center.png');
jetzt steppe ich eine Zeile weiter.
Drücke ich jetzt den grünen Pfeil Start(F9)) dann hängt sich die komplette IDE auf.

Keine Ahnung ob das nur unter D2010 auftritt oder auch woanders.
Wenn woanders! Dann ist da noch irgendetwas faul im Code was die IDE nicht verträgt. (Oder Thread Problem) was unter umständen dieses Problem verursacht.

gruss

EWeiss 15. Jun 2017 19:59

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374645)
Hab da jetzt noch mal reingeschaut und das unter Windows 10 zum Laufen gebracht:

uShortCut.pas
Delphi-Quellcode:
procedure TShortCut.CreateShortCut(WinHandle: HWND);
...
begin
  ..

  if Win32MajorVersion >= 10 then
  begin
    Prop.ProgManHandle := 0;
    repeat
      Prop.ProgManHandle := FindWindowEx(0, Prop.ProgManHandle, 'WorkerW', '');
      Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
    until (Prop.ListViewHandle<>0) Or (Prop.ProgManHandle = 0);
  End
  else
  begin
    Prop.ProgManHandle := FindWindow('Progman', 'Program Manager');
    Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
  end;
  Prop.ListViewHandle := FindWindowEx(Prop.ListViewHandle, 0, 'SysListView32', 'FolderView');
  ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);
  ...
Allerdings muss man dann die OTTB.config aus dem Post oben löschen (sie führt zu einem Crash weil wohl ein paar der Links nicht vorhanden oder ungültig sind).

Kannst du gerne tun aber ich ändere nichts am Code bzg. der Überprüfung von der System Version.
Das muss so laufen und tut es auch so wie man hört.
Denn @jaenicke verwendet auch W10 das kann nicht unterschiedlich sein.

Trotzdem Danke!

gruss

Whookie 15. Jun 2017 20:09

AW: Ordnung muss sein (LaunchBar)
 
Das mit dem Backslash hat bei mir überhaupt keine Auswirkung unter Windows 10. Ob mit oder ohne Doppeltem Backslash spielt keine Rolle, das eigentliche Problem liegt darin, das unter Windows 10 der 'SHELLDLL_DefView' nicht mehr unter 'Progman' liegt sondern in einem Fenster der Klasse "WorkerW".

Solange also die Liste nicht gefunden wird der Code unter:

Delphi-Quellcode:
  ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);

  if ItemCount <> 0 then
  begin
erst gar nicht ausgeführt!

EWeiss 15. Jun 2017 20:15

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374649)
Das mit dem Backslash hat bei mir überhaupt keine Auswirkung unter Windows 10. Ob mit oder ohne Doppeltem Backslash spielt keine Rolle, das eigentliche Problem liegt darin, das unter Windows 10 der 'SHELLDLL_DefView' nicht mehr unter 'Progman' liegt sondern in einem Fenster der Klasse "WorkerW".

Solange also die Liste nicht gefunden wird der Code unter:

Delphi-Quellcode:
  ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);

  if ItemCount <> 0 then
  begin
erst gar nicht ausgeführt!

Mag ja sein. (Glaube ich dir auch) ;)
Ist aber irgendwie fraglich denn bei den anderen Leuten mit W10 funktioniert es doch auch.
Es sei denn die fahren alle in einer VM (Wie sich das dort verhält kann ich nicht mit Bestimmtheit sagen).

Neue Version hochgeladen.
IncludeTrailingPathDelimiter hinzugefügt.

gruss

EWeiss 15. Jun 2017 20:40

AW: Ordnung muss sein (LaunchBar)
 
Hier noch eine andere Version die auf Klassen basiert. (Mache ich nicht gern unter NON-VLC)
Also alle Funktionen in uMain wurden zur Klasse TMainApp hinzugefügt um das Maximum an Globalen Variablen zu reduzieren.
Wenn euch das lieber ist werde ich diese als Arbeitskopie verwenden und darauf weiter aufbauen.

Das obige Archiv wird in dem Fall ersetzt.
Ok keine Mitteilung egal werde es trotzdem ersetzen.

gruss

jaenicke 15. Jun 2017 21:52

AW: Ordnung muss sein (LaunchBar)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von EWeiss (Beitrag 1374646)
Ist das gleiche Menu wie hier.
http://www.delphipraxis.net/192329-kvideo-player.html Tritt das dort auch auf ?

Das Programm stürzt ab, wenn ich mit der rechten Maustaste klicke oder auf Play.

Zitat:

Zitat von EWeiss (Beitrag 1374646)
Was mich mal interessieren würde hängt sich bei dir die IDE beim Debuggen des Menüs auf?

Nein, funktioniert reibungslos. Solche Probleme hatte ich bis Delphi XE6 aber immer wieder mal. Allerdings meistens nicht immer an einer bestimmten Stelle, sondern nur manchmal.

Zitat:

Zitat von Whookie (Beitrag 1374649)
Das mit dem Backslash hat bei mir überhaupt keine Auswirkung unter Windows 10.

Das stimmt, Windows akzeptiert das trotzdem.

Zitat:

Zitat von Whookie (Beitrag 1374649)
das eigentliche Problem liegt darin, das unter Windows 10 der 'SHELLDLL_DefView' nicht mehr unter 'Progman' liegt sondern in einem Fenster der Klasse "WorkerW".

Kann ich nicht nachvollziehen:
Anhang 47542
Ich habe aber gelesen, dass andere seit Windows Vista ebenfalls dieses Problem haben. Viele gehen daher alle WorkerW Fenster durch, wenn der Weg über Progman nicht erfolgreich war und suchen darin nach der ListView.
Wenn, reicht jedenfalls nicht einer der Wege. Seit Vista ist beides möglich. Es scheint etwas damit zu tun zu haben, ob Aero aktiviert ist usw.

Zitat:

Zitat von EWeiss (Beitrag 1374651)
Hier noch eine andere Version die auf Klassen basiert. (Mache ich nicht gern unter NON-VLC)

Das sollte eine bessere Struktur bringen (habe noch nicht hineingeschaut).

Zitat:

Zitat von EWeiss (Beitrag 1374651)
Das obige Archiv wird in dem Fall ersetzt.

Wie wäre es denn, wenn du den Quelltext schlicht z.B. auf GitHub stellst? So wie ich hier zum Beispiel auch:
https://github.com/jaenicke/MTCL
Dann ist auch gleich die Versionshistory usw. dabei:
https://github.com/jaenicke/MTCL/commits/master
https://github.com/jaenicke/MTCL/com...990d348e4f6efa

EWeiss 15. Jun 2017 22:00

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Wie wäre es denn, wenn du den Quelltext schlicht z.B. auf GitHub stellst? So wie ich hier zum Beispiel auch:
Dann müsste ich mich dort Anmelden und mit TortoiseGit habe ich es auch nicht so ;)
Muss nur noch ein paar kleine Dinge machen dann hat sich das eh erledigt.

Zitat:

Das Programm stürzt ab, wenn ich mit der rechten Maustaste klicke oder auf Play.
Na ja es ging mir ja auch um das Menu. ;)
Rechte Maustaste Caption :)

gruss

EWeiss 15. Jun 2017 23:44

AW: Ordnung muss sein (LaunchBar)
 
Habe das nochmal gescheckt.
Das mit dem Portablen Kram funktioniert über die INI nicht.

Und wenn ich die Registry nehme dann ist das Teil nicht mehr Portable.
Na ja was soll's (Hätte ich mir vorher überlegen sollen)
2 Versionen erstellen macht nicht wirklich sinn.

gruss

jaenicke 16. Jun 2017 07:25

AW: Ordnung muss sein (LaunchBar)
 
Ich kann mir das ja mal anschauen. Aber nicht sofort, frühestens heute Abend.

stOrM 16. Jun 2017 10:13

AW: Ordnung muss sein (LaunchBar)
 
Ohne jetzt Werbung machen zu wollen, aber mir gefiel Tortoise auch nie so wirklich und suchte eine Cross Plattform Alternative da ich fast ausschliesslich auf dem Mac arbeite und dort fast nur mit GIT zu tun habe, da fand ich GitKraken eigentlich sehr nett für Github und auch ziemlich einfach zu bedienen, kannst Du dir ja mal ansehen: https://www.gitkraken.com/

EWeiss 16. Jun 2017 16:43

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von jaenicke (Beitrag 1374661)
Ich kann mir das ja mal anschauen. Aber nicht sofort, frühestens heute Abend.

Das Problem ist das man um INI Dateien zu erstellen den Pfad zur INI Datei benötigt.
Wie also zwischen den Pfaden hin und her schalten wenn ich den aktuellen Pfad beim erstellen der Anwendung nicht kenne.
Schalte ich zur Laufzeit hin und her ist das kein Problem das kommt erst wenn die Anwendung neu gestartet wird.

Aus der Registry kann ich diesen vorher auslesen ohne ihn erst ermitteln zu müssen.
Nur dann ist die Anwendung nicht mehr Portable.

gruss

SneakyBagels 16. Jun 2017 16:46

AW: Ordnung muss sein (LaunchBar)
 
Ich mache es so

Erster Start
- Benutzer wird gefragt, ob die Anwendung portabel sein soll
-- Ja
--- Ini im Programmverzeichnis erstellen
-- Nein
--- Ini im Roamingverzeichnis erstellen

Zweiter Start
- Prüfen, ob es die Ini-Datei im Programmverzeichnis gibt
-- Ja
--- laden und weiter
-- Nein
--- Prüfen, ob die Ini-Datei im Roamingverzeichnis liegt
-- Ja
--- laden und weiter
-- nein
--- siehe "Erster Start"

Ich hoffe alles ist richtig erklärt.
Im Form von Code sieht das alles sehr viel einfacher aus.

EWeiss 16. Jun 2017 16:53

AW: Ordnung muss sein (LaunchBar)
 
Extra einen Dialog erstellen nur um abzufragen wo die INI gespeichert werden soll.
Warum habe ich dann ein Menu Eintrag ?

Das sollte bzw. muss damit auch funktionieren.

EDIT:
Wobei ich nicht sage das deine Lösung nicht funktioniert das tut sie. ;)

gruss

EWeiss 16. Jun 2017 22:23

AW: Ordnung muss sein (LaunchBar)
 
Hier ist mal ein neues Menu.
Das ist kein Popupmenu sondern ein PopupWindow.

Mich interessiert nur ob unter W10 die Schrift korrekt dargestellt wird.
Sie muss 100% Zentriert sein also mittig von oben zum jeweiligen Icon.

Da noch keine Funktionen für die Einträge selbst implementiert sind muss die Anwendung mit dem Taskmanager beendet werden.
Ich lösche das später wieder.


gruss

Whookie 16. Jun 2017 22:30

AW: Ordnung muss sein (LaunchBar)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da gibts nur einen Crash...

EWeiss 16. Jun 2017 22:32

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374718)
Da gibts nur einen Crash...

Die beiden Dateien im Original Archiv vorher umbenannt und mit den neuen aus diesem Archiv ersetzt ?
Glaube nicht so wie ich das sehen kann ;)
Alleine Funktionieren die nicht.

gruss

Whookie 16. Jun 2017 23:03

AW: Ordnung muss sein (LaunchBar)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das stimmt, wenn ich die beiden Dateien ins Originalverzeichnis kopiere und starte kommt der schwarze Balken nicht mehr, nur mehr das "OverTheTaskBar funktioniert nicht mehr..." - Fenster und wenn ich das wegklicke gibts einen Anwendungsfehler

EWeiss 16. Jun 2017 23:09

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374721)
Das stimmt, wenn ich die beiden Dateien ins Originalverzeichnis kopiere und starte kommt der schwarze Balken nicht mehr, nur mehr das "OverTheTaskBar funktioniert nicht mehr..." - Fenster und wenn ich das wegklicke gibts einen Anwendungsfehler

OK vergessen wir das.
Es macht keinen Sinn für ein System zu Arbeiten das man selbst nicht verwendet.
Damit ist es so fertig wie es ist.

Danke!
Lösche das Archiv wieder.

gruss

EWeiss 17. Jun 2017 01:39

AW: Ordnung muss sein (LaunchBar)
 
Neue und hoffentlich letzte Version hochgeladen. (Nach insgesamt 98 Downloads, könnte besser sein LOL)
  • - Schrift in der Seiten Bar verbessert.
  • - Seiten Bar wird nur noch einmalig beim Aufruf des Menüs gezeichnet.

Das ist die Final Version.
Wenn jetzt noch Probleme auftauchen unter W10 mit dem Menu dann müsst ihr es leider selbst beheben.
Tut mir schrecklich leid :duck:
Ohne W10 ist das zu viel stress.

gruss

jaenicke 17. Jun 2017 06:09

AW: Ordnung muss sein (LaunchBar)
 
Mit der .ini geht es viel einfacher. Wie hat SneakyBagels ja auch schon geschrieben, einfach auf Vorhandensein der lokalen .ini prüfen und diese anlegen oder löschen beim Umschalten:
Delphi-Quellcode:
procedure InitPath(const ACheckPortable: Boolean);
var
  sIniFile: string;
  ExeName: String;
  FilePath: String;
begin
  ExeName := ExtractFileName(ChangeFileExt(ParamStr(0), ''));
  FilePath := ExtractFilePath(ParamStr(0));
  sIniFile := FilePath + ExeName + '.ini';
  if ACheckPortable then
    Prop.Portable := FileExists(sIniFile);
  if Prop.Portable then
    OTTBIni := TIniFile.Create(sIniFile)
  else
  begin
    DeleteFile(sIniFile); // falls auf nicht portable geschaltet wurde
    UserAppDataDir := GetSpecialFolder(CSIDL_APPDATA);
    // Direktory erstellen wenn nicht vorhanden
    if not ForceDirectories(UserAppDataDir + '\BrewIdeas\OTTB') then
      raise Exception.Create('Cannot create' + UserAppDataDir + '\BrewIdeas\OTTB');

    OTTBIni := TIniFile.Create(UserAppDataDir + '\BrewIdeas\OTTB' + '\OTTB.ini')
  end;
end;

procedure LoadINI;
begin
  InitPath(True);

  Prop.SoundActive := OTTBIni.ReadBool('OTTB Option', 'SoundActive', true);
  Prop.ShortCutVisible := OTTBIni.ReadBool('OTTB Option', 'ShortCutVisible', false);
  CreateIcon.ShowDesktopIcons(Prop.ShortCutVisible);
  OTTBIni.Free;
end;

function SaveINI: Boolean;
var
  OldErrorMode: Integer;
begin
  InitPath(False);

  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    OTTBIni.WriteBool('OTTB Option', 'SoundActive', Prop.SoundActive);
    OTTBIni.WriteBool('OTTB Option', 'ShortCutVisible', Prop.ShortCutVisible);
  finally
    Result := True;
    SetErrorMode(OldErrorMode);
    OTTBIni.Free;
  end;
end;
Das Halt habe ich einmal herausgenommen, denn wenn du eine Exception wirfst, wird das ja ohnehin nicht mehr ausgeführt.

EWeiss 17. Jun 2017 06:12

AW: Ordnung muss sein (LaunchBar)
 
@jaenicke Danke werde es mal einbauen und testen.

Interesse mal das neue Menu zu testen ?
Dann lade ich die 2 Dateien nochmal hoch.

EDIT:
Funktioniert Super! :thumb:
Habe da keine vernünftige lösung erarbeiten können. (Mir viel einfach nichts ein)

gruss

jaenicke 17. Jun 2017 06:20

AW: Ordnung muss sein (LaunchBar)
 
Jetzt könnte ich gerade, ja.

EWeiss 17. Jun 2017 06:20

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von jaenicke (Beitrag 1374726)
Jetzt könnte ich gerade, ja.

OK.. Es wird aber das neue Archiv vorrausgesetzt.
Und die Anwendung kann dann nur über den taskmanager entfernt werden wenn es nicht kracht ;)
Das Menu (Popup Window) kannst du wegschalten wenn du auf dem Desktop klickst.

gruss

jaenicke 17. Jun 2017 06:38

AW: Ordnung muss sein (LaunchBar)
 
Die Positionierung des vertikalen Teils sieht so deutlich besser aus, der ist nun genau mittig. Am Rest hat sich abgesehen von der Breite insgesamt um ein paar Pixel nix geändert und nach dem Öffnen des Menüs friert die Anwendung ein, sprich auch Hovern im Menü passiert nicht.

EWeiss 17. Jun 2017 06:43

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von jaenicke (Beitrag 1374728)
Die Positionierung des vertikalen Teils sieht so deutlich besser aus, der ist nun genau mittig. Am Rest hat sich abgesehen von der Breite insgesamt um ein paar Pixel nix geändert und nach dem Öffnen des Menüs friert die Anwendung ein, sprich auch Hovern im Menü passiert nicht.

Hmm..
Wie ist es denn mit dem Text?
Ist dieser zentriert oder immer noch versetzt wie beim normalen Menu.

Bei mir sieht es so aus.
Einfrieren tut da nix wenn das Window geöffnet wird setze ich die Bar auf enabled False damit keine Eingaben mehr getätigt werden können wie beim normalen PopUpMenu.

Klicks du auf den Desktop mit der linken Maus sollte das WIndow schließen und die Bar wieder bedienbar sein.
Zitat:

sprich auch Hovern im Menü passiert nicht.
Das ist ja alles noch im Anfangsstadium ;)

gruss

jaenicke 17. Jun 2017 06:53

AW: Ordnung muss sein (LaunchBar)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von EWeiss (Beitrag 1374729)
Ist dieser zentriert oder immer noch versetzt wie beim normalen Menu.

Da habe ich mich eben geirrt, der sieht jetzt richtig aus. Links alt direkt nach Aufruf, rechts neu:
Anhang 47555

EWeiss 17. Jun 2017 06:56

AW: Ordnung muss sein (LaunchBar)
 
Wie gesagt ist noch nicht fertig.
Eventuell muss ich das ebenfalls auf Sprites aufbauen da ich sonst nicht weis wie ich die einzelnen Menü Punkte verwalten soll.
Ich muss vorher sicher sein das die Schrift richtig angezeigt wird, vorher macht es keinen sinn das weiter zur verfolgen.


gruss

EWeiss 17. Jun 2017 06:59

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von jaenicke (Beitrag 1374730)
Zitat:

Zitat von EWeiss (Beitrag 1374729)
Ist dieser zentriert oder immer noch versetzt wie beim normalen Menu.

Da habe ich mich eben geirrt, der sieht jetzt richtig aus. Links alt direkt nach Aufruf, rechts neu:
Anhang 47555

Ok das sieht sehr gut aus. ;)

So wie bei mir das PopupMenu.
Ich denke W10 hat da probleme bzg. der DPI oder ähnlichen.
Keine Ahnung warum das teil da rumzickt.

Ok dann kann ich das weiter verfolgen.
Danke für die Hilfe.

gruss

EWeiss 18. Jun 2017 02:18

AW: Ordnung muss sein (LaunchBar)
 
Hoffe das der Mist jetzt mit W10 läuft.
Neue Version ist oben.

Ich habe jetzt keine Rücksicht auf das Worker\Progman Problem genommen.
Sorry hatte mit dem Menu genug zu tun.

Wenn es da noch ärger gibt dann korrigiert es selbst. ;)
Es muss exakt so wie auf dem Shot aussehen, tut es das ? Dann ist das in Ordnung.
1 Monat Arbeit ist genug dafür ;)

Es wird nur noch die Schrift gezeichnet der Rest ist im Hintergrund Bild wundert euch also nicht das die Icons sich nicht mehr ändern
Es reicht wenn die Schrift selbst es tut abhängig vom Status.
Wenn ihr nichts mehr findet dann ist das Teil jetzt fertig.

gruss

EWeiss 19. Jun 2017 09:42

AW: Ordnung muss sein (LaunchBar)
 
Auch wenn es einige nervt trotz allem noch eine neue Version hochgeladen.
Änderungen siehe oben.

so etwas muss natürlich noch mit rein.
Delphi-Quellcode:
procedure TMainApp.DestroyChildControls;
var
  Path: string;
begin
  Path := FolderResource + 'PopUpWindow\OTTB.ttf';
  RemovePrivateFontCollection(Path);
  FPrivateFont := nil;

  panBackgoundFrame.DestroyWindow;
  panBackgoundFrame := nil;
  btnAbout.DestroyWindow;
  btnAbout := nil;
  btnIconFrame.DestroyWindow;
  btnIconFrame := nil;
  btnIconBack.DestroyWindow;
  btnIconBack := nil;
  btnWallpaper.DestroyWindow;
  btnWallpaper := nil;
  btnShortCut.DestroyWindow;
  btnShortCut := nil;
  btnSound.DestroyWindow;
  btnSound := nil;
  btnConfig.DestroyWindow;
  btnConfig := nil;
  btnEdit.DestroyWindow;
  btnEdit := nil;
  btnCleanUp.DestroyWindow;
  btnCleanUp := nil;
  btnRestart.DestroyWindow;
  btnRestart := nil;
  btnPortable.DestroyWindow;
  btnPortable := nil;
  btnClose.DestroyWindow;
  btnClose := nil;
end;
Das hat jedoch keinerlei Auswirkung ohne die neue DLL im Archiv.
Deshalb der neue Upload.

gruss

Tonic1024 19. Jun 2017 10:07

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von EWeiss (Beitrag 1374786)
Hoffe das der Mist jetzt mit W10 läuft.

Der Mist läuft :thumb::wink:

EWeiss 19. Jun 2017 10:10

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Tonic1024 (Beitrag 1374846)
Zitat:

Zitat von EWeiss (Beitrag 1374786)
Hoffe das der Mist jetzt mit W10 läuft.

Der Mist läuft :thumb::wink:

Danke habe die Information schon vermisst. ;) :) :thumb:

gruss

EWeiss 20. Jun 2017 19:17

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von Whookie (Beitrag 1374645)
Hab da jetzt noch mal reingeschaut und das unter Windows 10 zum Laufen gebracht:

uShortCut.pas
Delphi-Quellcode:
procedure TShortCut.CreateShortCut(WinHandle: HWND);
...
begin
  ..

  if Win32MajorVersion >= 10 then
  begin
    Prop.ProgManHandle := 0;
    repeat
      Prop.ProgManHandle := FindWindowEx(0, Prop.ProgManHandle, 'WorkerW', '');
      Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
    until (Prop.ListViewHandle<>0) Or (Prop.ProgManHandle = 0);
  End
  else
  begin
    Prop.ProgManHandle := FindWindow('Progman', 'Program Manager');
    Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', '');
  end;
  Prop.ListViewHandle := FindWindowEx(Prop.ListViewHandle, 0, 'SysListView32', 'FolderView');
  ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);
  ...
Allerdings muss man dann die OTTB.config aus dem Post oben löschen (sie führt zu einem Crash weil wohl ein paar der Links nicht vorhanden oder ungültig sind).

Also zu deinem WorkerW Problem.
Ich denke es macht einen großen Unterschied ob du W10 neu aufgesetzt, von Vista oder W7 aktualisiert hast.
Das verursacht höchstwahrscheinlich dein WorkerW Problem da wirst du auch mit anderen Programmen auf widerstand stoßen.

Anders kann ich mir nicht vorstellen das andere diese Probleme nicht haben.
Ist jetzt nicht auf das Programm bezogen sondern generell.

Wollte das nur nochmal ansprechen.

gruss

jaenicke 20. Jun 2017 20:47

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von EWeiss (Beitrag 1375007)
Ich denke es macht einen großen Unterschied ob du W10 neu aufgesetzt, von Vista oder W7 aktualisiert hast.
Das verursacht höchstwahrscheinlich dein WorkerW Problem da wirst du auch mit anderen Programmen auf widerstand stoßen.

Da das Problem schon seit Vista bekannt ist, halte ich das für unwahrscheinlich. ;-)

Deshalb ist auch der Filter auf Windows 10 im genannten Quelltext nicht zielführend, sondern nur eine Kombination aus beidem. Sprich eine Suche am StandardOrt und dann unter workerw.

EWeiss 20. Jun 2017 21:06

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Deshalb ist auch der Filter auf Windows 10 im genannten Quelltext nicht zielführend, sondern nur eine Kombination aus beidem. Sprich eine Suche am StandardOrt und dann unter workerw.
Verstehe jetzt nicht wie du das meinst.
Wenn ich im NET nach WorkerW suche finde ich einige Einträge dazu.

Ich frage mich nur wie kann es sein das auf verschiedene W10 Versionen das Problem auftritt.
Woher kommt das würde mich interessieren.

Der eine hat Progman der andere WorkerW wieder bei anderen wechselt die Zorder von WorkerW zu Progman ständig usw..

gruss

jaenicke 20. Jun 2017 21:51

AW: Ordnung muss sein (LaunchBar)
 
Zitat:

Zitat von EWeiss (Beitrag 1375011)
Ich frage mich nur wie kann es sein das auf verschiedene W10 Versionen das Problem auftritt.

Wie gesagt, das hat nix mit Windows 10 zu tun. Hier z.B. ein 7 Jahre alter Beitrag zu Windows 7 mit dem Problem...
https://www.autoitscript.com/forum/t...class-workerw/

Es scheint etwas mit der Virtualisierung für Themeumschaltung oder ähnliches zu tun zu haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 3 von 8     123 45     Letzte »    

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