AGB  ·  Datenschutz  ·  Impressum  







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

InfoBox aus fremden Projekt verwenden

Ein Thema von JulianT · begonnen am 25. Jan 2016 · letzter Beitrag vom 25. Jan 2016
Antwort Antwort
JulianT
(Gast)

n/a Beiträge
 
#1

InfoBox aus fremden Projekt verwenden

  Alt 25. Jan 2016, 07:58
Delphi-Version: XE4
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
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: InfoBox aus fremden Projekt verwenden

  Alt 25. Jan 2016, 08:10
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
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
171 Beiträge
 
Delphi XE2 Professional
 
#3

AW: InfoBox aus fremden Projekt verwenden

  Alt 25. Jan 2016, 08:12
Wo erzeugst du denn die InfoBox?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: InfoBox aus fremden Projekt verwenden

  Alt 25. Jan 2016, 08:23
Es gibt einen Bibliothekspfad und einen Suchpfad.

Wenn die dfm nicht über den Suchpfad gefunden werden kann, dann gibt das so eine Meldung.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: InfoBox aus fremden Projekt verwenden

  Alt 25. Jan 2016, 09:32
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;
  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 04:01 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