Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi "spielfeld", also jedes stück 10x10px gross (https://www.delphipraxis.net/115090-spielfeld-also-jedes-stueck-10x10px-gross.html)

MSSSSM 5. Jun 2008 16:00


"spielfeld", also jedes stück 10x10px gross
 
Vorweg mal wieder die Beichte: Ich hab schon gesucht *g*
also, ich habe ein 2 dimensionales array[0..10,0..10] of TBitmap
dies hab ich gefüllt...

Wie krieg ich dies nun in ein image...
hm, mit canvas.draw?

mfg

Fussball-Robby 5. Jun 2008 16:04

Re: "spielfeld", also jedes stück 10x10px gross
 
Das müsste ca. so gehen:
Delphi-Quellcode:
procedure MaleFeld(Image: TImage; Felder: TImgArray);
var
  i, j: Integer:
begin
  for i := Low(Felder) to High(Felder) do
    for j := Low(Felder[i]) to High(Felder[i]) do
      Image.Canvas.Draw(i * 10, j * 10, Felder[i, j]);
end;
Runtergetippt & nicht getestet

MSSSSM 5. Jun 2008 16:16

Re: "spielfeld", also jedes stück 10x10px gross
 
hm, eine AV...


Delphi-Quellcode:
  spielfeld: array[0..10,0..10] of TBitmap;

{...}

procedure MaleFeld;
var
  i, j: Integer;
begin

  for i := Low(spielfeld) to High(spielfeld) do
    for j := Low(spielfeld[i]) to High(spielfeld[i]) do begin
      spielfeld[i,j].Canvas.Brush.Color:=clBlack;
      form1.Image1.Canvas.Draw(i * 10, j * 10, spielfeld[i, j]);
      end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
MaleFeld;
end;
scheint mit draw zusammenzuhängen...


mfg

Fussball-Robby 5. Jun 2008 16:25

Re: "spielfeld", also jedes stück 10x10px gross
 
Du hast die Bitmaps wohl noch nicht erzeugt. Dann gibts ne AV beim Zuweisen der Brush.Color. Am besten davor noch eine Prüfung auf Bitmap <> nil einbauen.

inherited 5. Jun 2008 16:28

Re: "spielfeld", also jedes stück 10x10px gross
 
Zeig mal deinen Code in dem du die Bitmaps erzeugst.

MSSSSM 5. Jun 2008 16:32

Re: "spielfeld", also jedes stück 10x10px gross
 
nuno, es geht :wall: :wall: :wall: :wall: :wall:

da müsste man nur noch einen rahmen drum machen *zauber*

Delphi-Quellcode:
var
  Form1: TForm1;
  spielfeld: array[0..10,0..10] of TBitmap;

{...}

procedure MaleFeld;
var
  i, j: Integer;
begin

  for i := Low(spielfeld) to High(spielfeld) do
    for j := Low(spielfeld[i]) to High(spielfeld[i]) do begin
      spielfeld[i,j].Canvas.Brush.Color:=clBlack;
      spielfeld[i,j].Canvas.Pen.Color:=clYellow;
      spielfeld[i,j].Canvas.Rectangle(0,0,10,10);
      form1.Image1.Canvas.Draw(i * 10, j * 10, spielfeld[i, j]);
      end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
MaleFeld;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin

  for i := Low(spielfeld) to High(spielfeld) do
    for j := Low(spielfeld[i]) to High(spielfeld[i]) do begin
      spielfeld[i,j]:=TBitmap.Create;
      end;

end;
DAS funktioniert nicht(Der rahmen...) sonst :thumb:

mfg

sx2008 6. Jun 2008 06:24

Re: "spielfeld", also jedes stück 10x10px gross
 
Zitat:

Zitat von MSSSSM
DAS funktioniert nicht(Der rahmen...

Wenn die Bildchen 10*10 Pixel haben und der Rahmen 1 Pixel breit sein soll, müssen die Kacheln 12*12 Pixel haben!!
Delphi-Quellcode:
form1.Image1.Canvas.Draw(i * 12 + 1, j * 12 + 1, spielfeld[i, j]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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