AGB  ·  Datenschutz  ·  Impressum  







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

Combobox mit Bitmaps

Ein Thema von Bomberbb · begonnen am 30. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#1

Combobox mit Bitmaps

  Alt 30. Nov 2007, 11:33
Hallo,

Ich will eine Combobox erweitern. Es sollten Bilder vor die Einträge gezeichnet werden. Das wird auch schon gemacht.
Delphi-Quellcode:
Procedure TForm4.TntComboBox1DrawItem(Control : TWinControl;Index : Integer;
  Rect : TRect;State : TOwnerDrawState);
Var
  Bitmap : TBitmap;
  Offset : Integer;
  Colorloc : TColor;
Begin
  offset := 0;
  With TNTComboBox1.Canvas Do
  Begin
    Colorloc := Color;
    FillRect(Rect);
    If tLayer(TNTComboBox1.Items.Objects[index]).IsVisible Then
      Bitmap := Layerlist.BmpLayerOn
    Else
      Bitmap := Layerlist.BmpLayerOff;
    //copy bitmap to combobox coordinate
    BrushCopy(Bounds(Rect.Left +2, Rect.Top , 16, 16), Bitmap, Bounds(0, 0, 16, 16), clred);

    //Set a caption to each item
    Font.size := 10;
    TextOut(Rect.Left + 40, Rect.Top, TNTCombobox1.Items[Index]);

    Brush.Color := tLayer(TNTComboBox1.Items.Objects[index]).GetColor;
    FillRect(Bounds(Rect.Left + 20, Rect.Top + 1, 14, 14));
  End;
End;
Allerdings möchte ich bei einem Klick auf die verschiedenen Elemente eines Items unterschiedliche Sachen ausführen.
Leider habe ich keine Ahnung wie ich herausfinden kann auf welchen Bereich geklickt wurde...

Hat jemand eine Idee???
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:17
Hi,

ich verstehe die Frage nicht ganz, was für Bereiche hast du?

Die Combobox hat dafür nur ein Event "OnChange", wenn ein Eintrag ausgewählt wurde.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#3

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:24
Ich habe vor jedem Listeneintrag je zwei Bitmaps und will auf einen Klick auf die Bitmap anders reagieren als beim Klick auf den Listeneintrag.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:26
Da wirst du dir schon für jeden Eintrag merken müssen wie groß die Bitmap ist und welche x-Bereich sie damit einnimmt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#5

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:30
Ja das ist nicht das Problem, aber ich weiß nicht mit welcher Funktion ich das abfangen kann. Es gibt kein onMousedown bei TCombobox.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:41
OnMouseDown gibt es auch bei TComboBox.

Bei TControl ist das OnMouseDown als protected deklariert.
Mach es public bei deinem Control und go....
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Bomberbb

Registriert seit: 23. Sep 2003
227 Beiträge
 
#7

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 12:51
Das hab ich auch schon probiert. Das funzt leider auch nur bei dem grauen Feld rechts und nicht bei den Items.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 13:04
Und was funktioniert dabei nicht?
Delphi-Quellcode:
...
  published
    property OnMouseDown;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 13:06
Ich bezweifel, dass das so einfach geht.
Eine ComboBox ist nun mal nicht dafür gedacht in ihrer DropDown-Liste "Pseudo-Buttons" zu handhaben.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Combobox mit Bitmaps

  Alt 30. Nov 2007, 13:10
Wieso sollte es nicht gehen?
Er muss es doch nur verwalten.
Bei OnMouseDown kennt er x und y.
Wenn er in einer ObjectListe feshält, welcher Eintrag welche Daten bekommen hat, kann er anhand davon bestimmen ob er gerade auf einem Bild geklickt hat oder auf den Textbereich.

Ich seh grad nicht wieso das nicht lösbar sein soll.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:27 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