AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Grafik in TBitButton zur Laufzeit austauschen

Ein Thema von little_budda · begonnen am 2. Aug 2006 · letzter Beitrag vom 22. Sep 2006
Antwort Antwort
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Grafik in TBitButton zur Laufzeit austauschen

  Alt 2. Aug 2006, 17:21
Hallo,

ich habe in einem BitButton ein Bild eingebunden.
(Eigenschaft Glyph).
Nun möchte ich das Bild ereignisorientiert ändern.
Hierzu habe ich die relevanten Bilder in einer ImageList hintelegt.
Ich verwende folgenden Code um die Bilder auszutauschen.

Delphi-Quellcode:
  ImageList.GetBitmap(0, bBtnConnectState.Glyph);
  bBtnConnectState.repaint;
Hierbei verwende ich den Index 0 bis 2 um die jeweiliegen Bilder anzusprechen.
Das Bild wechselt aber nicht.
Der Button sieht immer gleich aus.

Ich wäre für Anregungen sehr dankbar.

Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Grafik in TBitButton zur Laufzeit austauschen

  Alt 2. Aug 2006, 17:48
Hi,
also ein repaint ist hier überflüssig. Auch ein BitBtn sollte sich selbst aktualisieren, wenn du ein Bild änderst. Verwende einfach einen Puffer.
Leg eine Bitmap an, setzte ihre Größe, lade dein Bild aus der TImageList in diese Bitmap und weise die dann einfach dem Glyph zu, fertig (Freigeben nicht vergessen!)

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Grafik in TBitButton zur Laufzeit austauschen

  Alt 2. Aug 2006, 20:23
Hallo,
der Tipp war klasse.
Danke.

Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#4

Re: Grafik in TBitButton zur Laufzeit austauschen

  Alt 29. Aug 2006, 19:37
ich hatte das gleiche Problem, wusste aber nicht wie man das genau umsetzt.
Nach langer Suche hier die Lösung für alle, die genauso Anfänger sind wie ich:

zunächst mit der rechten Maustaste auf die TImageList-Komponente klicken und Bild-Editor wählen. Jetzt alle gewünschten Bitmaps in die ImageList speichern.

Zuerst muss das aktuelle Bitmap aus dem BtnBtn verschwinden:

BitBtn1.Glyph := nil; danach das neue Bitmap aus der TImageList dem BitBtn1 übergeben:

ImageList1.GetBitmap(0, BitBtn1.Glyph) die 0 ist hier das erste Bild mit dem Index 0 aus der ImageList

Was ich nicht herausgefunden habe, ob es auch möglich ist, herauszubekommen, welche Bitmap
gerade im BitBtn angezeigt wird. Vielleicht kann das noch jemand hier ergänzend hinzufügen.

Außerdem habe ich irgendwo gelesen, dass man statt einer TImageList irgendwie auch über
..LoadResource(HInstance, ...). Bitmaps verwalten kann, das war aber zu hoch für mich
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Grafik in TBitButton zur Laufzeit austauschen

  Alt 22. Sep 2006, 10:34
Cool, genau das hatte ich gesucht

Ich hab hier nochmal eine kleine "Anleitung" für LMD:

1. Als erstes LMDSpeedButton einfügen
2. Einfügen der BitmapList unter LMDCont
3. Glyph auf „ohne“ setzen
4. BitmapList mit Bildern füllen (Doppelklick auf das BitmapList Symbol in der Form).
5. Dann in den Quelltext an die Stelle gehen, wo sich das Bild ändern soll (z.B. beim klicken auf den Button)
6. Dort folgendes einfügen:

LMDSpeedButton1.Glyph := LMDBitmapList1.Items[1].Bitmap;

Die [1] ist das 2. Bild in der BitmapList. Bild [0] wird automatisch als erstes angezeigt.
  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 22:53 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