AGB  ·  Datenschutz  ·  Impressum  







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

PopupMenu mit <100 Einträgen darstellen

Ein Thema von Eppos · begonnen am 20. Dez 2012 · letzter Beitrag vom 20. Dez 2012
Antwort Antwort
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#1

PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 14:54
Hallo zusammen,

ich stehe vor einem Problem,
Ich fülle zur Laufzeit ein PopupMenu mit ca. 100 Einträgen,
dass Problem ist, das das Popupmenu im oberen und unteren Rand Items verschluckt.

Gibt es eine Möglichkeit einen Umbruch oder so ähnlich anzeigen zu lassen?

Gruß
  Mit Zitat antworten Zitat
Thomas Feichtner

Registriert seit: 30. Nov 2007
Ort: Rum
137 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 14:59
Hallo Eppos,

die Darstellung von 100 Einträgen ist sicherlich sehr unübersichtlich. Kannst du diese Menüs nicht in Gruppen zusammenfasen, damit es übersichtlicher bleibt?
Sonst wüsste ich derzeit auch keine Lösung für ein Problem
mfg

Thomas Feichtner
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 15:02
sorry, es müssen so viele sein
  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: PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 15:14
Du kannst die dazustellende Größe in Pixeln festlegen, hierbei enstehen dann Scrollbuttons wenn nötig.
Delphi-Quellcode:
procedure TForm4.PopupMenu1Popup(Sender: TObject);
var
 mi: tagMENUINFO;
begin
  mi.cbSize := SizeOf(mi);
  mi.fMask := MIM_MAXHEIGHT;
  mi.cyMax := 150;
  SetMenuInfo(popupmenu1.Handle, mi)
end;
MENUINFO structure
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
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#5

AW: PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 16:41
Du kannst bei einem TMenuItem angeben ob dort gebrochen werden soll, z. B. eine zweite Spalte.
Vielleicht wäre das was für dich.
Property break := mbBarBreak; .

[Edit]
Hier ein kleines Beispiel.
Es erzeugt 100 Einträge und nach jedem 10. wird gebreaked
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  S: String;
  Item: TMenuItem;

begin
  for i := 1 to 100 do
    begin
      //
      S := Format('Das ist Item %d', [i]);

      Item := NewItem(S, 0, false, true, nil, 0, ''); //auf das OnClick-Ereignis wird hier jetzt verzichtet (=nil)

      If ((i -1) mod 10) = 0 then
        Item.Break := mbBarBreak;

      PopUpMenu1.Items.Add(Item);
    end;
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (20. Dez 2012 um 18:20 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: PopupMenu mit <100 Einträgen darstellen

  Alt 20. Dez 2012, 19:25
sorry, es müssen so viele sein
Nein. Muss nicht. Du bist nur zu faul, umzudenken.

Verwende eine andere Eingabemetapher oder mach Dir Gedanken über die Usability oder überdenke dein Konzept. Kein Mensch möchte aus 100 Einträgen über ein Popupmenü eine Auswahl tätigen.
  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 23: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