![]() |
Identifier not found -- Wo steckt der Fehler
Hallo zusammen,
Ich bin neu in diesem Forum, daher packt diesen Threat bitte an eine andere Stelle, wenn die aktuelle platzierung nicht passt.# Auch bin ich neu in Pascal und daher wird dies bestimmt ein ,Aanfängerfehler sein, wo ihr euch denkt och man ist der doooooof :lol: (Bitte seht über diese Felerchen hinweg. Zu meinem Compiler: Ich benutze Lazarus (hoffe ich bin hier im Delphi-Forum richtig) und es ist mein aller erstes Projekt damit. So genug gequatsch hier kommt der Code:
Delphi-Quellcode:
Jetzt zum Problem: In Zeile 63 also in der Fallunterscheidung zeigt er mir "Indentifier not found "Hintergrund"" an. So wie ich Pascal bis jetzt verstehe hab ich das doch aber oben denfiniert :?: .
unit DetektivwalterKohl;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons; type { TForm1 } TForm1 = class(TForm) Hintergrund: TSpeedButton; RechterPfeil: TSpeedButton; LinkerPfeil: TSpeedButton; StartKnopf: TSpeedButton; StartBildschirm: TSpeedButton; procedure LinksPfeilKlick(Sender: TObject); procedure Start(Sender: TObject); procedure StartBildschirmClick(Sender: TObject); procedure StartClick(Sender: TObject); procedure WelcherHintergrund(HintergrundZaehler:Integer); private public end; var Form1: TForm1; HintergrundZaehler : Integer; implementation {$R *.lfm} { TForm1 } procedure TForm1.StartBildschirmClick(Sender: TObject); begin HintergrundZaehler := 100 ; StartBildschirm.Glyph.loadfromfile('Startbildschirm.bmp'); // wechsel Bild zu TrippleD-production StartKnopf.Visible := True; end; procedure TForm1.Start(Sender: TObject); begin end; procedure TForm1.LinksPfeilKlick(Sender: TObject); begin HintergrundZaehler := HintergrundZaehler +1 ; WelcherHintergrund(HintergrundZaehler); end; procedure WelcherHintergrund(HintergrundZaehler:Integer); begin if HintergrundZaehler = 99 then; Hintergrund.Glyph.loadfromfile('99.bmp'); end; procedure TForm1.StartClick(Sender: TObject); begin Hintergrund.Visible := True; RechterPfeil.Visible := True; LinkerPfeil.Visible := True; StartKnopf.Visible := False; StartBildschirm.Visible := False; end; end. Ich hoffe jemand kann mir helfen und ich kann das Programm fertigmachen. Für eure Mühe und Zeit schon eimal vielen Dank. Schönen Tag euch Schwalbe.Pilot PS.: Das Programm wir ein Spiel, genauer gesagt ein PointAndClickAdventuere, wenn ihr dafür weitere Tipps habt, ich nehme sie immer gerne :-D |
AW: Identifier not found -- Wo steckt der Fehler
Willkommen...:dp:
Delphi-Quellcode:
procedure WelcherHintergrund(HintergrundZaehler:Integer);
begin if HintergrundZaehler = 99 then; // das ; ist zu viel :-) Hintergrund.Glyph.loadfromfile('99.bmp'); end; |
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
An dem ; liegt es leider nicht, das hab ich da hin gesetzt um zu testen, ob es funktioniert.:( Denn mir wurde mal gesagt das die meisten fehler mit dem fehlenden ';' zusammenhängen.:? |
AW: Identifier not found -- Wo steckt der Fehler
Im Methodenkopf fehlt das "TForm1." vor dem Methodenname.
So ist es nur eine Prozedur, die nichts mit dem Formular und den Komponenten darauf zu tun hat. Dementsprechend kennt er den Hintergrund auch nicht. Ach ja: Das Semikolon hinter dem "then" muss trotzdem/auch weg |
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
Dankeschön :thumb: Auf sowas sind wir zu dritt nach 2 Stunden suchen nicht gekommen :lol: Ist das ein typische Anfängerfehler? Auf jeden Fall danke für die Hilfe. Ps: Ich lasse den Threat mal offen, falls noch solche Fehler kommen. :stupid: |
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
Mich wundert nur, dass dein Compiler keinen Fehler gemeldet hatte, da du oben die procedure bereits bekannt gemacht, sie aber nicht implementiert hattest. (Weil das TForm1 fehlte) Zitat:
|
Dieses Thema wurde am "31. Jan 2019, 10:41 Uhr" von "Luckie" aus dem Forum "Programmieren allgemein" in das Forum "Object-Pascal / Delphi-Language" verschoben.
|
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
Wenn das Bild im EXE-Ordner ist kannst du mit ParamStr(0) bzw. Application.Exename darauf zugreifen.
Delphi-Quellcode:
// Pfad + Dateiname der EXE ermitteln (z. B. C:\Programme\meineapp.exe)
FileName := Application.ExeName; // ODER FileName := ParamStr(0); // Den Pfad aus FileName extrahieren. Ergibt dann C:\Programme\ Path := ExtractFilePath(FileName);
Delphi-Quellcode:
Wenn du den Pfad zu anderen Verzeichnissen ermitteln möchtest, kannst du die Funktionen SpecialDirectory, SHGetFolderPath oder GetKnownFolderPath verwenden. Diese geben dann Pfade wie z. B. Windows-Ordner, Video-Ordner, .... zurück.
procedure WelcherHintergrund(HintergrundZaehler:Integer);
var FileName: String; Path: String; begin FileName := Application.ExeName; Path := ExtractFilePath(FileName); if HintergrundZaehler = 99 then; Hintergrund.Glyph.loadfromfile(Path + '99.bmp'); end;
Delphi-Quellcode:
function GetSpecialDirectory(ACSIDL: Integer; AHandle: Cardinal = 0): String;
const SHGFP_TYPE_CURRENT = 0; var APIResult: HRESULT; Buffer: Array[0 .. MAX_PATH - 1] of WCHAR; begin Result := ''; APIResult := SHGetFolderPathW(AHandle, ACSIDL, 0, SHGFP_TYPE_CURRENT, Buffer); if APIResult = S_OK then begin Result := WideString(Buffer); Result := IncludeTrailingPathDelimiter(Result); Result := Trim(Result); end; end;
|
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
Wichtiger finde ich jetzt dass er Spass dabei hat und der Lehrer zufrieden ist. :wink: Wenn man dagegen eine ernsthafte Anwendung macht, dann muss man sich um das (u.v.a.m.) auch kümmern. |
AW: Identifier not found -- Wo steckt der Fehler
Zitat:
Und ParamStr(0) vor seinen Dateiname einzufügen ist ja nicht wirklich schwierig. GetSpecialDirectory, etc. sind für einen Anfänger tatsächlich nichts. Da stimme ich dir zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz