AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi problem mit GetDC bzw. AColor
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit GetDC bzw. AColor

Ein Thema von rhodan · begonnen am 6. Feb 2011 · letzter Beitrag vom 9. Feb 2011
Antwort Antwort
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#1

problem mit GetDC bzw. AColor

  Alt 6. Feb 2011, 20:54
hallo,

kleines problem.
wenn ich den befehl GetPixel nur einmal ausführe hier, wird die farbe auf dem screen richtig erkannt, asuche ich allerdings auch noch nach der ZWEITEN koordinate, wird selbst die erste nicht richtig erkannt (sprich das panel färbt sich nicht blau).

muss ich jedes mal bevor ich ne neue koordinate absuche den DC neu holen? oder liegt das problem bei AColor und ich muss die erst releasen bevor ich die zweite koordinate suche oO ?

Code:
procedure TForm1.Button2Click(Sender: TObject);
var
dc:hdc;
AColor : Array[1..4] of Byte;
hwnd:hwnd;
...

begin
...

   DC := GetDC(hwnd);

  //blau

  DWord(AColor) := GetPixel(dc,410,412);

if (AColor[1] > 0) and (AColor[1] < 15)and (AColor[2] > 35) and (AColor[2] < 60) and (AColor[3] > 240) then
  begin
  panel1.color :=clblue;
  end;


 
  DWord(AColor) := GetPixel(dc,460,412);
  if (AColor[1] > 0) and (AColor[1] < 15)and (AColor[2] > 35) and (AColor[2] < 60) and (AColor[3] > 240) then
  begin
  panel2.color :=clblue;
  end;

danke
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: problem mit GetDC bzw. AColor

  Alt 6. Feb 2011, 21:39
Der DC wird durch GetPixel nicht ungültig...hast Du mal den Rückgabewert auf CLR_INVALID überprüft $FFFFFFFF, gegf. passen die Koordinaten nicht.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#3

AW: problem mit GetDC bzw. AColor

  Alt 6. Feb 2011, 22:48
die koordinaten passen. wenn ich
Code:
  DC := GetDC(game_hwnd);

  //blau

  begin
  DWord(AColor) := GetPixel(dc,460,412);
  if (AColor[1] > 0) and (AColor[1] < 70)and (AColor[2] > 15) and (AColor[2] < 60) and (AColor[3] > 240) then

  panel1.color :=clblue;
  end;
alleine laufen lasse funktioniert es, und wenn ich stattdessen (andere koordinaten)

Code:
 DC := GetDC(game_hwnd);

  //blau

  begin
  DWord(AColor) := GetPixel(dc,410,412);
  if (AColor[1] > 0) and (AColor[1] < 70)and (AColor[2] > 15) and (AColor[2] < 60) and (AColor[3] > 240) then

  panel1.color :=clblue;
  end;
laufen lasse funktioniert es auch, nur wenn die pixelabfrage wie im ersten post NACHeinander läuft kommt murks raus - es tut sich nämlich gar nichts, bzw. die panels werden nicht blau gefärbt auch wenn die koordinaten diese farbe haben

Geändert von rhodan ( 6. Feb 2011 um 22:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: problem mit GetDC bzw. AColor

  Alt 6. Feb 2011, 23:46
WAS kommt den raus?
Lass doch einfach anzeigen. Wenn es gleiche Werte sind oder die Werte sich nicht verändert haben kannst du ja auf ein Fehler schließen!
Übrigens, das Handle hat den Namen "~game~" - kann es nicht sein, dass sich die Farbe an diesem Punkt im Spielfenster verändert?
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: problem mit GetDC bzw. AColor

  Alt 7. Feb 2011, 09:03
Ist das angesprochene Fenster auch sichtbar und die abgefragte Position nicht verdeckt oder außerhalb des auf dem Monitor dargestellten Bereichs?

Stellt sich noch die Frage, ob das wirklich das richtige Fensterhandle ist. Buttons haben eventuell ein eigenes Handel.
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#6

AW: problem mit GetDC bzw. AColor

  Alt 7. Feb 2011, 20:24
hmm...

ne da ist nichts verdeckt, ich hab das selbe gerade nochmal mit nem großen bild probiert was einfach in 2 verschiedene farben in der mitte geteilt ist..

würdet ihr auf dem selben weg 2 pixelkoordinaten suchen nacheinander? ich vermute eher das ich einfach einen kleinen fehler im code habe..und AColor wird auch "reseted" bei der zweiten getpixel abfrage? vielleicht hab ich den code einfach doof geschrieben bzw muss da nur was umstellen?
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#7

AW: problem mit GetDC bzw. AColor

  Alt 9. Feb 2011, 20:10
natürlich lag das problem bei mir, code war ok.
danke trotzdem.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:01 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