2016-05-10 6 views
0

Ich möchte das Warteformular in meiner App anzeigen. aber wenn ich laufen soll, ich habe einen Fehler:Nicht deklarierter Bezeichner: 'TStatusWindowHandle' beim Erstellen des Warteformulars

procedure TForm1.Button1Click(Sender: TObject); 
var 
    status: TStatusWindowHandle; 
begin 
    status := CreateStatusWindow('Please Wait...'); 
    try 
    Sleep(2000); 
    finally 
    RemoveStatusWindow(status); 
    end; 

end; 

[Fehler] Unit1.pas (27): Die nicht angemeldete Kennung: 'TStatusWindowHandle'

+1

Von hier, [Was ist der einfachste Weg, um einen Bildschirm mit Delphi bitte zu warten?] (Http://stackoverflow.com/a/3781539/576719). –

+0

Die Fehlermeldung scheint mir sehr klar zu sein. Warum sollte "TStatusWindowHandle" definiert werden? Wo hast du es definiert? Was ist CreateStatusWindow? –

+0

Das ist ein Nachteil von SO als Code Writing Service, heh. –

Antwort

1

Die CreateStatusWindow() Funktion aus der Antwort von @AndreasRejbrant hier genommen wird : What's the easiest way to write a please wait screen with Delphi?.

Die TStatusWindowHandle Erklärung ist:

TStatusWindowHandle = type HWND; 

Die verknüpfte Antwort deutet darauf hin, einschließlich der Typdeklaration in eine separate Einheit, die CreateStatusWindow Funktion setzen. Und dann fügen Sie die Einheit in die uses-Klausel ein. Dies sollte auch hier geschehen, um den Compilerfehler zu vermeiden.

+1

Das eigentliche Problem ist jedoch, wohin diese Erklärung gehen soll. Es ist eindeutig erforderlich, die Definition der Funktion zu kompilieren. Wenn also der kopierte Code kompiliert wird, ist dieser Typ bereits definiert. Wir wollen es nicht neu definieren. Daher muss vermutlich eine Einheit zu einer uses-Klausel hinzugefügt werden. Vielleicht. Was der Fragesteller wirklich braucht, ist zu lernen, was der Fehler eigentlich bedeutet. Um zu lernen, wie man Code in einer Einheit definiert und in einer anderen Einheit konsumiert. Die Lösung des Problems wird auf lange Sicht nicht helfen. Der Fragesteller muss wirklich die Konzepte verstehen, die fehlen. –

+0

@DavidHeffernan, vereinbart, Zur Antwort hinzugefügt. –