Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Freeware] MagicMagnifier - eine Farbwahl-Lupe (https://www.delphipraxis.net/105690-%5Bfreeware%5D-magicmagnifier-eine-farbwahl-lupe.html)

patti 27. Dez 2007 16:21


[Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo DP :hi:

Ich möchte ein Programm vorstellen, dass ich heute im Laufe des Nachmittags programmiert habe. Ich finde es sehr nützlich und hab mir gedacht, dass es vielleicht jemandem gefällt ;-)

Es heißt "MagicMagnifier". Das Tool beinhaltet eine Lupe mit einstellbarem Vergrößerungsfaktor. Diese Lupe vergrößert den Bildschirmausschnitt, der sich bei der Maus befindet. In der Mitte der Vergrößerung ist ein Pixel markiert. Dessen Farbe wird unter der Vergrößerung (in einem Shape) angezeigt. Per Druck auf die Leertaste wird diese Farbe gespeichert (rechte Seite des Fensters). Darunter werden die RGB-Werte, der HTML-Farb-Code und der Delhi-Farb-Wert ausgegeben. Ein Klick auf die Farb-Werte kopiert folgendes in die Zwischenablage:
  • bei den RGB-Werten: einen String, der so aufgebaut ist:
    Delphi-Quellcode:
    RGB(r,g,b)
    (natürlich mit den entsprechenden RGB-Werten). Dieser String lässt sich in Delphi einfügen.
  • beim HTML-Code wird dieser einfach in die Zwischenablage kopiert
  • beim Delphi-Farb-Wert verhält es sich ebenso.

Per Klick auf die aktuelle Farbe kann aus einem einfachen ColorDialog eine Farbe ausgewählt werden. Zu dieser Farbe werden dann die entsprechenden Farb-Codes ausgegeben.

Das Programm ist also sehr nützlich, wenn man schnell einen Farb-Wert von einer Farbe braucht oder man eine schöne Farbe sucht!

Das Programm speichert seine Position und die aktuelle Farbe in eine Ini-Datei im Anwendungsverzeichnis (ja, ich weiß, das wird nicht so gerne gesehen :roll:) -> Schreibrechte im Ordner werden benötigt!

Alles in allem finde ich, dass es ein sehr nützliches Tool ist, dessen Funktionalität und Nutzen sich schwer beschreiben lässt (damit es etwas verständlicher wird, habe ich einen Screenshot angehängt) :-D

Neue Version vom 28.12.2007:
  • Zoom-Faktor wird mitgespeichert
  • Zoomen mit Mausrad möglich (nur wenn das Fenster den Fokus hat)
  • Systemweit (auch wenn das Fenster nicht den Fokus hat) Farbe wählen mit STRG + LEERTASTE

Neue Version vom 29.12.2007:
  • Ein- und ausschaltbares Crosshair (Fadenkreuz)

Patti

PS: Läuft ab Windows 2000

Dezipaitor 27. Dez 2007 16:27

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Jo sehr nützlich.
Leider funktioniert es nicht mit mehreren Bildschirmen.

patti 27. Dez 2007 16:29

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Das kann sein. Hab nur einen Bildschirm an meinem Rechner und tu mich daher schwer, meine Programm für mehrere Bildschirme zu schreiben ;-)

Danke fürs Testen!

Patti

Die Muhkuh 27. Dez 2007 16:33

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Leertaste funktioniert bei mir nicht :arrow: kann keine Farbe bestimmen
Zoomen per Mausrad wäre nett ;)

patti 27. Dez 2007 16:37

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hm, das mit der Leertaste ist komisch. Eigentlich sollte das funktionieren (geht natürlich nur, wenn das Fenster den Fokus hat). Ich werde noch einen systemweiten Hotkey definieren, mit dem man eine Farbe "festhalten" kann auch wenn das Fenster nicht den Fokus hat ;-)

Zoomen mit Mausrad ist ne sinnvolle Idee. Werde ich mit einbauen.

Patti

Die Muhkuh 27. Dez 2007 17:17

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hi,

das mit dem Fokus war das Problem. Das Fenster hatte keinen Fokus ;)

Es wäre auch nicht schlecht, wenn sich der Cursor nicht verändern würde. Eine Art Crosshair würde sich anbieten. ;)

MrMyagi 27. Dez 2007 18:27

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hi,

Super Programm :thumb: :thumb: :thumb:

und vor allem, das ist auch mal Programm das man unter Umständen mal gebrauchen könnte^^

Mit freundlichen Grüßen, Nico

patti 28. Dez 2007 11:53

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
@Muhkuh: Dann ist ja alles klar ;-) Crosshair kann ich optional mit einbauen. Wird in der nächsten Version mit drin sein!

@MrMyagi: Danke für das Lob ;-)

Habe gerade noch eine neue Version hochgeladen. Und das sind die neuen Features:
  • Zoom-Faktor wird mitgespeichert
  • Zoomen mit Mausrad möglich (nur wenn das Fenster den Fokus hat)
  • Systemweit (auch wenn das Fenster nicht den Fokus hat) Farbe wählen mit STRG + LEERTASTE

Patti

patti 29. Dez 2007 20:26

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
So, habe eben nochmal eine neue Version hochgeladen. Sie beinhaltet das gewünschte Crosshair (Fadenkreuz).

Datei befindet sich im ersten Post oben!

Patti

Die Muhkuh 29. Dez 2007 20:28

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hi,

die Farbauswahl gestaltet sich immer noch etwas *doof* Schau Dir mal das Programm MyColor von Opa Knack an, da finde ich die Farbauswahl besser gelöst, da per "Drag & Drop" ;)

patti 29. Dez 2007 20:42

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Ich persönlich finde es mit Drag & Drop etwas umständlich, eine Farbe auszuwählen. Was ich gut finde, sind die vielen Extras, wie z.B. Farbverlauf-Farben, etc.

Ich werde noch einbisschen was in mein Programm einbauen, vielleicht wird dann die Bedienung dadurch auch etwas verbessert.

Habe anfangs eigentlich nicht vorgehabt, noch viel an dem Mini-Tool zu machen, sondern es "so wie es ist" mal vorzustellen (soll wirklich nur ein Mini-Tool sein, das man ab und zu mal braucht). Habe mir gedacht, dass es vielleicht jemand nützlich findet und seine Freude daran hat. Aber wie es ausschaut werde ich noch etwas daran weiter arbeiten ;-)

Patti

Die Muhkuh 29. Dez 2007 20:44

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hi,

mach doch das Drag & Drop als Alternative ;)

patti 29. Dez 2007 20:47

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Ja, mal schauen. Werde ich vielleicht wirklich als Alternative mit einbauen.
Dank deiner Anregung mit MyColor bastle ich gerade an einer Ablage für mehrere Farben ;-)

Die Muhkuh 29. Dez 2007 20:49

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Wenn Du die Lupe noch auf den zweiten Monitor bringst, wäre es nicht schlecht, weil das kann der von Opa Knack auch nicht und MyColor nutze ich fast täglich.

patti 29. Dez 2007 20:51

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Ich muss ehrlich gestehen, dass ich mit zwei Monitoren nicht viel Erfahrung habe. Ich werde mich mal in das Thema einlesen und dann versuchen, das Tool Zwei-Monitor-Kompatibel zu machen ;-)

Namenloser 29. Dez 2007 21:18

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Hi, ganz nettes Tool, auch wenn mir nicht ganz klar ist was es für nen Vorteil bietet :D
Was mich interessieren würde ist, wie du das Fenster selbst vom Ausschnit ausschließt.

Die Muhkuh 29. Dez 2007 21:20

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Ich schätze mal, dass es sich um eine Komponente aus der JVCL handelt, deren Name mir gerade nicht einfällt.

TJvMagnifier oder sowas^^

patti 29. Dez 2007 21:26

Re: [Freeware] MagicMagnifier - eine Farbwahl-Lupe
 
Falsch geraten ;-)

Die Lupe und alles drum herum ist selber gemacht. Ich mache einen Screenshot und vergrößere dann daraus den entsprechenden Bereich. Dass das Fenster selber im Screenshot nicht sichtbar ist, ist ein wirklicher sehr netter Nebeneffekt von einer Procedure, die ich mir aus einigen Code-Schnipseln zusammengebaut habe (ich habe mir eine eigene Unit draus gemacht):

Delphi-Quellcode:
unit transwin;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

procedure MakeTransparent(AHandle : THandle; AValue : byte = 0; AColor : TColor = clfuchsia);

implementation

type
    TSetLayeredWindowAttributes = function ( 
    hwnd : HWND;
    crKey : TColor;
    bAlpha : byte;
    dwFlags : DWORD
    ): BOOL; stdcall;

const
  WS_EX_LAYERED = $80000;
  LWA_COLORKEY = 1;
  LWA_ALPHA = 3;

procedure MakeTransparent(AHandle : THandle; AValue : byte = 0; AColor : TColor = clfuchsia);
var
  Info: TOSVersionInfo;
  SetLayeredWindowAttributes: TSetLayeredWindowAttributes;
begin
  Info.dwOSVersionInfoSize := SizeOf(Info);
  GetVersionEx(Info);
  if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and
    (Info.dwMajorVersion >= 5) then
  begin
    SetLayeredWindowAttributes := GetProcAddress(GetModulehandle(user32),'SetLayeredWindowAttributes');
    if Assigned(SetLayeredWindowAttributes) then
    begin
      SetWindowLong(AHandle, GWL_EXSTYLE, GetWindowLong(AHandle, GWL_EXSTYLE) or WS_EX_LAYERED);
      SetLayeredWindowAttributes(AHandle, ColorToRGB(AColor),AValue, LWA_ALPHA);
    end;
  end;
end;

end.
Bei der Procedure MakeTransparent kann ein Wert von 0-255 für die Transparenz und eine Farbe, die vollkommen transparent ist, angegeben werden. Es war ein glücklicher Zufall, dass das Fenster so nicht auf Screenshots zu sehen ist ;-)

Patti


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr.

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