AGB  ·  Datenschutz  ·  Impressum  







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

Actions in einer anderen Unit definieren

Ein Thema von Int3g3r · begonnen am 21. Dez 2018 · letzter Beitrag vom 16. Jan 2019
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.744 Beiträge
 
Delphi 12 Athens
 
#1

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 11:37
Und ich weiß gar nicht ob der Formular-Designer überhaupt so "schlau" wäre, eine von Hand per Code erzeugte ActionList in einer Unit einbinden und benutzen zu können.
Geht ja auch nicht, da die ActionList dann zur Design-Zeit noch gar nicht existiert. Die auf einem Datenmodul (oder auch Form oder Frame) platzierten Komponenten werden direkt zur Designzeit erzeugt und somit dem Designer auch bekannt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 12:37
Ich habe nun das Datenmodul eingefügt. Sobald ich aber den Dateiname des Datenmoduls ändere wird das Projekt nicht mehr kompilliert.
Zitat:
[dcc32 Fehler] hcTransport.dpr(18): E2003 Undeklarierter Bezeichner: 'TAction'
*.dpr Datei
Delphi-Quellcode:
program hcTransport;

uses
  Vcl.Forms,
  main in 'main.pas{frmMain},
  dmod_prg in 'dmod_prg.pas{dm: TDataModule},
  Kalender in 'Kalender.pas{Hauptprogramm},
  Actions in 'Actions.pas{Action: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(Tdm, dm);
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(THauptprogramm, Hauptprogramm);
  Application.CreateForm(TAction, Action);
  Application.Run;
end.
Action.pas
Delphi-Quellcode:
unit Actions;

interface

uses
  System.SysUtils, System.Classes;

type
  TAction = class(TDataModule)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Action: TAction;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

end.

Geändert von Int3g3r (21. Dez 2018 um 12:39 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.585 Beiträge
 
Delphi 7 Professional
 
#3

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 12:48
Das ist klar:

Actions sind vom Typ TAction.

Du hast nun auch noch ein Datenmodul erstellt, dass ebenfalls vom Typ TAction ist.

Aber: TAction <> TAction

Beim Erstellen von Datenmodulen ... solltest Du darauf achten, dass Du keinen Typen verwendest den es in anderem Kontext schon gibt.

Du hast doch schon ein dmod_prg in 'dmod_prg.pas{dm: TDataModule} , warum dann nicht statt Actions in 'Actions.pas{Action: TDataModule}; einfach dmActions in 'dmActions.pas{dmActions: TDataModule} ?
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 13:06
Das ist klar:

Actions sind vom Typ TAction.

Du hast nun auch noch ein Datenmodul erstellt, dass ebenfalls vom Typ TAction ist.

Aber: TAction <> TAction

Beim Erstellen von Datenmodulen ... solltest Du darauf achten, dass Du keinen Typen verwendest den es in anderem Kontext schon gibt.

Du hast doch schon ein dmod_prg in 'dmod_prg.pas{dm: TDataModule} , warum dann nicht statt Actions in 'Actions.pas{Action: TDataModule}; einfach dmActions in 'dmActions.pas{dmActions: TDataModule} ?
Besten Dank!
  Mit Zitat antworten Zitat
Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 13:34
Ich habe nun das Datenmodul eingebunden.
Von einem anderen Formular aus kann ich nun mit dem Befehl:
ac.dmOpenAll; die Datenbanken öffen.

Ich möchte aber nicht einen Befehl im Quelltext ausführen sondern mit dem Objektinspektor verknüpfen.
Siehe Bild (Rot = so möchte ich die Action eingetragen).

Ist dies überhaupt möglich ?
Angehängte Grafiken
Dateityp: jpg action.jpg (77,2 KB, 20x aufgerufen)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.585 Beiträge
 
Delphi 7 Professional
 
#6

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 13:42
Steht das Datenmodule im Uses der frmMain?

Wenn nein, bitte dort eintragen.

Im Objektinspektor bitte eingeben:

Datenmodulname.ActionnameExecute

also in etwa ac.dmOpenAllExecute

Eigentlich sollte der Objektinspektor aber beim Klick auf den Pfeil rechts eine Liste mit alle dem anzeigen, was dem Ereignis zugewiesen werden kann.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.744 Beiträge
 
Delphi 12 Athens
 
#7

AW: Actions in einer anderen Unit definieren

  Alt 21. Dez 2018, 13:49
Eigentlich sollte der Objektinspektor aber beim Klick auf den Pfeil rechts eine Liste mit alle dem anzeigen, was dem Ereignis zugewiesen werden kann.
Dazu muss das Datenmodul in der uses-Anweisung stehen und im Designer geöffnet sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 11:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz