AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ComboBox-Liste anzeigen ohne ComboBox

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

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#11

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 22. Jan 2010, 16:03
Nimm ne Listbox und fülle sie mit deinen Daten. Mach sie unsichtbar.

Bei Rechtsklick positionierst du sie unter der Maus (X und Y auf Left und Top - auf den Screen umrechnen nicht vergessen) und machst sie sichtbar. Unsichtbar machen kannst du sie auf ItemChange. Fertig.

Alternativ plazierst du sie auf einem Form. Dem Form nimmst du die Titelleiste weg. Dann hast du den selben effekt wie oben, kannst die Listbox aber auf dem ganzen Desktop anzeigen. Über das Form-Objekt kannst du dann von deiner App mit deinem Konstrukt interagieren und notfalls hat sie auch noch ein Handle.

Wie? Das ist unsauber? Stimmt vielleicht... Alle anderen Lösungen auch.


Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

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

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 25. Jan 2010, 08:09
@Alaitoc:
zunächst einmal danke für Deine Anteilnahme. Nur denke ich, das ein Handle einer Canvas (HDC) doch etwas anders ist als ein Handle eines Fensters (HWND). Und ich dachte da eigentlich daran, das man an diesen Handle ran kommt, der auch intern hier verwendet wird:
Delphi-Quellcode:
procedure TCustomCombo.AdjustDropDown;
var
  Count: Integer;
begin
  Count := ItemCount;
  if Count > DropDownCount then Count := DropDownCount;
  if Count < 1 then Count := 1;
  FDroppingDown := True;
  try
    SetWindowPos(FDropHandle, 0, 0, 0, Width, ItemHeight * Count +
      Height + 2, SWP_NOMOVE or SWP_NOZORDER or SWP_NOACTIVATE or SWP_NOREDRAW or
      SWP_HIDEWINDOW);
  finally
    FDroppingDown := False;
  end;
  SetWindowPos(FDropHandle, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or
    SWP_NOZORDER or SWP_NOACTIVATE or SWP_SHOWWINDOW);
end;
Hier wird wohl irgendwie ein Handle verwendet für ein DropDownWindow (FDropHandle). Aber ich weiß auch nicht ob es die richtige Stelle ist und zum zweiten ist der Handle im Protected bereich deklariert. Aber egal, denn ich gehe zunächst den Weg des geringsten Widerstandes wie ich es schon beschrieben hatte und ähnlich wie es Tonic1024 auch meinte -> selber nachbauen was machen braucht.

Danke an alle,

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
 
#13

Re: ComboBox-Liste anzeigen ohne ComboBox

  Alt 26. Jan 2010, 11:11
Hm habe doch noch was gefunden, vll hilft es dir ja noch:

http://www.swissdelphicenter.ch/de/showcode.php?id=639

MfG Alaitoc
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf