[Delphi]Background Image Form dmv Canvas

Pagina: 1
Acties:
  • 112 views sinds 30-01-2008
  • Reageer

  • Dala
  • Registratie: November 2000
  • Laatst online: 19-08 10:22
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.FormCreate(Sender: TObject);
begin
  backgroundImage := TBitmap.Create;
  backgroundImage.LoadFromFile('C:\achtergrond2.bmp');
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw( 0, 0, backgroundImage );
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  backgroundImage.Free;
end;


Nu is dus achtergrond2.bmp 1000x10 dus allike een background in html, ik wil hem dus gewoon laten repeaten de hele tijd.. dan kan de resource klein blijven van het programma, nu heb ik al een tijd gezocht, ik heb wel wat gevonden van hoe ik zou kunnen stretchen, maar voor het kopieren, geen idee.

Dus ik wil dus het zelfde krijgen als je bij een html pagina hebt: <body background='blaat.jpg'> ... die plakt zich zelf gewoon heel vaak onderelkaar.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Uhm wat dacht je van:
code:
1
2
3
4
5
6
7
8
9
10
11
int x = 0, y = 0;
while(y < form.height)
  {
  x = 0;
  while( x < form.width)
    {
    Canvas.Draw(x, y, image);
    x += image.width;
    }
  y += image.height;
  }

:?

edit:
hmmm [code=pseudocode] werkt niet maar dit is dus wel pseudocode :)

[ Voor 16% gewijzigd door curry684 op 28-10-2003 11:33 ]

Professionele website nodig?


  • Dala
  • Registratie: November 2000
  • Laatst online: 19-08 10:22
kan ik idd es proberen ja, enigste waarom ik niet zo optie had gepakt was omdat ik *hoopte* dat het makkelijker / cpu vriendelijker kon :D


Delphi:
1
2
3
4
5
6
7
8
9
10
procedure drawback;
var y:integer;
begin
  y:=0;
  while y <= Form1.Width do
  begin
    Canvas.Draw( 0, y, backgroundImage );
    inc(y,backgroundImage.Height);
  end;
end;


jep werkt |:(

[ Voor 43% gewijzigd door Dala op 28-10-2003 11:49 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Dala schreef op 28 October 2003 @ 11:42:
kan ik idd es proberen ja, enigste waarom ik niet zo optie had gepakt was omdat ik *hoopte* dat het makkelijker / cpu vriendelijker kon :D
CPU-vriendelijker? Wat dacht je dat het systeem achter de schermen zou doen als je een Tile-draw aanvraagt? :D

Er zit overigens in VCL geloof ik wel ergens een TileDraw functie oid, maja heb geen docs hier @ work.

Professionele website nodig?


  • Dala
  • Registratie: November 2000
  • Laatst online: 19-08 10:22
curry684 schreef op 28 oktober 2003 @ 12:03:
[...]

CPU-vriendelijker? Wat dacht je dat het systeem achter de schermen zou doen als je een Tile-draw aanvraagt? :D

Er zit overigens in VCL geloof ik wel ergens een TileDraw functie oid, maja heb geen docs hier @ work.
inderdaad, deze functie werkt goed genoeg ja.

en zou inderdaad in de buurt komen van de windows oplossing..

oja, ik heb wegens het feit dat er door direct op de form canvas te tekenen plaatjes en labels wegvallen, heb ik een image gepakt die even groot is aan form en ook zo blijft.. en die op background en daar in getekend.