AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox-Liste anzeigen ohne ComboBox

Ein Thema von ChrisE · begonnen am 22. Jan 2010 · letzter Beitrag vom 26. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 08:44
Hallo,

irgendwo hatte ich es mal gesehen, das man die DropDownListe einer ComboBox aufrufen konnte ohne das die ComboBox sichtbar war / wurde.

Es gibt ja das hier:

Delphi-Quellcode:
ComboBox1.Perform(CB_SHOWDROPDOWN, Integer(True), 0);
// bzw.
ComboBox1.DropDown := TRUE;
Beides macht aber die ComboBox selber sichtbar. Ich brauche aber nur die AuswahlListe der ComboBox an der Stelle an der User klickt. Ein Popup-Menü könnte zu groß / lang werden, daher wollte ich so ein DropDown-Liste einer ComboBox zur Auswahl verwenden. Aber ich finde das nicht mehr

Weiß da jemand was?

THX, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 08:45
Du könntest die Liste auslesen und ein Popupmenü zur Anzeige verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 08:46
Hallo mkinzler,

Zitat von ChrisE:
Ein Popup-Menü könnte zu groß / lang werden, daher wollte ich so ein DropDown-Liste einer ComboBox zur Auswahl verwenden
Sorry, aber das genau wollte ich verhindern, denn die Liste kann sehr groß werden

Aber danke.

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von SnergleTheDwarf
SnergleTheDwarf

Registriert seit: 25. Jul 2003
32 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 10:56
ist dann nicht eher TListBox was für dich ?
Best regards
SnergleTheDwarf
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 12:17
Hallo,
Zitat von SnergleTheDwarf:
ist dann nicht eher TListBox was für dich ?
das ist nicht ganz falsch. Nur ist es so. Ich will die Oberfläche nicht zu sehr überladen. Also sollte diese Listbox nicht immer sichtbar sein.

Bei meinem Problem gibt viele Einträge - wie bei einer Liste.Diese Einträge erzeuge ich derzeit über Frames. Bei diesen Einträge soll man die Möglichkeit haben diese anzupassen. Hier soll aber keine Freitext-Eingabe erstellt werden sondern eine Auswahl verschiedener vordefinierter Elemente. Dies können nur 2 sein aber eben auch sehr viele.

Ein Beispiel wie ich mir es Wünsche ist z.B. die ShortCut-Liste im OI. Da geht so eine ComboBox-Liste auf, man wählt aus und dann steht der Text des ShortCuts in dem Feld drinne.

Bei mir ist es ein Button der eine Caption hat und den Wert anzeigt. Drücke ich den Button, wird die entsprechend eingestellte Aktion ausgelöst. Neben dran ist ein Kleiner Button (Pfeil nach unten) zum ändern der Aktion des Buttons. Wird dieser gedrückt, soll der Nutzer die entsprechende Aktion auswählen können aus einer solchen Liste.

Nun, ich werde mir Wohl durch ein rahmenloses Fenster mit einer Listbox behelfen und dem Fenster noch ein bisschen Funktionalität mit geben, damit es sich so verhält wie eine Liste von ner ComboBox.

Aber mich würde das trotzdem interessieren wie das ging, das man die Liste der ComboBox aufruft ohne die ComboBox an zu zeigen. Da gab es was - ich finde es nur nicht mehr

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#6

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 13:03
Zitat:
das man die Liste der ComboBox aufruft ohne die ComboBox an zu zeigen.
Ist das nicht ein Widerspruch?
Wie soll denn das bitte gehen??
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 15:20
Zitat von MichaelLinden:
Ist das nicht ein Widerspruch?
Da hast du nicht ganz unrecht, aber ich habe ja in #5 versucht zu erklären wie ich es meine. Mir geht es nur um die Liste der ComboBox - also um die Darstellung der Liste und die Interaktionsmöglichkeiten. Es geht mir nicht zwingend darum, ein ComboBox zu verwenden. Der User muss/darf die ComboBox auch nicht sehen. Er soll nur die Möglichkeit haben, aus einer Liste aus zu wählen, wie er es bei einer ComboBox auch kann und kennt. Sprich: Knöpfchen drücken, Liste geht auf, Eintrag auswählen (mit Maus, Tastatusbefehlen), Auswahl abbrechen mit ESC etc. Eben so wie man es von einer Auswahlliste einer ComboBox kennt.

Zitat von MichaelLinden:
Wie soll denn das bitte gehen??
Das würde ich auch gerne wissen

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 15:30
Ich behaupte einfach mal es geht nicht, da die Box zum Ausklappen ja ein Teil der Komponente ist
und halt mitgezeichnet wird. Wenn also die Komponente nicht sichtbar ist, kann auch die Box zum
Ausklappen nicht angezeigt werden.

Bei meiner Komponente wo ich ein Fenster zum Darstellen des Treeviews meiner Combobox nutze, würde
es theorethisch gehen...da es halt in gewisser Weise eine eigenständige Komponente ist und nicht
ein Bestandteil der Komponente.

Hoffe es war annährend verständlich ^_°

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 15:43
Nun ja,

ich gehe eigentlich davon aus, dass diese Liste die da angezeigt wird ein eigenen Fensterhandle hat. Den will ich irgendwie bekommen und dann nur dieses "Fenster" anzeigen. Und ich hatte die Hoffnung, dass dieses Fenster wie von alleine verschwindet wie man es kennt bei einer ComboBox und ich dann die Combobox nur noch "Fragen" muss welcher Eintrag Selektiert ist

Das war die Idee.

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 15:59
Dafür ist diese Komponente halt einfach nicht gedacht

Delphi-Quellcode:
procedure TCustomComboBox.CNDrawItem(var Message: TWMDrawItem);
var
  State: TOwnerDrawState;
begin
  with Message.DrawItemStruct^ do
  begin
    State := TOwnerDrawState(LongRec(itemState).Lo);
    if itemState and ODS_COMBOBOXEDIT <> 0 then
      Include(State, odComboBoxEdit);
    if itemState and ODS_DEFAULT <> 0 then
      Include(State, odDefault);
    FCanvas.Handle := hDC; // <----------------------- Handle
    FCanvas.Font := Font;
    FCanvas.Brush := Brush;
    if (Integer(itemID) >= 0) and (odSelected in State) then
    begin
      FCanvas.Brush.Color := clHighlight;
      FCanvas.Font.Color := clHighlightText
    end;
    if Integer(itemID) >= 0 then
      DrawItem(itemID, rcItem, State) else
      FCanvas.FillRect(rcItem);
    if odFocused in State then DrawFocusRect(hDC, rcItem);
    FCanvas.Handle := 0;
  end;
end;
Hier sieht man das das Handle vom Canvas der Combox genommen wird. ( Bzw das Handle wird benutzt das dem Canvas zugewiesen wird, aber läuft ja im Endeffekt auf das gleiche hinaus ... )

Ne Listbox ist da im Endeffekt wohl einfach besser für geeignet

MfG Alaitoc
  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 23:49 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