Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi InfoBox aus fremden Projekt verwenden (https://www.delphipraxis.net/188022-infobox-aus-fremden-projekt-verwenden.html)

JulianT 25. Jan 2016 07:58

Delphi-Version: XE4

InfoBox aus fremden Projekt verwenden
 
Hallo und guten Morgen.
Ich habe ein klitzekleines Problem. Ich "baue" gerade ein Projekt nach und möchte dafür aus meiner bereits vorhandenen Menüzeile den Punkt "Über" mit einer Infobox belegen. Ich stoße dabei jedoch schon auf das Problem mit der .dfm Datei zur zugehörigen Unit.
Diese habe ich im Originalprojekt so abgeändert, wie sie sein soll (geringerer Leistungsumfang sprich weniger Erklärung über die Arbeit des Programmes in der Infobox). Implementiere ich nun die pas + dfm Datei in mein eigenes Projekt, wird mir folgender Fehler im kompilierten Programm ausgegeben:

http://qs.lc/0ct1f

Erstelle ich jedoch wiederum nur eine neue Unit, so wird mir logischerweise schon weit vorher der Hinweis gegeben, dass es keine dfm Datei zur pas Datei der Unit gibt.

Meine Frage wäre jetzt folgende: Der Quellcode der Unit steht soweit, ich krieg sie halt nur nicht korrekt und fehlerfrei ins Programm hinein. Wie also erstelle ich eine funktionierende Unit bzw. .pas Datei mit zugehöriger .dfm, sodass ich diese Infobox ins Programm kriege.

Delphi-Quellcode:
unit uInfoBox;

interface
  uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls, Vcl.Imaging.pngimage;

type
  TInfobox = class(TForm)
  Panel1        : TPanel;
  ProgramIcon  : TImage;
  ProductNameLbl: TLabel;
  VersionLbl   : TLabel;
  CopyrightLBL : TLabel;
  OKButton     : TButton;
  CompilerLbl  : TLabel;
  CopyMmo: TMemo;
  procedure OKButtonClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
    Infobox: TInfoBox;

implementation

{$R *.dfm}

procedure TInfoBox.OKButtonClick(Sender: TObject);
begin
  Close;
end;


end.
Der Befehl im Code des Hauptprogrammes sieht kurz und knapp so aus:
Delphi-Quellcode:
procedure TForm1.AboutMenuClick(Sender: TObject);
begin
  Infobox.Show;
end;
Danke im Voraus :thumb:

baumina 25. Jan 2016 08:10

AW: InfoBox aus fremden Projekt verwenden
 
Keine Ahnung was du da so machst, externe Lins rufe ich nur ungern auf, so dass ich die Fehlermeldung nicht kenne. Die richtige Vorgehensweise ist folgende:

Projekt öffnen
Menüpunkt "Projekt / Dem Projekt hinzufügen (Umsch+F11)"
Unit uInfoBox hinzufügen

rapante 25. Jan 2016 08:12

AW: InfoBox aus fremden Projekt verwenden
 
Wo erzeugst du denn die InfoBox?

Sir Rufo 25. Jan 2016 08:23

AW: InfoBox aus fremden Projekt verwenden
 
Es gibt einen Bibliothekspfad und einen Suchpfad.

Wenn die dfm nicht über den Suchpfad gefunden werden kann, dann gibt das so eine Meldung.

Blup 25. Jan 2016 09:32

AW: InfoBox aus fremden Projekt verwenden
 
Ich vermute im Projekt muss erst eingestellt werden, dass dieses Formular automatisch erstellt werden soll.

Alternativ kann man das Formular auch selbst erzeugen und wieder freigeben.
In diesem Fall bietet sich ShowModal an.
Delphi-Quellcode:
procedure TForm1.AboutMenuClick(Sender: TObject);
begin
  if Assigned(InfoBox) then
    Infobox.Show
  else
  begin
    with TInfobox.Create do
    begin
      try
        ShowModal;
      finally
        Free;
      end;
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 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