Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farbe per maus ermitteln und dann Punkt machen (https://www.delphipraxis.net/112509-farbe-per-maus-ermitteln-und-dann-punkt-machen.html)

Cloudwalk 22. Apr 2008 17:15


Farbe per maus ermitteln und dann Punkt machen
 
Hallo. ich will per Mausklick ermitteln, ob eine Linie Blau ist und wenn ja, dann soll man dort einen Punkt machen. meine vorüberlegungen sind wie folgt:

Delphi-Quellcode:
procedure TForm1.mousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; Xm, Ym: Integer);
var s1c,s2c :=TColor; wid,x1,x2,y1,y2:integer;
begin
  if Bitmap.Canvas.Pixels[xm,ym]<> clblue then
    begin
      showmessage('Du musst auf der Startlinie Starten');
    end
  else
    if wid = 1 then
      begin
        x1:=xm;
        y1:=ym;
        Image.Canvas.Pen.width:=4;
        Image.Canvas.Pixels[x1,y1]:=s1c;
      end
    else
      begin
        x2:=xm;
        y2:=ym;
        Image.Canvas.Pen.width:=4;
        Image.Canvas.Pixels[x1,y1]:=s2c;
  end;
end;
es erscheint immer die Meldung 'Du musst auf der Startlinie Starten' also denk ich, dass irgendwas mit der ermittlung des Pixels zu tuen hat.

es wäre toll, wenn ihr mir helfen könntet.

MfG Cloud

Die Muhkuh 22. Apr 2008 17:20

Re: Farbe per maus ermitteln und dann Punkt machen
 
Hi,

ist die Farbe, die Du anklickst auch wirklich clBlue? Die kleinste Abweichung und es funktioniert nicht mehr.

[edit] Wie soll das ganze eig. funktionieren? Wo gibst Du einen Wert für wid an?
Was willst Du mit dem Konstrukt:
Delphi-Quellcode:
var s1c,s2c :=TColor;
erreichen?

Warum hier der Weg über extra Variablen:

Delphi-Quellcode:
x1:=xm;
y1:=ym;
Image.Canvas.Pen.width:=4;
Image.Canvas.Pixels[x1,y1]:=s1c;
kannst doch direkt auf xm und ym zugreifen.

DeddyH 22. Apr 2008 17:21

Re: Farbe per maus ermitteln und dann Punkt machen
 
Was ist denn Bitmap und wo "liegt" die?

[edit] Außerdem initialisierst Du Deine Variablen nicht (alle) [/edit]

Cloudwalk 22. Apr 2008 17:28

Re: Farbe per maus ermitteln und dann Punkt machen
 
hab euch nur nen kleinen Teil des gesamten codes gegeben :P
und euch dann halt die Variabeln da deklariert

also x1:=xm
y1:=ym

sind die koordinaten des späteren punkts der dann noch bewegt wird.

Bitmap ist das Bild das geladen wird und dann auch die Fläche auf der alles statt findet in nem image

und jetzt mal zu ob das wirklich blau ist ich hab im Zeichen Programm hexcode 0000FF angegeben ist doch Blau...?

DeddyH 22. Apr 2008 17:32

Re: Farbe per maus ermitteln und dann Punkt machen
 
Zitat:

Zitat von Cloudwalk
Bitmap ist das Bild das geladen wird

Wohin? Auf den Canvas des Forms?

Cloudwalk 22. Apr 2008 17:37

Re: Farbe per maus ermitteln und dann Punkt machen
 
in ein Image wirds geladen

und ich glaub ich habs auch also ich war nur zu doof zu treffen :D

aber jetzt hab ich ne weiter frage kann man in einer datei auch variabeln abspeichern welche dann beim laden mit geladen werden?

DeddyH 22. Apr 2008 17:38

Re: Farbe per maus ermitteln und dann Punkt machen
 
Neue Frage, neuer Thread bitte und: ja, natürlich.

Die Muhkuh 22. Apr 2008 17:39

Re: Farbe per maus ermitteln und dann Punkt machen
 
Zitat:

Zitat von Cloudwalk
aber jetzt hab ich ne weiter frage kann man in einer datei auch variabeln abspeichern welche dann beim laden mit geladen werden?

Hier im Forum suchenTIniFile

dominikkv 22. Apr 2008 17:45

Re: Farbe per maus ermitteln und dann Punkt machen
 
Ist das das MouseDown der Form?
Wenn ja beziehen sich die Angaben X und Y relativ zum linken und oberen Rand der Form, nicht des Images! Darum kannst du die auch nicht direkt als Pixel[X, Y] verwenden, sonder musst noch den Offset des Images einrechnen (Pixel[X + Left, Y + Top])


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz