AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Abfragen welche Action ausgelöst wurde
Thema durchsuchen
Ansicht
Themen-Optionen

Abfragen welche Action ausgelöst wurde

Ein Thema von missi · begonnen am 9. Aug 2005 · letzter Beitrag vom 9. Aug 2005
Antwort Antwort
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#1

Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 10:21
habe auf meiner Hauptform eine TActionList mit 2 Actions
1. Bearbeiten
2. Hinzufügen

ich möchte dies in einer nebenform abfragen. welche action ausgelöst wurde.

nur so springt er mir über meine if-abfrage und gibt an das in sender nichts drin steht.

Delphi-Quellcode:
if Sender = fMain.TAEinfuegen then
begin
   if fMain.TB1.Locate('Seriennummer', EdtSerial.Text, []) = False then
   begin
      EString := 'INSERT INTO ....';
   end
   else begin
      ShowMessage('Seriennummer ist schon vorhanden!');
      ModalResult := mrNone;
      Exit;
    end;
end
else if Sender = fMain.TABearbeiten then
begin
   EString := 'UPDATE ....';
end;

fMain.DBCom.CommandText := EString;
fMain.DBCom.Execute;
im vorraus vielen dank

lg missi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 10:40
Hi missi,

wenn du deine Actions einem MenuItem oder Button zuweist, dann wird dort im Ereignis OnClick() deine Action ausgeführt - der Sender ist dann die Komponente, deren OnClick-Handler getriggert wurde.
Wenn du eine Art Command-Log schreiben willst, dann mache das doch gleich im Action-Code.

Grüße vom marabu
  Mit Zitat antworten Zitat
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#3

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 10:46

also *verpeiltschaut*

ich rufe durch die actionlist die gleiche nebenform auf
und die form soll abfragen woher der klick kam wenn man im nebenform auf ok klickt.

versteh nicht ganz wie ich das in die actionlist integrieren soll bzw im source.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 10:57
Durch deine ActionList rufst du gar nichts auf - du hast Actions, und die werden normalerweise von einer Benutzerin ausgelöst, indem die irgendwelche Bedien-Elementen deiner Programmoberfläche mit der Maus traktiert.

Im Action-Code, der bei dir wahrscheinlich auf fMain beheimatet ist, erledigst du was zu erledigen ist. Wie wird denn der von dir gezeigte Code auf der NebenForm aktiviert?

marabu
  Mit Zitat antworten Zitat
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#5

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 11:02
durch meine ok button von der nebenform


Delphi-Quellcode:
procedure TfmAddSNr.BtnAddSerialClick(Sender: TObject);
var
  EString: String;
begin
  if (EdtSerial.Text <> '') and (EdtDescription.Text <> '') then
  begin
    if MEdtDate.Text <> ' . . then
    begin
      try
      StrToDate(MEdtDate.Text);
      except
        ShowMessage('Ungültiges Datum wurde angegeben!');
        ModalResult := mrNone;
        Exit;
      end;
        if Sender = fMain.TAEinfuegen then
        begin
          if fMain.TB1.Locate('Seriennummer', EdtSerial.Text, []) = False then
         .
         .
         .
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 12:59
Wenn ich das richtig erkenne, dann hast du ein Hauptfenster fMain mit einer ActionList und Actions, sowie einen Dialog fmAddSNr mit Eingabefeldern und zwei Buttons zum Hinzufügen und Ändern eines Datensatzes.

Dem Schalter BtnAddSerial hast du per Object Inspector einen Handler für das Ereignis OnClick() zugewiesen. Wie soll da eine Beziehung zur Action fMain.TAEinfuegen existieren?

Normalerweise entwirfst du deine Forms und Dialogfenster, packst deine Bedienelemente drauf und eine ActionList. Wenn du den Code für deine Actions geschrieben hast, dann ordnest du die Action den gewünschten Bedienelementen (Schalter, MenuItem, ...) zu. Du darfst dann keine OnClick-Handler erstellen. Eigentlich hätte ich erwartet, dass du TAEinfuegen der Eigenschaft BtnAddSerial.Action zuweist, aber ich sehe nur den OnClick-Handler. Du musst dich entscheiden, eines oder das andere, beides geht nicht. Die "bessere" Lösung ist auf jeden Fall die Action, und in deren Code brauchst du nicht zu fragen, ob sie getriggert wurde...

marabu
  Mit Zitat antworten Zitat
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#7

Re: Abfragen welche Action ausgelöst wurde

  Alt 9. Aug 2005, 14:10
versteh zwar nur die hälfte aber habe eine lösung gefunden

Delphi-Quellcode:
procedure TfMain.TABearbeitenExecute(Sender: TObject);
begin
  fmAddSNr.EdtSerial.Text := TB1.FieldByName('Seriennummer').AsString;
  fmAddSNr.EdtDescription.Text := TB1.FieldByName('Bezeichnung').AsString;
  fmAddSNr.MEdtDate.Text := TB1.FieldByName('Ablaufdatum').AsString;

  fmAddSNr.ShowModal;
  if fmAddSNr.ModalResult = mrOK then
    UpdateData(1)
end;

procedure TfMain.TAEinfuegenExecute(Sender: TObject);
begin
  fmAddSNr.ShowModal;
  if fmAddSNr.ModalResult = mrOK then
    UpdateData(0)
  end;
ich übergebe einfach meiner funktion die id 1 || 0 und weiss daher woher er kam.

what für nen chaos lach

thx nochmal für die schnelle antwort

lg ela
  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 10: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