AGB  ·  Datenschutz  ·  Impressum  







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

Item aus Mainmenü als sender?

Ein Thema von herrentor · begonnen am 4. Dez 2004 · letzter Beitrag vom 4. Dez 2004
Antwort Antwort
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#1

Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:13
moin, ich habe ein problem mit meinem mainmenü und zwar möchte ich einen eintrag wie einen button benutzen:

if sender=Speichern then in diesem fall ist Speichern ein button. was ich möchte ist:

if sender=Speichern or sender=mainmenu.speichernmenu then wie kann ich also einen mainmenueintrag als sender benutzen? danke im voraus.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:18
Moin Herrentor,

so wie ich das sehe, solltest Du Dich mal mit TActionList beschäftigen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#3

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:20
ist das nicht mit mainmenü möglich?
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:22
Mach das doch besser als Cast mit Typunterscheidung. Bsp:
Delphi-Quellcode:
if Sender is TButton then
begin
  with TButton(Sender) do
  .
  .
end
else
if Sender is TMainMenuItem then
  with TMainMenuItem(Sender) do
  .
  .
end;
Ist eleganter als den Sender gegen jede existiernde Instanz zu prüfen. Und wenn du dann doch noch unter einzelnen Buttuns oder MenuItems unterscheiden musst, so würde ich da die Eigenschaft "Tag" nutzen - oder wenn alle (ganz sicher) eine einzigartige Beschriftung haben, dann geht's auch über die Caption. Das ist aber langsamer und nicht so schön, da wenn du diese dann änderst das Contorl nicht mehr identifiziert werden kann.

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:23
Moin Herrentor,

doch, sollte gehen:

Delphi-Quellcode:
  if (Sender is TMenuItem) then begin
    if (Sender as TMenuItem) = Speichern1 then ShowMessage('SPEICHERN');
  end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:32
Zitat von Christian Seehase:
Moin Herrentor,

doch, sollte gehen:

Delphi-Quellcode:
  if (Sender is TMenuItem) then begin
    if (Sender as TMenuItem) = Speichern1 then ShowMessage('SPEICHERN');
  end;
Das as kann man sich hier allerdings sparen, da die Typprüfung dann ja schon erfolgreich war. Da reicht nen Cast (s.o.)
Und hast ja Recht: Es macht auch hier noch Sinn den Vergleich mit der Instanz zu machen. Meine Variante mit dem Tag ist nur Mehraufwand.

Was aber auch gehen müsste:
if Integer(Pointer(Sender)) = Integer(Pointer(Speichern1)) then .... Ob der Vergleich ganz ohne Cast auch geht weiss ich nicht, da es ja alles eh nur Integer sind. Es kann (und wird vermutlich) so sein dass der Compiler dann aber meckert. Also besser mit den Casts auf Nummer sicher gehen
Ob das nun schön/lesbar ist, das ist eine andere Frage
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#7

Re: Item aus Mainmenü als sender?

  Alt 4. Dez 2004, 02:34
ok, besten dank. funktioniert.
  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 03:12 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