AGB  ·  Datenschutz  ·  Impressum  







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

Deklaration

Ein Thema von Hellcat · begonnen am 27. Mär 2003 · letzter Beitrag vom 31. Mär 2003
Antwort Antwort
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#1

Deklaration

  Alt 27. Mär 2003, 11:42
Hi Leute!

Folgendes Probelem: Ich hab eine Prozezur auf der Haupt-Unit geschrieben, hab nun eine zweite Form hinzugefügt und die Prozedur auf die neue Unit verlegt. Beim Compilieren erhalte ich jettz immer folgende Meldung:
"[Error] UnitLS.pas(14): Unsatisfied forward or external declaration: 'TForm2.speichern'"

Frage: Wo muss ich den Verweis auf die Prozedur ändern um diesen Fehler abzustellen?

Prozeduraufruf:
Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);//Menüpunkt "Speichern"
begin
  speichern;
end;
Uses und Type der neuen Unit:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ExtCtrls, unittype;

type
  TForm2 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    procedure speichern;
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2
  Alt 27. Mär 2003, 11:51
Du hast nur den Aufruf verschoben.

Du musst auch die Implementierung in die 2. Unit ziehen und dann aus dem Hauptform über Form2.Speichern aufrufen.

Also:
Code:
Procedure TForm1.Speichern;
begin
  // blafasel
end;
muss auch nach Form2.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 27. Mär 2003, 11:57
Das Ereignis was die Prozedur aufruft passiert aber nach wie vor noch auf Form1...oder ist das in diesem Fall irrelevant?
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 27. Mär 2003, 15:03
Ok, ich hab's anders gelöst, aber jetzt stehe ich wieder vor einem Deklarationsproblem (deswegen hab ich keinen neuen Thread aufgemacht @mods)
Er gibt mir bei folgender Zeile die Fehlermeldung "Undeclared Identifier"

Form2.ListBoxLaden.Items.Add(DateTimeToStr(Now)); Wie muss ich die Form2 unter Uses deklarieren damit ich diesen Fehler erschossen kriege?
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 27. Mär 2003, 16:32
Hallo,
wenn ich Dich richtig verstanden habe, hast Du auf Form2 eine Listbox mit Namen ListBoxLaden.

Code der Form1:
Delphi-Quellcode:

UNIT Unit1;

...
IMPLEMENTATION

USES Unit2;

{$R *.DFM}

PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
   Form2.ListBoxLaden.Items.Add(DateTimeToStr(Now));
   Form2.Show;
END;
Wenn Du nur Form2.ListBoxLaden.Items.Add(DateTimeToStr(Now)); schreibst, und in der IDE auf Start drückst, sollte dich Delphi darauf aufmerksam machen, das Form2 in der Deklaration fehlt und Dir anbietet Form2 selbstständig einzubinden.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 31. Mär 2003, 10:16
Hab ich aber gemacht und erhalte trotzdem diese Meldung...

Also, schildern wir das Problem mal ausführlicher:
Die UnitLS gehört zur Form2. Auf Form2 befindet sich eine ListBox, bei der die Einträge über eine Funktion erfolgen die sich auf der Unitfunc befindet.

Uses der Haupt-Unit
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, unittype, unitfunc,unitls, Menus, ExtCtrls, StdCtrls, ActnList, StdActns;
Uses der Unitfunc
Delphi-Quellcode:
uses SysUtils, ExtCtrls, StdCtrls, Controls, Classes, Graphics, Dialogs,Forms,
     unittype;
Uses derUnitLS
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ExtCtrls, unittype;
Anweisung zum Schreiben in der Listbox (auf der Unitfunc)
 Form2.ListBoxLaden.Items.Add(DateTimeToStr(Now));
2+2=5 (for large values of 2)
  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 19:52 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