Autor Beitrag
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Di 26.11.02 14:35 
Hallo
Ich habe eine Combobox und daran ein Popup Menü angeschlossen, wenn ich jetzt eine Zeile markiere und dann auf die rechte Maustaste drücke, dann soll vor dem "Aufpopen" überprüft ob eine Auswahl getroffen wurde, sprich ob ItemIndex > -1 ist, dann soll das Menü auch sichtbar werden, wenn aber kein Eintrag ausgewählt wurde, dann sende ich eine MessageDLG ab um den Benutzer darauf aufmerksam zu machen, das er einen Eintrag auswählen muss, trozdem wird jetzt das Menü sichtbar und das soll dann nicht passieren, wie unterbinde ich das jetzt?

cu Patmann
a.C.k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 93

WIN 2000
Delphi 6 Enterprise ; Delphi 7 Studio
BeitragVerfasst: Di 26.11.02 15:16 
Probiere mal etwas in der art...

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure Form1.ComboBox1ContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
  ComboBox1.PopupMenu := PopupMenu1;
  if ComboBox1.Text = '' then
    begin
    ShowMessage('blabla');
    ComboBox1.PopupMenu := NIL;
    end;
end;


so könnte es klappen, glaube ich.

_________________
Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren.
patmann2001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Di 26.11.02 18:15 
Äh nein, leider nicht :roll:
Das Menü wird dann trozdem Angezeigt, doch will man dann anschließend wieder das Menü aufrufen, dann erscheint es garnicht mehr.
Also ich bin jetzt hingegangen und setze alle Einträge im Menü auf Visible := false. Dann erscheint das Menü auch nicht, und bevor ich die Prüfung mache, ob ein Eintrag gewählt wurde, setzte ich alle Einträge im Menü auf Visible := true. So klappts sieht nur ein bisschen doof aus.

cu Patmann
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Di 26.11.02 19:37 
Hallo,

eine andere Variante wäre:
autopopup des Menus auf false zu stellen und das Menu selber nach der Abfrage mit popup(x,y) erscheinen zu lassen.
Dazu müßte man aber ein Mousedown-ereignis bei der Combobox abfragen können. Ich hab jetzt hier nur Delphi3 und da gibt klein onMousedown bei der Combobox :cry: .
Oder du setzt autopopup im onchange-ereignis erst auf true, wenn die von dir gewünschte Sache eintritt.

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)