Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #1
Jun 6th, 2006
Hi,
I'm working on an assignment for school...one of the applets i have to develop is a colour picker...But unfortunately i'm having some trouble with it...

I would just like to ask if anyone could help me along a little bit and give me some insight as what to do to change this into the non-depreciated format...

I've looked up on the list here, http://java.sun.com/j2se/1.4.2/docs/...ated-list.html, and it states it has been replaced with processMouseEvent(MouseEvent).

I've tried to replace this with this code, but i get error after error..
Could anyone help me with this? I'm hitting a brick wall...
here is the whole applet if you want to have a look...i would REALLY appreciate it if someone could point me in the right direction at least, im not having much luck...


Here is my (pathetic) effort of trying to recode my program, but it doesnt work at all anymore...


  1. import java.applet.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.awt.image.*;
  5. public class ColourPickerMouse extends Applet implements MouseListener {
  6. Image rgbImageCanvas; //
  7. Image rgbImageBar; //
  8. int pixels[] = new int[0x10000]; //
  9. int pixels2[] = new int[2560]; //
  10. Color viewColor = Color.red; // Default colour at start
  11. int rgbXSelect1; // Selecting bounds for x axis on Canvas
  12. int rgbYSelect1; // Selecting bounds for y axis on Canvas
  13. int rgbYSelect2; // Selecting bounds for y axis on Bar
  14. Label labelSample; // Label for sample colour square
  15. Label labelHex; // Label for Hex value
  16. TextField textFieldHex; // TextField for Hex value
  17. Label labelRGBValue; // Label for RGB value of Blue
  18. Label labelR; // Label for RGB value of Blue
  19. Label labelG; // Label for RGB value of Blue
  20. Label labelB; // Label for RGB value of Blue
  21. TextField textFieldB; // TextField for RGB value of Blue
  22. TextField textFieldR; // TextField for RGB value of Red
  23. TextField textFieldG; // TextField for RGB value of Green
  24. int x,y;
  25. public void init() {
  26. MakeImageCanvas();
  27. MakeImageBar();
  28. setLayout(null);
  29. labelSample = new Label("Selected Colour:");
  30. labelSample.setBounds(312, 12, 100, 10);
  31. add(labelSample);
  32. labelHex = new Label("Hex Value:");
  33. labelHex.setBounds(312, 80, 84, 24);
  34. add(labelHex);
  35. textFieldHex = new TextField();
  36. textFieldHex.setBounds(312, 110, 80, 20);
  37. textFieldHex.setEditable(false);
  38. add(textFieldHex);
  39. labelRGBValue = new Label("RGB Values:");
  40. labelRGBValue.setBounds(312, 150, 84, 24);
  41. add(labelRGBValue);
  42. labelR = new Label("Red:");
  43. labelR.setBounds(312, 178, 36, 20);
  44. add(labelR);
  45. textFieldR = new TextField();
  46. textFieldR.setBounds(360, 178, 45, 20);
  47. textFieldR.setEditable(false);
  48. add(textFieldR);
  49. labelG = new Label("Green:");
  50. labelG.setBounds(312, 202, 40, 20);
  51. add(labelG);
  52. textFieldG = new TextField();
  53. textFieldG.setBounds(360, 202, 45, 20);
  54. textFieldG.setEditable(false);
  55. add(textFieldG);
  56. labelB = new Label("Blue:");
  57. labelB.setBounds(312, 226, 40, 20);
  58. add(labelB);
  59. textFieldB = new TextField();
  60. textFieldB.setBounds(360, 226, 45, 20);
  61. textFieldB.setEditable(false);
  62. add(textFieldB);
  63. addMouseListener(this);
  64. }
  65.  
  66. public void mouseMoved (MouseEvent e) {}
  67. public void mouseDragged (MouseEvent e) {}
  68. public void mouseReleased (MouseEvent e) {}
  69. public void mouseClicked (MouseEvent e) {}
  70. public void mouseEntered (MouseEvent e) {}
  71. public void mouseExited (MouseEvent e) {}
  72. public void mousePressed (MouseEvent e) {}
  73. public void processMouseEvent(MouseEvent event) {
  74. event.getX();
  75. event.getY();
  76. if (x >= 8 && y >= 8 && x <= 269 && y <= 269) {
  77. rgbXSelect1 = Math.max(0, Math.min(255, x - 10));
  78. rgbYSelect1 = Math.max(0, Math.min(255, y - 10));
  79. Graphics g = getGraphics();
  80. DrawBackground(g);
  81. DrawSelector(g);
  82. } else
  83. if (x >= 275 && y >= 8 && x <= 286 && y <= 263) {
  84. rgbYSelect2 = Math.max(0, Math.min(255, y - 10));
  85. viewColor = new Color(pixels2[rgbYSelect2 * 10]);
  86. MakeImageCanvas();
  87. Graphics g = getGraphics();
  88. DrawBackground(g);
  89. } else {
  90. return false;
  91. }
  92. return true;
  93. }
  94. public void paint(Graphics g) {
  95. DrawBackground(g);
  96. DrawSelector(g);
  97. }
  98. public void DrawBackground(Graphics g) { // Displays for the background of applet
  99. // If selection is over Canvas area it is covered
  100. g.setColor(Color.white);
  101. g.fillRect(5, 5, 266, 5);
  102. g.fillRect(5, 5, 5, 266);
  103. g.fillRect(267, 5, 5, 266);
  104. g.fillRect(5, 267, 266, 5);
  105. g.setColor(Color.black);
  106. // Border for Canvas
  107. g.drawRect(10, 10, 257, 257);
  108. // Display the colours for Canvas
  109. g.drawImage(rgbImageCanvas, 11, 11, this);
  110. // Border for Bar
  111. g.drawRect(276, 10, 11, 253);
  112. // Display the colours for Bar
  113. g.drawImage(rgbImageBar, 277, 11, this);
  114. }
  115. public void DrawSelector(Graphics g) { //Displays for Canvas, Bar and GUI
  116. // Selection circles
  117. g.setColor(Color.white);
  118. g.drawOval((10 + rgbXSelect1) - 5, (10 + rgbYSelect1) - 5, 11, 11);
  119. g.setColor(Color.black);
  120. g.drawOval((10 + rgbXSelect1) - 4, (10 + rgbYSelect1) - 4, 9, 9);
  121. // Selector on bar
  122. g.fillRect(274, (10 + rgbYSelect2) - 1, 16, 2);
  123. // Sample colour square
  124. int pickColor = pixels[rgbYSelect1 * 256 + rgbXSelect1] & 0xffffff;
  125. // Draw border
  126. g.drawRect(321, 35, 37, 37);
  127. // Get selected colour and fill square
  128. Color selectedColor = new Color(pickColor);
  129. g.setColor(selectedColor);
  130. g.fillRect(322, 36, 36, 36);
  131. // Textfield information
  132. textFieldHex.setText("#" + Integer.toHexString(pickColor).toUpperCase());
  133. textFieldR.setText(Integer.toString(selectedColor.getRed()));
  134. textFieldG.setText(Integer.toString(selectedColor.getGreen()));
  135. textFieldB.setText(Integer.toString(selectedColor.getBlue()));
  136. }
  137. public void FillArray(int pixels[], int counter, int r, int g, int b, int incR, int incG, int incB) { // Array to print colours
  138. for (int j = 0; j < 256; j += 6) {
  139. r += incR;
  140. g += incG;
  141. b += incB;
  142. for (int i = 0; i < 10; i++) {
  143. pixels[counter++] = 0xff000000 | r << 16 | g << 8 | b;
  144. }
  145. }
  146. }
  147. public void MakeImageCanvas() { // Make the colours for the Canvas from array
  148. int counter = 0;
  149. double incDestR = (double) ( -viewColor.getRed()) / 256D;
  150. double incDestG = (double) ( -viewColor.getGreen()) / 256D;
  151. double incDestB = (double) ( -viewColor.getBlue()) / 256D;
  152. for (int i = 255; i >= 0; i--) {
  153. int destR = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getRed() + (double) (255 - i) * incDestR)));
  154. int destG = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getGreen() + (double) (255 - i) * incDestG)));
  155. int destB = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getBlue() + (double) (255 - i) * incDestB)));
  156. double incR = (double) (destR - i) / 256D;
  157. double incG = (double) (destG - i) / 256D;
  158. double incB = (double) (destB - i) / 256D;
  159. for (int j = 0; j < 256; j++) {
  160. int r = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incR)));
  161. int g = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incG)));
  162. int b = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incB)));
  163. pixels[counter++] = 0xff000000 | r << 16 | g << 8 | b;
  164. }
  165. }
  166. rgbImageCanvas = createImage(new MemoryImageSource(256, 256, pixels, 0, 256));
  167. }
  168. public void MakeImageBar() { // Make the colours for the Bar from array
  169. int counter = 0;
  170. FillArray(pixels2, counter, 255, 0, 0, 0, 6, 0);
  171. FillArray(pixels2, counter += 420, 255, 255, 0, -6, 0, 0);
  172. FillArray(pixels2, counter += 420, 0, 255, 0, 0, 0, 6);
  173. FillArray(pixels2, counter += 420, 0, 255, 255, 0, -6, 0);
  174. FillArray(pixels2, counter += 420, 0, 0, 255, 6, 0, 0);
  175. FillArray(pixels2, counter += 420, 255, 0, 255, 0, 0, -6);
  176. rgbImageBar = createImage(new MemoryImageSource(10, 252, pixels2, 0, 10));
  177. }
  178. }


If anyone wants to look at the original code, feel free to ask!

Thanks for anyone having a look at this, i really REALLY appreciate it!

Thanks in advance!!
-Crawf
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 5,266
Reputation: iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold 
Solved Threads: 377
Featured Poster
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Posting Expert

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #2
Jun 6th, 2006
Can i c the original code plz?

And how do I run applets, is there a special command?
*Voted best profile in the world*
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 5,266
Reputation: iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold 
Solved Threads: 377
Featured Poster
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Posting Expert

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #3
Jun 6th, 2006
How about this plus the source
*Voted best profile in the world*
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #4
Jun 6th, 2006
the original code...


  1. import java.applet.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.awt.image.*;
  5. public class ColourPicker extends Applet {
  6. Image rgbImageCanvas; //
  7. Image rgbImageBar; //
  8. int pixels[] = new int[0x10000]; //
  9. int pixels2[] = new int[2560]; //
  10. Color viewColor = Color.red; // Default colour at start
  11. int rgbXSelect1; // Selecting bounds for x axis on Canvas
  12. int rgbYSelect1; // Selecting bounds for y axis on Canvas
  13. int rgbYSelect2; // Selecting bounds for y axis on Bar
  14. Label labelSample; // Label for sample colour square
  15. Label labelHex; // Label for Hex value
  16. TextField textFieldHex; // TextField for Hex value
  17. Label labelRGBValue; // Label for RGB value of Blue
  18. Label labelR; // Label for RGB value of Blue
  19. Label labelG; // Label for RGB value of Blue
  20. Label labelB; // Label for RGB value of Blue
  21. TextField textFieldB; // TextField for RGB value of Blue
  22. TextField textFieldR; // TextField for RGB value of Red
  23. TextField textFieldG; // TextField for RGB value of Green
  24. public void init() {
  25. MakeImageCanvas();
  26. MakeImageBar();
  27. setLayout(null);
  28. labelSample = new Label("Selected Colour:");
  29. labelSample.setBounds(312, 12, 100, 10);
  30. add(labelSample);
  31. labelHex = new Label("Hex Value:");
  32. labelHex.setBounds(312, 80, 84, 24);
  33. add(labelHex);
  34. textFieldHex = new TextField();
  35. textFieldHex.setBounds(312, 110, 80, 20);
  36. textFieldHex.setEditable(false);
  37. add(textFieldHex);
  38. labelRGBValue = new Label("RGB Values:");
  39. labelRGBValue.setBounds(312, 150, 84, 24);
  40. add(labelRGBValue);
  41. labelR = new Label("Red:");
  42. labelR.setBounds(312, 178, 36, 20);
  43. add(labelR);
  44. textFieldR = new TextField();
  45. textFieldR.setBounds(360, 178, 45, 20);
  46. textFieldR.setEditable(false);
  47. add(textFieldR);
  48. labelG = new Label("Green:");
  49. labelG.setBounds(312, 202, 40, 20);
  50. add(labelG);
  51. textFieldG = new TextField();
  52. textFieldG.setBounds(360, 202, 45, 20);
  53. textFieldG.setEditable(false);
  54. add(textFieldG);
  55. labelB = new Label("Blue:");
  56. labelB.setBounds(312, 226, 40, 20);
  57. add(labelB);
  58. textFieldB = new TextField();
  59. textFieldB.setBounds(360, 226, 45, 20);
  60. textFieldB.setEditable(false);
  61. add(textFieldB);
  62.  
  63. }
  64. public boolean mouseDown(Event evt, int x, int y) {
  65. if (x >= 8 && y >= 8 && x <= 269 && y <= 269) {
  66. rgbXSelect1 = Math.max(0, Math.min(255, x - 10));
  67. rgbYSelect1 = Math.max(0, Math.min(255, y - 10));
  68. Graphics g = getGraphics();
  69. DrawBackground(g);
  70. DrawSelector(g);
  71. } else
  72. if (x >= 275 && y >= 8 && x <= 286 && y <= 263) {
  73. rgbYSelect2 = Math.max(0, Math.min(255, y - 10));
  74. viewColor = new Color(pixels2[rgbYSelect2 * 10]);
  75. MakeImageCanvas();
  76. Graphics g = getGraphics();
  77. DrawBackground(g);
  78. } else {
  79. return false;
  80. }
  81. return true;
  82. }
  83. public void paint(Graphics g) {
  84. DrawBackground(g);
  85. DrawSelector(g);
  86. }
  87. public void DrawBackground(Graphics g) { // Displays for the background of applet
  88. // If selection is over Canvas area it is covered
  89. g.setColor(Color.white);
  90. g.fillRect(5, 5, 266, 5);
  91. g.fillRect(5, 5, 5, 266);
  92. g.fillRect(267, 5, 5, 266);
  93. g.fillRect(5, 267, 266, 5);
  94. g.setColor(Color.black);
  95. // Border for Canvas
  96. g.drawRect(10, 10, 257, 257);
  97. // Display the colours for Canvas
  98. g.drawImage(rgbImageCanvas, 11, 11, this);
  99. // Border for Bar
  100. g.drawRect(276, 10, 11, 253);
  101. // Display the colours for Bar
  102. g.drawImage(rgbImageBar, 277, 11, this);
  103. }
  104. public void DrawSelector(Graphics g) { //Displays for Canvas, Bar and GUI
  105. // Selection circles
  106. g.setColor(Color.white);
  107. g.drawOval((10 + rgbXSelect1) - 5, (10 + rgbYSelect1) - 5, 11, 11);
  108. g.setColor(Color.black);
  109. g.drawOval((10 + rgbXSelect1) - 4, (10 + rgbYSelect1) - 4, 9, 9);
  110. // Selector on bar
  111. g.fillRect(274, (10 + rgbYSelect2) - 1, 16, 2);
  112. // Sample colour square
  113. int pickColor = pixels[rgbYSelect1 * 256 + rgbXSelect1] & 0xffffff;
  114. // Draw border
  115. g.drawRect(321, 35, 37, 37);
  116. // Get selected colour and fill square
  117. Color selectedColor = new Color(pickColor);
  118. g.setColor(selectedColor);
  119. g.fillRect(322, 36, 36, 36);
  120. // Textfield information
  121. textFieldHex.setText("#" + Integer.toHexString(pickColor).toUpperCase());
  122. textFieldR.setText(Integer.toString(selectedColor.getRed()));
  123. textFieldG.setText(Integer.toString(selectedColor.getGreen()));
  124. textFieldB.setText(Integer.toString(selectedColor.getBlue()));
  125. }
  126. public void FillArray(int pixels[], int counter, int r, int g, int b, int incR, int incG, int incB) { // Array to print colours
  127. for (int j = 0; j < 256; j += 6) {
  128. r += incR;
  129. g += incG;
  130. b += incB;
  131. for (int i = 0; i < 10; i++) {
  132. pixels[counter++] = 0xff000000 | r << 16 | g << 8 | b;
  133. }
  134. }
  135. }
  136. public void MakeImageCanvas() { // Make the colours for the Canvas from array
  137. int counter = 0;
  138. double incDestR = (double) ( -viewColor.getRed()) / 256D;
  139. double incDestG = (double) ( -viewColor.getGreen()) / 256D;
  140. double incDestB = (double) ( -viewColor.getBlue()) / 256D;
  141. for (int i = 255; i >= 0; i--) {
  142. int destR = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getRed() + (double) (255 - i) * incDestR)));
  143. int destG = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getGreen() + (double) (255 - i) * incDestG)));
  144. int destB = Math.min(255, Math.max(0, (int) Math.round((double) viewColor.getBlue() + (double) (255 - i) * incDestB)));
  145. double incR = (double) (destR - i) / 256D;
  146. double incG = (double) (destG - i) / 256D;
  147. double incB = (double) (destB - i) / 256D;
  148. for (int j = 0; j < 256; j++) {
  149. int r = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incR)));
  150. int g = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incG)));
  151. int b = Math.min(255, Math.max(0, (int) Math.floor((double) i + (double) j * incB)));
  152. pixels[counter++] = 0xff000000 | r << 16 | g << 8 | b;
  153. }
  154. }
  155. rgbImageCanvas = createImage(new MemoryImageSource(256, 256, pixels, 0, 256));
  156. }
  157. public void MakeImageBar() { // Make the colours for the Bar from array
  158. int counter = 0;
  159. FillArray(pixels2, counter, 255, 0, 0, 0, 6, 0);
  160. FillArray(pixels2, counter += 420, 255, 255, 0, -6, 0, 0);
  161. FillArray(pixels2, counter += 420, 0, 255, 0, 0, 0, 6);
  162. FillArray(pixels2, counter += 420, 0, 255, 255, 0, -6, 0);
  163. FillArray(pixels2, counter += 420, 0, 0, 255, 6, 0, 0);
  164. FillArray(pixels2, counter += 420, 255, 0, 255, 0, 0, -6);
  165. rgbImageBar = createImage(new MemoryImageSource(10, 252, pixels2, 0, 10));
  166. }
  167. }


Thanks for having a look at it for me!

-Crawf
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 5,266
Reputation: iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold 
Solved Threads: 377
Featured Poster
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Posting Expert

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #5
Jun 7th, 2006
Hullo, did you check out my link in my other post? There is source code with it.
*Voted best profile in the world*
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #6
Jun 7th, 2006
Yes, i did have a quick look at that page, but i have not yet looked at the source code...

hope it will help!

-Crawf
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #7
Jun 7th, 2006
ah! just had a look at the code! it looks very similar to my code...hopefully everything should go smoothly!

Thanks for the applet, ill let you know if i have any problems!

-Crawf
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #8
Jun 7th, 2006
Okay, well that actually didnt help that much...that applet has the same depreciation problem that i have...
  1. public boolean mouseUp(java.awt.Event evt, int jx, int jy)

Thanks for the reference though! Does anyone have any ideas on how i could fix this?

Thanks!

-Crawf
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 5,266
Reputation: iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold iamthwee is a splendid one to behold 
Solved Threads: 377
Featured Poster
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Posting Expert

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #9
Jun 8th, 2006
Originally Posted by crawf
Okay, well that actually didnt help that much...that applet has the same depreciation problem that i have...
  1. public boolean mouseUp(java.awt.Event evt, int jx, int jy)

Thanks for the reference though! Does anyone have any ideas on how i could fix this?

Thanks!

-Crawf
I'm sorrie I don't understand, what is deprecated? It works perfectly for me and I'm using the very latest Java development kit? The question is are you?
Last edited by iamthwee; Jun 8th, 2006 at 4:55 am.
*Voted best profile in the world*
Reply With Quote Quick reply to this message  
Join Date: Jun 2006
Posts: 16
Reputation: crawf is an unknown quantity at this point 
Solved Threads: 0
crawf crawf is offline Offline
Newbie Poster

Re: Colour picker, MouseDown(Event, int x, int y) Depreciation Help!

 
0
  #10
Jun 8th, 2006
yes, i am up to date, as of yesterday actually! i double checked just then to verify...thats pretty weird...

regardless, i've figured it out now, and there are no further problems!

Thanks to all who helped!

-Crawf
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Other Threads in the Java Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC