AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte rzMagnifier - Bildschirmlupe+Colorpicker, Version 1.3
Thema durchsuchen
Ansicht
Themen-Optionen

rzMagnifier - Bildschirmlupe+Colorpicker, Version 1.3

Ein Thema von taaktaak · begonnen am 23. Jun 2008 · letzter Beitrag vom 9. Nov 2008
Antwort Antwort
Seite 5 von 5   « Erste     345   
taaktaak
Registriert seit: 25. Okt 2007
Moin, Moin.

Nachdem mein erstes hier veröffentlichtes Programm "rzNotes" leider überhaupt kein Interesse gefunden hat, möchte ich nun ein weiteres Programm vorstellen, welches vielleicht etwas mehr Beachtung finden wird: Es handelt sich um die Kombination von Bildschirmlupe und ColorPicker angereichert um einige zusätzliche Funktionalitäten. Da das Programm seine "ersten Gehversuche" als Bildschirmlupe gemacht hat, habe ich es rzMagnifier genannt.

Entstehungsgeschichte und Kurzüberblick
Seit einiger Zeit benutze ich den ColorManager von Christian Lukas; dieses Programm ist als Freeware veröffentlicht. Der ColorManager ist ein Tool zur Bestimmung der Farbwerte einzelner auf dem Bildschirm angezeigter Pixel. Damit dies ausreichend genau erfolgen kann, wird der zu untersuchende Bildausschnitt im Programmfenster vergrößert dargestellt. Nutzt man das Programm zu eben diesem Zweck, dann erfüllt es nach meiner Einschätzung seine Aufgabe auch einwandfrei.

Nun musste ich aber beobachten, dass ich den ColorManager seltener startete um einen Farbwert zu bestimmen, als vielmehr um einen Bildschirmausschnitt vergrößert betrachten zu können. Delphi bietet zwar mit der Ausrichtungspalette bereits recht gute Möglichkeiten einzelne Objekte auf dem Form auszurichten, trotzdem habe ich häufiger den Bedarf Ausrichtungen und Abstände zu kontrollieren und ggf. anzupassen. Für diese Anforderung ist der ColorManager nicht entwickelt und weniger gut geeignet: Das Zoomfenster ist zu klein und es gibt z.B. keine Hilfslinien, die als frei bewegliche Lineale verwendet werden können. Nun gut, dachte ich, dann schau doch mal, was an Bildschirmlupen als Freeware angeboten wird. Ich gebe es zu, lange habe ich nicht gesucht, aber so recht überzeugt haben mich die gefundenen Programme alle nicht.

Inzwischen war dann auch der Gedanke entstanden, es selbst einmal zu versuchen und beides, also Farbwertbestimmung und Lupenfunktion, in einem Programm zu vereinen und alles an meinen persönlichen Bedürfnissen auszurichten. Bereits in der Anfangsphase der Programmierung drängte sich dann eine dritte Funktionalität geradezu auf: Extrahieren, Bearbeiten und Archivieren von Bitmaps.

Zunächst war geplant, als Ersatz für den nicht komfortablen Bildeditor von Delphi eine Eigenlösung zu schreiben und diese um eine zusätzliche Icon-Datenbank zu erweitern. Nachdem ich aber ein recht passables Programm im Internet gefunden habe, das beide Funktionalitäten bereits bietet und zudem recht kostengünstig ist, wurde dieser Gedanke (vorerst) aufgegeben. Stattdessen wurde die Möglichkeit geschaffen, direkt aus rzMagnifier derartige Programme aufzurufen und einen markierten Bitmap-Ausschnitt direkt an ein externes Programm zu übergeben.

Das für ein derartiges Tool relativ große Programmfenster führt allerdings zu einer gewissen Einschränkung: Für Computer mit kleinem Monitor (z.B. Notebooks) ist rzMagnifier weniger gut geeignet; die Vorteile des Programms nutzt man vor allem auf großen Monitoren bzw. Systemen mit mehreren Monitoren!

Systemanforderungen
Das Programm ist auf einem Windows XP System programmiert und seit einiger Zeit auf einem Notebook Athlon XP, 1 GB RAM (Windows XP Home, SP2) und einer Bildschirmauflösung von 1024x768 sowie einem PC mit Athlon 64x2, 2 GB RAM (Windows XP Media Center Edition, SP2) und 2 Monitoren mit Auflösungen von 1400x1050 problemlos in Betrieb. Minimalanforderungen sind nicht bekannt; das Programm sollte aber auch auf älteren Systemen grundsätzlich lauffähig sein. Da Alphablending in früheren Windowsversionen nicht zur Verfügung steht, kann die sichtbare Bildschirmlupe nur in Windows 2000 und neueren Versionen des Betriebssystems verwendet werden. Ein kurzer Test unter Windows 2000 verlief ohne Probleme. Unter Vista konnte das Programm von mir nicht getestet werden, laut Angabe eines Anwenders ist rzMagnifier auch unter VISTA einsetzbar.

Installation
Eine Installation des Programms ist nicht erforderlich. Um rzMagnifier benutzen zu können, muss vom Anwender im Normalfall lediglich ein Programmverzeichnis an beliebigem Ort angelegt und die gelieferten Dateien in dieses Verzeichnis kopiert werden. Bei Bedarf ist eine Programmverknüpfung anzulegen - weitere Schritte sind nicht erforderlich. Im Programmverzeichnis benötigt das Programm volle Schreibrechte, da hier auch Initialisierungsdaten gespeichert werden. Hat das Programm auf dieses Verzeichnis keinen Schreibzugriff, wird vom Programm alternativ unterhalb des Verzeichnis "APPDATA" ein Datenverzeichnis angelegt und alle Daten dort gespeichert. Weitergehende Informationen finden sich in der Hilfedatei.

Quelltext
Der Quelltext wird an dieser Stelle vorerst nicht zum anonymen Zugriff veröffentlicht. Das hat mehrere Gründe. Hauptgrund ist, dass ich damit leider schlechte Erfahrungen gemacht habe. Ein weiterer Grund ist, dass, obwohl alle Funktionalitäten nach meinen Tests bereits sichergestellt sind, an zentraler Stelle noch "nachgearbeitet" werden muss. Wer Interesse hat, möge mich bitte persönlich ansprechen.

Hilfetext
Obwohl dieses Tool in erster Linie für den Eigengebrauch programmiert ist, habe ich einen aus meiner Sicht recht umfangreichen Hilfetext erstellt. In erster Linie wollte ich einmal testen, welchen Arbeitsumfang die Erstellung einer Hilfe macht. Außerdem war es interessant festzustellen, dass Programmieren und Hilfetexterstellung eine Reihe von Interaktionen auslösten, d.h. während der Formulierung der Hilfe wurden Widersprüche und Mängel der Programmlogik offenbar, die mir vermutlich sonst nicht aufgefallen wären.

Tja, das sollte an dieser Stelle erst einmal genug sein! Zum Download werden ein Screenshot sowie die Programm- und Hilfedatei bereitgestellt.

// edit 24.06.2008
Reaktion auf Hinweis von "extrem": Programm reagiert nun auf Windows-Versionen < Win2000. Alle Alphablend-Funktionalitäten werden ggf. automatisch deaktiviert. Neue Version des Programms und der Hilfedatei bereitgestellt.

// edit 24.06.2008 - 2
Sorry! Das war heute morgen ein wenig zu schnell. Durch die Anpassung hatte sich ein kleiner Fehler eingeschlichen (sichtbare Bildschirmlupe on/off). Hier jetzt die korrigierte Version.

// edit 30.07.2008
Version 1.1 - Zusätzliche optionale Abfrage vor Beenden des Programms, Anpassung der Konfiguration und Hilfedatei, Korrektur von Textfehlern in INFO und HILFE

// edit 09.08.2008
Version 1.2 - Fehlerkorrekturen und Erweiterungen, Details siehe hier

// edit 09.11.2008
Version 1.3 - Fehlerkorrekturen und Erweiterungen, Details siehe hier
Miniaturansicht angehängter Grafiken
screenshot_2008.11.09_173.jpg  
Angehängte Dateien
Dateityp: zip pgm_help_2008.11.09_987.zip (561,9 KB, 98x aufgerufen)
 
taaktaak

 
Delphi 7 Professional
 
#41
  Alt 9. Aug 2008, 14:56
Moin, Moin.

Das Programm rzMagnifier wird in aktueller Version 1.2 hier (Post#1) zum Download bereitgestellt. Neuerungen/Korrekturen sind:
  • Auch wenn ein anderes Fenster OnTop ist, wird das Scan-Rechteck jetzt immer oberhalb dieses Fensters dargestellt.
  • Auch wenn rzMagnifier während des Scans den Fokus verliert, sind jetzt alle Tastenfunktionen verfügbar.
  • Der Scan kann jetzt auch mit der Escape-Taste beendet werden.
  • Die Menüleiste hat einen zusätzlichen Button "Stay on top" erhalten. Das Umschalten der Betriebsart sollte aber nur in Ausnahmefällen genutzt werden, da dadurch sogar Fehlermeldungen des Betriebssystems ggf. nicht sichtbar sind, wenn das Programmfenster an dieser Position placiert ist.
  • Im Konfigurationsfenster wird mit dem Button "Save configuration" das Fenster nicht geschlossen.
  • Der Anzeigewechsel des Textes im Info-Fenster erfolgt jetzt langsamer.
  • Fehler in der Verriegelung des Alphablends für Windowsversionen < Win2000 beseitigt.
  • In den Vergrößerungsstufen 1..9 kann jetzt mit Hilfe des Maus ein Zoom-Bereich gezielt markiert werden, der dann in der größtmöglichen Vergrößerung dargestellt wird.
  • Korrektur und Ergänzung der HILFE.
Offene Punkte sind:
  • Wenn rzMagnifier während des Scans mit sichtbarer Bildschirmlupe den Fokus verliert, ist das Maus-Rollrad zur Veränderung der Vergrößerungsstufe nicht verfügbar. Da der Cursor in diesem Modus aber auf die Bildschirmlupe fixiert ist, genügt ein einfacher Mausklick um den Fokus wieder zurückzuholen, danach kann die Vergrößerung wieder mit dem Maus-Rollrad eingestellt werden.
  • Die Anzeige des gescannten Bildes unter VISTA bei aktiviertem Aero-Glass-Effekt ist fehlerhaft (d.h. die Transparenzfarbe wird eingescannt) - da ich derzeit nicht unter VISTA entwickeln kann, sehe ich keine kurzfristige Lösungsmöglichkeit.
  • Wird bei aktivierter Bildschirmlupe der Taskmanager aufgerufen und dann abgebrochen, kommt eine Fehlermeldung - diesen Fehler kann ich leider nicht reproduzieren.
Hinweise:
  • Für das Programm wurde eine (aus meiner Sicht) umfangreiche Hilfe erstellt. Auch wenn lt. Aussage in einigen Posts der rzMagnifier intuitiv zu bedienen ist, werden in den Texten diverse ergänzende Hinweise über Funktionalitäten gegeben, die sonst vielleicht unentdeckt bleiben - also bitte 'mal hineinschauen.
  • Da ich mich weder als professioneller Programmierer noch versierter Hilfetext-Autor bezeichnen kann, bin ich auch sehr an kritischen Hinweisen zum Hilfetext interessiert. Da dies meine erste umfangreiche Hilfe ist, gibt es bestimmt am Layout sowie der Struktur und Textverständlichkeit einiges zu verbessern.
An dieser Stelle noch mein Dank an alle, die durch ihre Hinweise zur Optimierung des Programms beitragen. Es gibt bestimmt noch weitere Verbesserungsmöglichkeiten, also bitte weiter so...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

 
Delphi 10.3 Rio
 
#42
  Alt 9. Aug 2008, 15:27
Kann es sein das das jetzt ein fehler ist.

Das Fenster hat ja die Farbe "Rot" wenn ich jetzt eine Farbe picken will hat zb weis ja einen leichten Rotstisch und somit ist das ergebnis von weis ja verfälcht
  Mit Zitat antworten Zitat
taaktaak

 
Delphi 7 Professional
 
#43
  Alt 9. Aug 2008, 15:31
Moin, Moin.
Welches Fenster ist rot? Die Bildschirmlupe? An der Bildübertragung habe ich nichts verändert! Arbeitest du mit VISTA und Aero-Glass-Effekt?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

 
Delphi 10.3 Rio
 
#44
  Alt 9. Aug 2008, 15:34
ja arbeite ich im Anhang mal ein Bild wollte weiss picken
Miniaturansicht angehängter Grafiken
unbenannt_806.jpg  
  Mit Zitat antworten Zitat
taaktaak

 
Delphi 7 Professional
 
#45
  Alt 9. Aug 2008, 15:40
Ja, das ist ein bekannter (blöder) Fehler. Hatte ich aber auch kurz in meiner Ankündigung beschrieben:
  • Die Anzeige des gescannten Bildes unter VISTA bei aktiviertem Aero-Glass-Effekt ist fehlerhaft (d.h. die Transparenzfarbe wird eingescannt) - da ich derzeit nicht unter VISTA entwickeln kann, sehe ich keine kurzfristige Lösungsmöglichkeit
Bemühe mich gerade ein VISTA zu bekommen, werde das dann mal auf einer VM installieren und eine Lösung suchen. Aber, wie schon gesagt, das wird noch etwas dauern - sorry.
Ralph
  Mit Zitat antworten Zitat
extrem
 
#46
  Alt 9. Aug 2008, 23:06
Zitat von taaktaak:
...
Bisher habe ich aber noch keine Informationen zu folgenden Fragen gefunden...
  • Ist der VISTA "Aero-Glass-Effect" aktiviert?
...
Hallo

versuche es doch mal mit der API Funktion DwmIsCompositionEnabled.
Delphi-Quellcode:
function IsCompositionEnabled: boolean;
var
  DwmIsCompositionEnabled : function(pfEnabled: PBoolean): HRESULT; stdcall;
  hDwmapi : THandle;
  Enabled: BOOL;
begin
  Result := false;
  if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion >= 6) then
  begin
    hDwmapi := LoadLibrary('dwmapi.dll');
    if hDwmapi <> 0 then
      try
        DwmIsCompositionEnabled := GetProcAddress(hDwmapi, 'DwmIsCompositionEnabled');
        if Assigned(DwmIsCompositionEnabled) then
          Result:= (DwmIsCompositionEnabled(@Enabled) = S_OK) and Enabled;
      finally
        FreeLibrary(hDwmapi);
      end;
  end;
