AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bild auf TImage kacheln?
Thema durchsuchen
Ansicht
Themen-Optionen

Bild auf TImage kacheln?

Ein Thema von ryLIX · begonnen am 24. Feb 2010 · letzter Beitrag vom 24. Feb 2010
Antwort Antwort
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Bild auf TImage kacheln?

  Alt 24. Feb 2010, 11:29
Gibt es eine Möglichkeit ein Bild auf einem TImage zu kacheln?
Hab schon einiges Probiert aber das gibt nicht den gewünschten Effekt.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 11:40
guckst du hier
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 11:49
Hmm repeat -.- ich hab nach kacheln gesucht wie ein doofer ...

Jetzt ist folgendes:
PaintBox1 ist alTop und im OnPaint zeichne ich den Hintergrund:
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  img: TJPEGImage;
  Count, I, X, Y : Integer;
begin
  img := TJPEGImage.Create;
  img.LoadFromFile('back.jpg');
  Count := round(PaintBox1.Width / img.Width);
  for I := 0 to Count do
  begin
    X := PaintBox1.Left + round(img.Width * I);
    Y := PaintBox1.Top;
    PaintBox1.Canvas.Draw(X, Y, img);
  end;
  img.Free;
end;
Aber kein Bild O.o die Zeichenfläche bleibt einfach leer...

Mit dem gleichen Code habe ich sonst Bilder auf Panels gekachelt.
Aber leider Ignorieren Controls mit Tranzparenz Panels im Hintergrund...
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 11:57
X und Y werden relativ zur Paintbox gesehn, also benötigt man hier kein Offset.
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  img: TJPEGImage;
  I: Integer;
begin
  img := TJPEGImage.Create;
  try
    img.LoadFromFile('back.jpg');
    for I := 0 to PaintBox1.Width div img.Width - 1 do
      PaintBox1.Canvas.Draw(img.Width * I, 0, img);
  finally
    img.Free;
  end;
end;
aber Besser wäre es so
Delphi-Quellcode:
procedure TForm1.Form1Create(Sender: TObject);
begin
  img := TJPEGImage.Create;
  img.LoadFromFile('back.jpg');
end;

procedure TForm1.Form1Destroy(Sender: TObject);
begin
  img.Free;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to PaintBox1.Width div img.Width - 1 do
    PaintBox1.Canvas.Draw(img.Width * I, 0, img);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 12:00
Zitat von himitsu:
aber Besser wäre es so
Delphi-Quellcode:
procedure TForm1.Form1Create(Sender: TObject);
begin
  img := TJPEGImage.Create;
  img.LoadFromFile('back.jpg');
end;

procedure TForm1.Form1Destroy(Sender: TObject);
begin
  img.Free;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to PaintBox1.Width div img.Width - 1 do
    PaintBox1.Canvas.Draw(img.Width * I, 0, img);
end;
Wieso das denn? So muss ich ja eine "globale" Varibale in der Klasse halten, die erst gegen Ende freigegeben wird. Ich würde es noch verstehe, wenn das Image mehrfach im Code verwendet werden würde, was es aber nicht wird.

PS: Über TImage und kacheln bin ich auf den Thread gestoßen es gab nur zwei Treffer: Hier im Forum suchentimage kacheln
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 12:07
Zitat von s.h.a.r.k:
Wieso das denn?
Damit nicht bei jedem OnPaint-Ereignis das Image erzeugt und das JPG-Bild geladen werden muss. Das OnPaint-Ereignis wird nicht nur einmalig aufgerufen.
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: Bild auf TImage kacheln?

  Alt 24. Feb 2010, 12:43
Ok jetzt klappts.
Vielen dank für eure Hilfe.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz