Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pixel Scannen (https://www.delphipraxis.net/11169-pixel-scannen.html)

Wadim 1. Nov 2003 11:20


Pixel Scannen
 
hi,

hab folgendes problem, mein quellcode:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var dc :hdc;
pos1,pos2,a,b,c,f1,f2 : integer;
begin
a := strtoint (edit1.text);
b := strtoint (edit2.text);
c := strtoint (edit3.text);
pos1 := strtoint (edit4.Text);
pos2 := strtoint (edit5.Text);
for f1 := a to b do begin
for f2 := a to c do begin
dc := getdc (0);
Color := getpixel(dc,f1,f2);
releasedc (0,dc);
if edit6.text =''
  then begin
  edit6.text := '$00000000';
  end;
  label1.Caption := colortostring (color);
if color = stringtocolor (edit6.text)
  then begin
  edit6.Text := '010';
  end
  else
  edit6.text := '000';
  end;
  end;
  end;
warum zeigt er mir immer die 000 an- dabei gebe ich auch einen colorcode an der in diesem bereich ich???

mir ist aufgefallen das wenn ich bei dieser stelle:

Delphi-Quellcode:
if color = stringtocolor (edit6.text)
zb das eingeben:

Delphi-Quellcode:
if color = $00048AE8
dann geht das- warum ist das so, kann mir da einer helfen???

danke

himitsu 1. Nov 2003 12:51

Re: Pixel Scannen
 
Versuch das mal so:
Delphi-Quellcode:
if (color and $ffffff) = (stringtocolor(edit6.text) and $ffffff) then
siehe OH - TColor:
Zitat:

Hat das höchstwertige Byte den Wert Null, erhalten Sie eine Farbe, die derjenigen in der Systempalette am ähnlichsten ist. Ist das höchstwertige Byte Eins ($01 bzw. 0x01), ergibt das eine Farbe, die derjenigen in der aktiven Palette am ähnlichsten ist. Wenn Sie das höchstwertige Byte auf Zwei ($02 bzw. 0x02) setzen, wird der Wert an die ähnlichste Farbe in der logischen Palette des aktuellen Gerätekontexts angepasst.

Wadim 1. Nov 2003 13:08

Re: Pixel Scannen
 
Zitat:

Zitat von himitsu
Versuch das mal so:
Delphi-Quellcode:
if (color and $ffffff) = (stringtocolor(edit6.text) and $ffffff) then
siehe OH - TColor:
Zitat:

Hat das höchstwertige Byte den Wert Null, erhalten Sie eine Farbe, die derjenigen in der Systempalette am ähnlichsten ist. Ist das höchstwertige Byte Eins ($01 bzw. 0x01), ergibt das eine Farbe, die derjenigen in der aktiven Palette am ähnlichsten ist. Wenn Sie das höchstwertige Byte auf Zwei ($02 bzw. 0x02) setzen, wird der Wert an die ähnlichste Farbe in der logischen Palette des aktuellen Gerätekontexts angepasst.

leider geht das auch nicht :(

himitsu 1. Nov 2003 13:27

Re: Pixel Scannen
 
Willst du zufällig testen ob in einem bestimmten Bereich dieser angegebene Farbwert vorhanden ist?

Es ist schon verständlich, das fast immer Edit6.Text = '000' ist.
Wenn das letzte getestete Pixel (edit2.text:edit3.text) nicht mit dem Farbwert übereinstimmt, ist das immer '000'. Dieses Pixel wird als letztes abgefragt und legt daher auch das ergebnis fest.

Wadim 1. Nov 2003 13:30

Re: Pixel Scannen
 
Zitat:

Zitat von himitsu
Willst du zufällig testen ob in einem bestimmten Bereich dieser angegebene Farbwert vorhanden ist?

Es ist schon verständlich, das fast immer Edit6.Text = '000' ist.
Wenn das letzte getestete Pixel (edit2.text:edit3.text) nicht mit dem Farbwert übereinstimmt, ist das immer '000'. Dieses Pixel wird als letztes abgefragt und legt daher auch das ergebnis fest.

ja aber sogar wenn ich den letzten wert eingebe macht er 000 - und wenn ich dort gleich einen code eingebe dann macht er es richtig- ich weiß auch nicht weiter aber egal ich habe mir schon was anderes überlegt

danke

Sharky 1. Nov 2003 16:57

Re: Pixel Scannen
 
Hai Wadim,

ich habe mir deinen Code jetzt nicht durchgelesen.
Warum? Es wäre einfacher eine Hilfe zu geben wenn Du genau sagst was Du machen möchtest.

In deinem letzen Posting hast Du geschrieben das Du wohl eine Lösung für dein Problem gefunden hast.
Teile diese Lösung doch bitte hier mit. Dann kann jeder der die Suche benutzt daran teilhaben.

Danke :-)

Wadim 1. Nov 2003 17:04

Re: Pixel Scannen
 
Zitat:

Zitat von Sharky
Hai Wadim,

ich habe mir deinen Code jetzt nicht durchgelesen.
Warum? Es wäre einfacher eine Hilfe zu geben wenn Du genau sagst was Du machen möchtest.

In deinem letzen Posting hast Du geschrieben das Du wohl eine Lösung für dein Problem gefunden hast.
Teile diese Lösung doch bitte hier mit. Dann kann jeder der die Suche benutzt daran teilhaben.

Danke :-)

die lösung ist einfach die das ich nur 5 verschiedene farbencode bräuchte- die wollte ich ja per edittext eingeben- aber da das nicht ging hab ich einfach 5 verschiedene befehle geprogge- also das was ganz oben steht 5x und bei jedem einen anderen farbcode.

und per speedbutton schalte ich zwischen den verschiedenen farbcode- das wars eigentlich, ist zwar nicht so wie ich es wollte aber das hat die selbe wirkung.

das wars schon :wink:

mfg wadim


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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