AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Popup Menü auf erstellter Listbox
Thema durchsuchen
Ansicht
Themen-Optionen

Popup Menü auf erstellter Listbox

Ein Thema von loirad · begonnen am 18. Mai 2012 · letzter Beitrag vom 18. Mai 2012
Antwort Antwort
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#1

Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 14:44
Hallo liebe Community,

ich habe mehrere Listboxen während der Laufzeit erstellt. Jede von ihnen bekommt das gleiche Popup zugewiesen.

Jetzt versuche ich mit diesem Code einen Text in die jeweilige Listbox einzufügen:

Delphi-Quellcode:
if Rechtsklick.PopupComponent is TListbox then
(Rechtsklick.PopupComponent as TListbox).Items.Add('Irgendein Text');
Es erscheind jedoch kein Text! Wo liegt mein Denkfehler?
Beim debuggen sagt er mir: (Rechtsklick.PopupComponent as TListbox) = Ungültiger Ausdruck im Evaluator!

Liebe Grüße und hoffentlich hilfreiche Antworten
loirad
Wer Fehler findet darf sie behalten!

Geändert von loirad (18. Mai 2012 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 15:56
Was ist Rechtsklick? Klingt für mich wie ein Ereignis. etwas mehr Code wäre, glaube ich, hilfreich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 16:08
Rechtsklick wird das PopupMenu sein, sagt mir meine Glaskugel
Lars
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#4

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 16:42
Ich vermute mal das sollte eher so aussehen,vorausgesetzt dein Rechtsklick.PopupComponent ist auch die entsprechende Listbox (Sender).

TListBox(Rechtsklick.PopupComponent).Items.Add('Irgendein Text');
I love DiscCat
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 17:46
TListBox(Rechtsklick.PopupComponent).Items.Add('Irgendein Text');
So ein harter Cast macht alles nur noch schlimmer.
Wenn man nicht sicher ist mit welcher Komponente man es zu tun hat, dann lässt man sich den Namen ausgeben:
Delphi-Quellcode:
procedure ShowCompName(c:TComponent);
begin
  if Assigned(c) then
    ShowMessage(c.Name+':'+c.ClassName);
end;

...
ShowCompName(Rechtsklick.PopupComponent);
Andreas
  Mit Zitat antworten Zitat
busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#6

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 18:12
Naja er hat ja schon ne if Überprüfung auf TListbox, die hab ich nur nicht dazugeschrieben weil ich glaube der Haupt-Fehler liegt in der einen Zeile und denke das
er schon weis das die if-Abfrage dazugehört.
Ich wollte aber noch anmerken das Sender(TObject) prima zum Verweis auf das eigentlich aufrufende Object verwendet werden kann.
Die Casts sind mit den richtigen Typen absolut problemlos und oft sogar notwendig.
Aber ich seh's ein ich hab geschludert und es nicht eindeutig geschrieben.
I love DiscCat

Geändert von busybyte (18. Mai 2012 um 18:21 Uhr)
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#7

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 19:55
Rechtsklick ist in der Tat das Popup-Menü.
Dieser Ausschnitt ist ein Teil der Prozedur, die ausgelöst wird bei dem Klick auf ein Element des Popup-Menüs.

@busybyte: Der Code funktioniert leider auch nicht.
@shima: Er gibt mir zurück, dass es eine TListBox ist.

Was hat das hier zu bedeuten:
Code:
(Rechtsklick.PopupComponent as TListbox) = Ungültiger Ausdruck im Evaluator!
(das gibt er mir beim debuggen zurück, wenn ich über den Punkt dahinter gehe)!
Hat das etwas damit zu tun?

Liebe Grüße und vielen Dank für die Antworten
loirad

PS.: Wenn ihr den gesamten Code sehen wollt, dann sagt bitte nochmal bescheid!
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#8

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 19:57
Fehler gefunden!!!
Es lag daran, dass ich im DrawItem etwas hatte, was vor das Item etwas gezeichnet hat *facepalm* !

Vielen Dank trotzdem für eure Hilfe!
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Popup Menü auf erstellter Listbox

  Alt 18. Mai 2012, 20:27
So ein harter Cast macht alles nur noch schlimmer.
Also ich weiß nicht, ich mache es schon seit Jahren so ohne je ein Problem gehabt zu haben. Aber ich gebe zu, bei sowas steht IMMER, und eigentlich ohne Ausnahme, an erster Stelle zuerst eine Abfrage ob Sender die passende Komponente ist. Unter der Voraussetzung weiß ich nicht welchen besseren Zweck die andre Methode hätte. In beiden Fällen gibt es eine Fehlermeldung, bei dem ersten wg. Zugriffsverletzung, bei dem anderen wg. Typenumwandung.

Nicht falsch verstehen, bin bereit meine Einstellung zu ändern, und wenn einer sagt, man macht es so, weil man es so machen soll und das die einzige richtige Art der Programmierung ist, dann bin ich beriet es zu akzeptieren.
  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 18:34 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