AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Hintergrundbild auf TBitmap während Laufzeit resizen
Thema durchsuchen
Ansicht
Themen-Optionen

Hintergrundbild auf TBitmap während Laufzeit resizen

Ein Thema von Vukloc · begonnen am 20. Dez 2011 · letzter Beitrag vom 20. Dez 2011
Antwort Antwort
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#1

Hintergrundbild auf TBitmap während Laufzeit resizen

  Alt 20. Dez 2011, 17:57
Hallo über die Feiertage vor mich weiter mit Delphi (7) zu befassen, und habe mir da mal was ausgedacht.

Eigentlich will ich mir ne Uhr "basteln", und hätte dafür ein schönes frei verfügbares Hintergrundbild hierauf müsste ich dann nur noch die Zeiger zeichnen (wollte das mit Sinus und Cosinus lösen).

Nun ist meine Frage bevor ich damit anfange, wie sieht dies beim resizen des Programmes während der Laufzeit aus? Ist es ohne größeren Aufwand möglich das Hintergrundbild während der Laufzeit zu resizen ?

Vielen dank für die Auskunft
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Hintergrundbild auf TBitmap während Laufzeit resizen

  Alt 20. Dez 2011, 18:05
Ich würde Dir hierfür nichts persistentes sondern z.B. TPaintbox empfehlen, das Hintergrundbild kannst am einfachsten per StretchDraw "reinmalen".
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Vukloc

Registriert seit: 12. Sep 2011
25 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Hintergrundbild auf TBitmap während Laufzeit resizen

  Alt 20. Dez 2011, 18:42
Ok hört sich gut an, also das ganze wird dann nicht instanziert, sondern einfach nur mit LoadFromFile laden und PaintBox.Draw zeichen?
Hab ich das so richtig verstanden ?

Dann muss ich aber die Paintbox vor jeder "Zeigerbewegung" refresehen und das Hintergrundbild neu reinzeichnen oder ?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Hintergrundbild auf TBitmap während Laufzeit resizen

  Alt 20. Dez 2011, 19:51
Einmal ein TBitmap oder ähnliches erzeugen, intial einmalig die Datei laden, ab dann aus dem Bitmap arbeiten.
Das Neuzeichnen musst Du in beiden Fällen durchführen, einmal in Deinem Image, welches dann von der Komponente für Dich neu gemalt wird (wobei Du hier ja auch das Problem hast jedes mal das Hintergrundbild neu malen zu müssen, was allemal schneller ist als es jedes mal von der Platte zu laden).
Denkbar wäre auch ein TImage als Hintergundbild und eine Paintbox drüberlegen (wobei D7 wenn ich mich recht entsinne Center/Stretch/Proportional noch nicht kennt), da diese "transparent" ist sie überall "durchsichtig" wo Du nichts tust. Technisch passiert intern aber auch nichts anderes als dass die TImagekomponente das intern gespeicherte Bitmap in "ihrer Paintbox" neu malt und Du in Deiner Paintbox die Zeiger neu malst. Du könntest das Bild auch statt aus einer Datei aus eine Imagelist entnehmen.
Du kannst auch glich den ganzen Schritt machen und eine Komponente schreiben, abgeleitet von TGraphiccontrol mit Properties für Bitmap integriertem Timer, ein paar Einstellungen für das Aussehen etc.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 16:03 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