jeg skal lave noget yatzy: først skal omridset af terningen tegnes med DrawDice(); derefter skal øjnene tegnes med DrawEyes(); dette gøres på et TImage... Problemet(-erne) er at, jeg skal have DrawDice() til at tegne omridset, hvor Brush.Style := bsClear, burde fjerne indholdet, det gør den ikke... ved DrawEyes() er problemet imidlertid omvendt, der tegner den IKKE indhold selvom Brush.Style := bsSolid; ... hvordan fixer jeg dette ?
NOTE: der bedes tage forbehold for at mine Ellipse(); kun er vejlende til at tjekke om DrawEyes() rent faktisk virker ...
NOTE: jeg har lige erfaret at det er fordi det er på et TImage at det ikke funker som det skal, så hvis nogen har en løsning på dette .... !
unit minUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Kast: TButton;
Dice1: TImage;
Dice2: TImage;
Dice3: TImage;
Dice4: TImage;
Dice5: TImage;
procedure DrawDice(place, result: integer);
procedure FormCreate(Sender: TObject);
procedure DrawEyes(place, result: integer);
procedure KastClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Dice: array [1..5] of TImage;
Dices: array[1..5] of Byte;
Numbers: array[1..6] of Byte;
MarkedDices: array[1..5] of Boolean;
Total, Strokes: Byte;
implementation
{$R *.dfm}
procedure TForm1.DrawEyes(place, result: integer);
begin
with Canvas do
begin
Brush.Style:= bsSolid;
with Pen do
begin
Width := 10;
Color := clBlack;
end;
end;
if result = 1 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,48,48);
end
end
else if result = 2 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,45,45);
end
end
else if result = 3 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,45,45);
end
end
else if result = 4 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,45,45);
end
end
else if result = 5 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,45,45);
end
end
else if result = 6 then
begin
with Dice[place].Canvas do
begin
Ellipse(35,35,45,45);
end;
end;
end;
procedure TForm1.DrawDice(place, result: integer);
begin
with Canvas do
begin
Brush.Style := bsClear;
with Pen do
begin
Width := 3;
Color := clWhite;
end;
end;
with Dice[place].Canvas do
begin
RoundRect(5,5,65,65,10,10);
DrawEyes(place, result);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
Dice[1] := Dice1;
Dice[2] := Dice2;
Dice[3] := Dice3;
Dice[4] := Dice4;
Dice[5] := Dice5;
for i := 1 to 5 do
begin
with Dice[i] do
begin
Picture.LoadFromFile('sort2.bmp');
Width := 70;
Height := 70;
end;
end;
end;
procedure TForm1.KastClick(Sender: TObject);
var
i: integer;
begin
for i := 1 to 5 do
begin
DrawDice(i, (1 + random(6)));
end;
end;
initialization
Randomize;
end.
[Redigeret d. 22/10-03 16:39:17 af Rasmus M. Jacobsen][Redigeret d. 22/10-03 18:18:36 af Rasmus M. Jacobsen]