Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Einzelne Pixel setzen/Lesen

Einzelne Pixel setzen/Lesen
20.02.2008 12:49:19
Christian
Hallo, bin neu hier im Forum, habe es aber ohne Registrierung schon oft genutzt! Also schon mal vielen Dank an alle, ihr habt mir oft geholfen :-)
Nur bei einer Sache bin ich trotz intensiver Forum und Google-Recherche nie weitergekommen:
Gibt es einen Weg einzelne Pixel in einem Control oder UserForm zu setzen und auszulesen?
In vielen Basic-Dialekten gibt es PSET(x,y), c zum setzen eines Punktes. c = POINT(x,y) zum lesen eines Punktes.
Gibt es soetwas auch in VBA?
Es sind schon viele eigene Versuche ins Land gegangen, aber ich komme nicht weiter!
Ziel wäre es z.B. ein Image (.Picture) Pixelweise auszulesen und ggf. zu modifizieren!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Pixel setzen/Lesen
20.02.2008 14:30:00
Christian
Ich merke schon... ist anscheinend kein Fachgebiert hiert ;-)

AW: Einzelne Pixel setzen/Lesen
20.02.2008 14:55:22
Knut
Hi,
das geht mangels geeignetem control in VBA gar nicht.
mfg Knut

AW: Einzelne Pixel setzen/Lesen
20.02.2008 20:06:35
Volti
Hallo Christian,
da müsstest Du, wenn du das unbedingt brauchst, die Windows-API bemühen.
Dort werden Funktionen wie
FUNCTION SetPixel LIB "GDI32.DLL" ALIAS "SetPixel" (BYVAL hdc AS DWORD, BYVAL x AS LONG, BYVAL y AS LONG, BYVAL crColor AS DWORD) AS DWORD
FUNCTION GetPixel LIB "GDI32.DLL" ALIAS "GetPixel" (BYVAL hdc AS DWORD, BYVAL x AS LONG, BYVAL y AS LONG) AS DWORD
angeboten.
Allerdings brauchst Du hierfür zunächst das handle einer Zeichenfläche (hDC) auf der Du die Aktion durchführen willst.
Ermittlung zum Beispiel so:
FUNCTION GetDC LIB "USER32.DLL" ALIAS "GetDC" (BYVAL hWnd AS DWORD) AS DWORD
Hierfür brauchst Du dann wieder das Fensterhandle, in dem Du die Aktion machen willst.
Zum Beispiel so:
FUNCTION FindWindow LIB "USER32.DLL" ALIAS "FindWindowA" (lpClassName AS ASCIIZ, lpWindowName AS ASCIIZ) AS LONG
oder so
FUNCTION GetForegroundWindow LIB "USER32.DLL" ALIAS "GetForegroundWindow" () AS DWORD
usw.
Achtung: Die o.a. declares sind nicht von VB oder VBA sondern von Powerbasic. Die anderen habe ich gerade nicht zur Hand.
Am besten suchst Du die angegebenen Funktionen mal über Google und schaust Dir die angebotenen Links zu "ActiveVB" an. Da wirst Du bestimmt fündig werden.
ungetestetes Beispiel:
hWnd = GetForegroundWindow
hDC = GetDC(hWnd)
Farbe = GetPixel(hDC, xPos, yPos)
viele Grüße
Karl-Heinz

Anzeige
AW: Einzelne Pixel setzen/Lesen
20.02.2008 20:13:54
Volti
Hi,
hier noch ein Nachtrag.
Hatte überlesen, das Du nicht einfach von einem Fenster sondern von einem Control das Pixel lesen/setzen willst. Geht grundsätzlich genauso. Schwierig wird's nur das handle des Controls (Childwindow) zu bekommen. Auch dafür gibt es jede Menge API-Funktionen, aber da wird es dann schon aufwändig.........
Gruß
KHV

AW: Einzelne Pixel setzen/Lesen
20.02.2008 20:56:57
Nepumuk
Hallo Karl-Heinz,
das kannst du vergessen. Die Controls der FM20.dll sind keine Fenster sondern eingebettete Objekte ohne Handle. Damit auch ohne Device Context und ohne den kommst du an die Pixel nicht ran.
Gruß
Nepumuk

Anzeige
AW: Einzelne Pixel setzen/Lesen
21.02.2008 11:26:00
Christian
Na ok, dann knick ich das vorhaben mal.. Trotzdem vielen Dank an alle!

VBA
21.02.2008 11:50:00
haris
hallo,
habe folgendes problem:
0-0041412-0
41412
0-0160691-5
160691-5
0-1241794-2
1241794-2
1-0480698-0
1-480698-0
9-0929342-1
9-923342-1
8-1419154-1
8-1418154-1
0-1254879-0
125479
gibt es eine möglichkeit via wenn formel bzw. VBA aus den nummern, die nuller so heraus-zu filtern das nur das untere format übrig bleibt?!?

AW: VBA
21.02.2008 18:09:00
Olaf
Hi,
fasch platziiert, Frage neu stellen.
mfg Olaf

AW: VBA
22.02.2008 07:01:56
harris
wie meinst du falsch plaziert?

Anzeige
AW: Einzelne Pixel setzen/Lesen
21.02.2008 21:31:10
Volti
Hallo Nepumuk,
nachdem ich nun ein wenig mit meinem selfmade-Pixel- u. Objektgrabber mit der Maus über meine Excelsheets gefahren bin, muss ich Dir leider recht geben. Da tut sich nix innerhalb eines Sheets mit eingebetteten Objekten.
viele Grüße
Karl-Heinz

AW: Einzelne Pixel setzen/Lesen
22.02.2008 09:25:04
Nepumuk
Hallo Karl-Heinz,
wenn du das Bild direkt ins Userform lädst (das hat ja auch eine Picture-Eigenschaft) dann würde es gehen.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige