AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dem Hauptprogramm Funktionen modular hinzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Dem Hauptprogramm Funktionen modular hinzufügen

Ein Thema von barnti · begonnen am 22. Jul 2004 · letzter Beitrag vom 23. Jul 2004
Antwort Antwort
Seite 2 von 2     12   
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Dem Hauptprogramm Funktionen modular hinzufügen

  Alt 22. Jul 2004, 15:57
Hallo,

ok, das Kompelieren der dll habe ich geschafft. Wenn es Deine Zeit erlaubt, hätte ich gern gewusst (auch gern nur kurz ) wie dem Menü die entsprechenden Items und deren Ereignisse hinzugefügt werden...
Danke Dir vielmals!
Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Dem Hauptprogramm Funktionen modular hinzufügen

  Alt 23. Jul 2004, 11:35
Hallo Sakura,
eine Frage:

Delphi-Quellcode:

constructor TPlugin.Create(aOwner: TPlugIns; aDLLName: String);
begin
  inherited Create;
  FDLLName := aDLLName;
  FOwner := aOwner;
  LoadPlugIn;

...
procedure TPlugin.LoadPlugIn;
var
  ProcAddr: Pointer;
  LoadPlugInProc: TLoadPlugIn;
begin
  // load library
  FHandle := LoadLibrary(PChar(DLLName));
  if (FHandle = INVALID_HANDLE_VALUE) or (FHandle = 0) then
    // library could not be loaded
    Abort;

  ProcAddr := GetProcAddress(FHandle, 'LoadPlugIn');
  if ProcAddr = nil then
  begin
    // plug-in load function is not exported, free library...
    FreeLibrary(FHandle);
    FHandle := INVALID_HANDLE_VALUE;
    // and abort
    Abort;
  end;

  try
    LoadPlugInProc := TLoadPlugIn(ProcAddr); // Was passiert hier genau? Es wird erst ein
   // try executing the registration method // Objekt vom Typ 'TPlugin' erzeugt und dann
    if not LoadPlugInProc(FOwner.Owner, FPlugIn) then // dessen Methode 'LoadPlugin' aufgerufen?
    // registration failed, abort loading // Durch diesen Aufruf wird Das Plugin
 abort;
    
// aktiviert. Wie werden dort die Menüeinträge verwaltet und erweitert? Du sagtest das alle
// Menüpunkte 'gekapselt' werden. Wo und wie geschieht das?
Gefunden habe ich dazu:
Delphi-Quellcode:
procedure TPlugInObject02.AppendMenu;
var
  MainMenu: TIMainMenu;
  FileMenu, CloseMenu: TIMenuItem;
  MainMenuItems: TIMenuItems;
begin
  MainMenu := Parent.GetMainMenu; // Was passiert hier? Wird das ganze Menü zurückgeliefert?
  try
    MainMenuItems := MainMenu.GetMenuItems; // Und hier? Alle MenüItems?
    try
      FileMenu := MainMenuItems.FindItem('mnuFile');
      if FileMenu <> nil then
      try
        CloseMenu := FileMenu.FindItem('mnuFileClose');
        try
          FileMenu.InsertMenuItem(CloseMenu.GetIndex, 'Save All',
              {'Saves all files'}'Arndt ist schlau', 'mnuFileSaveAll', scShift + scCtrl + Ord('S'),
              MNI_SAVEALL, OnMenuClick).Free;
          FileMenu.InsertMenuItem(Succ(CloseMenu.GetIndex), 'Close All',
              'Closes all files', 'mnuFileCloseAll', scShift + scCtrl +
              Ord('C'), MNI_CLOSEALL, OnMenuClick).Free;
        finally
          CloseMenu.Free;
        end;
      finally
        FileMenu.Free;
      end;
    finally
      MainMenuItems.Free;
    end;
  finally
    MainMenu.Free;
  end;
end;
Vielleicht kannst Du mir mal ein Objektdiagramm zeichnen in dem die Verweise mitaufgeführt sind...

Das waren wohl mehrere Fragen... Es wäre schön, wenn du mir ein wenig weiterhelfen könntest!

Danke vielmals!
Gruß,

Barnti
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:30 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