12. april 2005 - 16:34Der er
12 kommentarer og 1 løsning
Random farve til shape??
Hej, jeg har fire shape ( ShapeA, ShapeB, ShapeC og ShapeD) på min form. Jeg vil gerne have at når man starter programmet skal hver af de fire shape få et tilfældigt farve ud af disse 8 farver (clRed, clBlue, clGreen, clYellow, clSilver, clFuchsia, clAqua og clBlack).
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Ja men så skal der lidt mere kode til, noget i denne stil:
procedure TForm1.FormCreate(Sender: TObject); const StartColors : array(.0..7.) of TColor =(clRed, clBlue, clGreen, clYellow, clSilver, clFuchsia, clAqua, clBlack); var ColorsLeft : array of TColor;
function GetColor : TColor; var i : integer; begin i:=Random(Length(ColorsLeft)); Result:=ColorsLeft[i]; if i+1<Length(ColorsLeft) then Move(ColorsLeft[i+1],ColorsLeft[i],(Length(ColorsLeft)-i-1) * SizeOf(TColor));
SetLength(ColorsLeft,Length(ColorsLeft)-1); end;
begin SetLength(ColorsLeft,Length(StartColors)); Move(StartColors,ColorsLeft[0],SizeOf(StartColors)); Randomize; ShapeA.Brush.Color:=GetColor; ShapeB.Brush.Color:=GetColor; ShapeC.Brush.Color:=GetColor; ShapeD.Brush.Color:=GetColor; end;
Din kode virker, men jeg må desværre sige at jeg ikke forstår hvorfor den virker :(
Hvis du er så venlig, at ville skrive hvad hver eneste sætning gør, så vil jeg være dig meget taknemlig og samtidig belønne det med ekstra point ( hvor mange point vil du have for det "ekstra arbejde" :D )?
function GetColor : TColor; var i : integer; begin i:=Random(ColorsLeft); Result:=ColorsLeft[i]; StartColors[i]:=StartColors[ColorsLeft-1]; Dec(ColorsLeft); end;
begin ColorsLeft:=Length(StartColors); Randomize; ShapeA.Brush.Color:=GetColor; ShapeB.Brush.Color:=GetColor; ShapeC.Brush.Color:=GetColor; ShapeD.Brush.Color:=GetColor; end;
Nu har jeg prøvet mange mange gange (læs: 1 million gange) og har ikke oplevet at de får samme farve.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.