end;
  Mit Zitat antworten Zitat
taaktaak

 
Delphi 7 Professional
 
#47
  Alt 10. Aug 2008, 14:13
Moin, Moin "extrem" - das ist ja suuuper!
Vielen Dank, gerade an diesem Punkt war ich nicht weiter gekommen. Vermutlich bin ich der Lösung hier schon näher gekommen.
Ralph
  Mit Zitat antworten Zitat
taaktaak

 
Delphi 7 Professional
 
#48
  Alt 9. Nov 2008, 18:41
Moin, Moin.

Das Programm rzMagnifier wird in aktueller Version 1.3 zum Download im ersten Beitrag bereitgestellt. Das Programm wird von mir selbst recht häufig verwendet, so haben sich im praktischen Arbeitseinsatz der letzten Wochen eine Vielzahl von Neuerungen/Korrekturen ergeben, die in diesem Release umgesetzt werden konnten. Auch wenn es mir leider noch nicht gelungen ist die fehlerhafte Bildübertragung unter VISTA zu korrigieren, ist ein Update sehr empfehlenswert.

Neuerungen/Korrekturen:
  • Die Dateidialoge werden jetzt immer korrekt positioniert - allerdings musste dafür die Möglichkeit, das Dialog-Fenster in der Größe zu verändern, abgestellt werden. Die korrekte Positionierung insbesondere auf Multi-Monitor-Systemen erscheint mir aber wichtiger.
  • Fehler bei der Positionierung einiger programminterner Dialoge und Hinweisfenster beseitigt.
  • Fehler in der Korrektur-Routine zur Gewährleistung der vollständigen Sichtbarkeit aller Dialoge und Fenster beseitigt.
  • Um auch bei kleinen Notebook-Bildschirmen besser mit dem Programm arbeiten zu können, werden jetzt zwei Fenstergrößen mit/ohne Farbwertanzeige zur Verfügung gestellt. Umschaltung mit Doppelklick in die Titelzeile des Fensters (Klickbereiche sind konfigurierbar). Außerdem konnte das Programmfenster bei gleichbleibender Funktionalität etwas verkleinert werden.
  • Diverse kleine Fehler in der Hilfe und den Hints beseitigt.
  • Korrektur der Programmreaktion, wenn die CHM-Hilfedatei nicht gefunden wurde.
  • Die Hilfe wurde um eine spezielle Befehls-Übersicht erweitert. Dieses spezielle Hilfefenster kann auch direkt mit Rechtsklick auf den Hilfe-Button aufgerufen werden - zumindest diese Hilfeseite sollte jeder 'mal angesehen haben!
  • Die verwendeten Schriftarten wurden vereinheitlicht.
  • Die optionale Abfrage nach Klick auf den Schließen-Button der Titelleiste hat jetzt die Aktionsmöglichkeiten "Beenden/Minimieren/Abbrechen".
  • Die INI-Dateien und internen Bitmap-Dateien werden jetzt grundsätzlich user- und maschinenabhängig angelegt. Somit stehen auch bei Start von USB-Stick immer individuelle Daten zur Verfügung. Vorhandene "alte" Dateien werden vom Programm automatisch konvertiert.
  • Um weitere Konfigurationsmöglichkeiten einfügen zu können (und künftig flexibler zu sein) erfolgt die Seitenauswahl im Konfigurationsfenster jetzt mittels Treeview und nicht mehr in Form eines PageControls.
  • Die Übertragung von Ausschnitten in die Zwischenablage war fehlerhaft und musste korrigiert werden. Ausschnitte können jetzt auch in Dateien gespeichert (und wieder geladen und angezeigt) werden. In beiden Fällen kann die Farbtiefe der zu übertragenen bzw. zu speichernden Bildausschnitte (bedingt) vom Anwender bestimmt werden.
  • Während der Programmlaufzeit verwenden die Datei-Dialoge jetzt immer das zuletzt verwendete Verzeichnis. Nach Programmstart wird grundsätzlich zunächst das Standard-Verzeichnis ausgewählt.
  • Wird in den Save-Dialogen der Name einer bestehenden Datei angegeben, erfolgt nun eine zusätzliche Abfrage, ob die Datei tatsächlich überschrieben werden soll.
  • VISTA: Die korrekte Bildübertragung bei aktiviertem Aero-Glass-Effekt konnte ich immer noch nicht realisieren, allerdings wird das letzte gescannte Bild korrekt übernommen - somit kann nach Abschluss des Scans der farbgetreue Bildinhalt ausgewertet werden.
  • VISTA: Der optionale Rand um die sichtbare Bildschirmlupe wird jetzt auch bei Größenänderung der Lupe korrekt gezeichnet.
  • VISTA: Das bei Bewegung der sichtbaren Bildschirmlupe heftige Flackern des Programmfensters wurde beseitigt - leider mit dem Effekt, dass die Titelzeile des Programmfensters jetzt ein deaktiviertes Fenster signalisiert.
  • VISTA: Die Untergrenze der Scan-Intervallen wurde auf 60ms heraufgesetzt, da bei kürzeren Intervallen die Größenänderung mit dem Maus-Scrollrad nicht einwandfrei funktionierte.
  • VISTA: Interne Umstellung der Hilfeaufrufe, da die Hilfe vorher nur bei zusätzlicher Installation des "alten" Hilfesystems aufgerufen werden konnte.
  • VISTA: Korrektur der internen Routinen zur Bestimmung der zu verwendenden Verzeichnisse.
Offene Punkte:
  • Die Hilfslinien werden temporär ausgeschaltet, da ein notwendiger Refresh der Anzeige nicht unter allen Rahmenbedingungen gelingt.
  • Erhält während des Scanvorgangs ein anderes Programm den Fokus, kann die Größe der sichtbaren Bildschirmlupe nicht mit dem Maus-Rollrad verändert werden.
  • Die Anzeige des gescannten Bildes unter VISTA bei aktiviertem Aero-Glass-Effekt ist fehlerhaft, d.h. Transparenzfarbe und Lupenrahmen werden ebenfalls übertragen.
  • Sichtbare Hilfslinien sollen (so weit darstellbar) auch nach Wechsel der Vergrößerungsstufe den gleichen Ausschnitt markieren.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 21:00 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