Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 19:42

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: An der Farbabfrage ist was Faul.
BeitragVerfasst: Mo Dez 31, 2007 02:14 
Offline
DGL Member

Registriert: So Apr 01, 2007 17:51
Beiträge: 42
Wohnort: Hamm/Westf.
Code:
  1. procedure TForm1.Mausposition(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  2. Var Maus_Pos_X,Maus_Pos_Y:Byte;
  3.     Color:Array[0..2]of byte;
  4.  
  5. begin
  6.   Maus_Pos_X:=X;
  7.   Maus_Pos_Y:=255-Y;
  8.   glReadPixels(Maus_Pos_X,Maus_Pos_Y,1,1,GL_RGB,GL_UNSIGNED_BYTE ,@Color[0]);
  9.   Form1.ColorLupe.Canvas.Brush.Color:=Color[0]+(Color[1]*256)+(Color[2]*256*256);
  10.   Form1.Colorlupe.Canvas.Rectangle(0,0,40,40);
  11.  
  12.   Form1.Colorlupe.Canvas.Brush.Color:=$ffffff;
  13.  
  14.   Form1.Colorlupe.Canvas.TextOut(42,0,'R:'+Inttostr(Color[0]));
  15.  
  16.   Form1.Colorlupe.Canvas.TextOut(42,13,'G:'+Inttostr(Color[1]));
  17.  
  18.   Form1.Colorlupe.Canvas.TextOut(42,26,'B:'+Inttostr(Color[2]));
  19.  
  20.  
  21.   end;


Die Farbe wird in Zeile 9 immer richtig dargestellt.
Nach der ersten Anzeige steht Anzeige 14 wie Angenagelt.
Zeile 16 + 18 zeigen dann Werte über Bytegröße an.

Ich schein ein Brett vorm Kopp zu haben,weiß jemand Rat ? :oops:

lg Gento


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 31, 2007 12:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Erstmal: Wieso speicherst du die Mausposition in einer Byte-Variable ab? Und was soll das 255-Y? Sinnvoller wäre es doch ClientHeight-Y zu verwenden, wenn du schon die Y-Achse umdrehen willst. Dann brauchst du auch Integer als Typ für die Mausposition und nicht Byte. Vielleicht hängts damit zusammen..

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 31, 2007 14:09 
Offline
DGL Member

Registriert: So Apr 01, 2007 17:51
Beiträge: 42
Wohnort: Hamm/Westf.
Nach Diversen Versuchen keine Verbesserung.

Code:
  1. procedure TForm1.Mausposition(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  2. Var Maus_Pos_X,Maus_Pos_Y:Integer;
  3.     Color:Array[0..2]of Byte;
  4.     R,G,B:Byte;
  5. begin
  6.  // If IM_IRQ=Drin then Exit;
  7.  // Im_IRQ:=Drin;
  8.   Maus_Pos_X:=X;
  9.   Maus_Pos_Y:=255-Y;
  10.   glReadPixels(Maus_Pos_X,Maus_Pos_Y,1,1,GL_RGB,GL_UNSIGNED_Byte,@Color[0]);
  11.   R:=Color[0];
  12.   G:=Color[1];
  13.   B:=Color[2];
  14.   Form1.ColorLupe.Canvas.Brush.Color:=R+(G*256)+(B*256*256);
  15.   Form1.Colorlupe.Canvas.Rectangle(0,0,40,40);
  16.   Form1.Colorlupe.Canvas.Brush.Color:=$ffffff;
  17.   Form1.Colorlupe.Canvas.TextOut(42,0,'R:'+Inttostr(R)+'     ');
  18.   Form1.Colorlupe.Canvas.TextOut(42,13,'G:'+Inttostr(G)+'     ');
  19.   Form1.Colorlupe.Canvas.TextOut(42,26,'B:'+Inttostr(B)+'     ');
  20.  // Im_IRQ:=raus;
  21. end;



Hier das Produkt : http://www.Gento.de/Farben.rar

lg Gento

p.s. Guten Rutsch ins Neue Jahr


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 31, 2007 14:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Zitat:
Nach der ersten Anzeige steht Anzeige 14 wie Angenagelt.

Für mich sieht das so aus, als würde der Rotwert direkt vom Slider abhängen. Je weiter links der ist, desto roter das Bild und folglich desto größer der angezeigte R-Wert. Das jeweilige Bild sind nur alle möglichen Grün- und Blauwerte für diesen einen Rotton.
Somit sehe ich eigentlich nur "Works as intended"?

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Dez 31, 2007 14:44 
Offline
DGL Member

Registriert: So Apr 01, 2007 17:51
Beiträge: 42
Wohnort: Hamm/Westf.
Das ganze soll ein RGB-Farbmodell/Würfel sein.
Mit dem Regler ziehe ich in die Tiefe.
So will ich alle 16 Millionen Farben erreichen.(8Bit tiefe je R G B)


Gento

Edit:Ich hab mir die Beschreibung des Farbwürfel's nochmal genau anbesehen.
R ändert sich nur durch die Tiefe :oops:
Also war da ein 'denkfehler' bei mir. 8)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]