Hallo,
ich möchte alle Bilder aus einem Verzeichnis in eine Seitenleiste laden (vergleiche Screenshot).
[Blockierte Grafik: http://img5.fotos-hochladen.net/thumbnail/tabellebilderp16mx43tzg_thumb.jpg]
Ein Einzelbild zu laden und anzuzeigen habe ich raustüffeln können ... nach über 5 Stunden und Anlehnung eines Scripts von autobert (glaube ich) - harte Nuss, erst sehr spät gefunden.
#include <GDIPlus.au3> ; für Bildanzeige
#include "GUICtrlPic.au3"
$idfrmMain = GUICreate("JPGs sortieren ", 924, 550, -1, -1, -1, $WS_EX_ACCEPTFILES)
GUISetState()
Global $Position_x = 5
Global $Position_y = 5
Global $counter = 0
#comments-start
Daraus müsste eine Schleife werden, die alle Bilder einzes Verzeichnisses lädt
geht über
$a_DateiListe = _FileListToArray ( $Verzeichnis_Bilder , $Filter_Bilder )
#comments-end
$Pfad_zum_Bild = @ScriptDir & "\k-1.jpg"
_ShowPic($Pfad_zum_Bild )
$Pfad_zum_Bild = @ScriptDir & "\k-2.jpg"
_ShowPic($Pfad_zum_Bild )
While 1
Sleep (10) ; kurze Pause
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _ShowPic ( $Pfad_zum_Bild )
_GDIPlus_Startup () ; Initialisiert (startet) Microsoft Windows GDI+
Local $handle_Bild = _GDIPlus_ImageLoadFromFile($Pfad_zum_Bild) ; Erstellt ein Bild-Objekt basierend auf einer Datei
Local $iX = _GDIPlus_ImageGetWidth($handle_Bild) ; Ermittelt die Bildbreite
Local $iY = _GDIPlus_ImageGetHeight($handle_Bild) ; Ermittelt die Bildhöhe
_GDIPlus_ImageDispose($handle_Bild) ; Gibt das Bild-Objekt frei (# was bedeutet das?)
_GDIPlus_Shutdown() ; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
$Position_x = ($counter * ( $iX / 2 )) + ($counter * 5) + 5 ; bei Bildern mit halber Größe ... mit Abstand
$hPic = _GUICtrlPic_Create ( $Pfad_zum_Bild, $Position_x , $Position_y , $iX / 2, $iY / 2, $SS_CENTERIMAGE , Default ) ; #include "GUICtrlPic.au3" ; Bild anzeigen
$counter = $counter + 1
EndFunc ;==>_ShowPic
Alles anzeigen
Per Drag and Drop sollen diese Fotos (unterschiedliche Anzahl pro Verzeichnis, daher z.B. in der rechten Seitenleisten in 2 oder 3 Spalten anzeigen.
Die Bildschirmoberfläche kann in Desktopgröße sein (braucht viel Platz).
4 Probleme sehe ich bei dieser Variante "Bilder zu sortieren" (sollen später in der Reihenfolge weiter bearbeitet werden).
(1) Wie erzeuge ich die Bilder in 2 Spalten und zeige diese dann in der rechten Spalte an?
(Gibt es eine bessere grundlegende Möglichkeit für die Bildanzeige als obiges Entwurfs-Script oder ist GDIPlus die erste Wahl?)
(2) Wie kann ich die Bilder per Drag / Drop von der Spalte in das Tabellenraster ziehen und wieder zurück in die Spalte?
Ein Bild, welches per Drag / Drop verschoben wurde, verschwindet von ehemaligen Platz und erscheint auf dem neuen Platz.
Kann man das auf einer Form unterbringen, oder sollte man dazu 2 Fenster verwenden (Tabelle und rechte SeitenSpalte)?
Das Screenshot verdeutlicht das recht gut (auch wenn die Bilder dort nur symbolisch zu sehen sind - Doubletten sind zwar auf dem Screenshot, sollen im fertigen Script natürlich nicht sein).
(3) Wie ermittle ich, wieviele Bilder in jeder Tabellenzeile zu sehen sind und wie kann ich die Dateinamen der Bilder einer Zeile speichern?
(4) Wie speichere ich den aktuellen Status der Sortierung, so dass dieser wieder geladen werden kann.
Hat jemand sowas schon mal gescriptet?
Danke