Vordefiierte Konstanten ei Dialogs.[gelöst]
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Vordefiierte Konstanten ei Dialogs.[gelöst]
Hallo zusammen
Auf der Webseuíte http://wiki.freepascal.org/Dialog_Examp ... MessageBox
sind Konstanten für Dialogboxen etc vordefiniert.
Es wird darauf verwiedsen dass diese in dialogs.pp vordefiniert sind.
in meinen uses-Klauseln steht unter anderen der Eintrag "Dialogs".
offensichtlich ist dieser nich mit dialogs.pp gleich zu setzen. Die Konstanten müssten ja sonst bekannt sein.
oder was mache ich da falsch.
Wenn ich z.B schreibe Messagebox('blabla','blabla',MB_ICONQUESTION + MB_YESNO); kommt die Meldung 'Identifier not found "mb_yesno""
was muss ich denn tun?
Gruß Fritz
P.S ich habe mich inzwischen mit numerischen Werten beholfen, aber es muss ja auch "amtlich" funktionieren.
Auf der Webseuíte http://wiki.freepascal.org/Dialog_Examp ... MessageBox
sind Konstanten für Dialogboxen etc vordefiniert.
Es wird darauf verwiedsen dass diese in dialogs.pp vordefiniert sind.
in meinen uses-Klauseln steht unter anderen der Eintrag "Dialogs".
offensichtlich ist dieser nich mit dialogs.pp gleich zu setzen. Die Konstanten müssten ja sonst bekannt sein.
oder was mache ich da falsch.
Wenn ich z.B schreibe Messagebox('blabla','blabla',MB_ICONQUESTION + MB_YESNO); kommt die Meldung 'Identifier not found "mb_yesno""
was muss ich denn tun?
Gruß Fritz
P.S ich habe mich inzwischen mit numerischen Werten beholfen, aber es muss ja auch "amtlich" funktionieren.
Zuletzt geändert von haderlump am So 2. Sep 2018, 06:58, insgesamt 1-mal geändert.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Vordefiierte Konstanten ei Dialogs.
Du musst in uses noch LCLType mit aufführen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
-
- Beiträge: 206
- Registriert: Di 10. Nov 2009, 18:49
- OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
- CPU-Target: 32Bit/64bit
Re: Vordefiierte Konstanten ei Dialogs.
Die Lösung für solche Probleme finde ich immer über den Index der lcl:
http://lazarus-ccr.sourceforge.net/docs ... dex-8.html
Suchen, anklicken und schauen, in welcher Unit das ist.
http://lazarus-ccr.sourceforge.net/docs ... dex-8.html
Suchen, anklicken und schauen, in welcher Unit das ist.
MiSchi macht die fink-Pakete
Re: Vordefiierte Konstanten ei Dialogs.
Immer wieder schade, dass fast niemand die einfachste Lösung für solche Fragen kennt.
Wenn die Fehlermeldung kommt, z.B.
Einfach mit dem Mauszeiger auf die Fehlermeldungszeile->Rechtsklick -> "Suche Bezeichner".
Wenn die Fehlermeldung kommt, z.B.
Code: Alles auswählen
unit1.pas(34,50) Error: Identifier not found "MB_YESNO"
Re: Vordefiierte Konstanten ei Dialogs.
Wobei man anmerken sollte, dass das nur funktioniert, wenn die Unit, in der der gesuchte Bezeichner deklariert ist, in der USES-Liste aufgeführt ist, und wenn man das weiß, wäre das Problem eh' nicht aufgetaucht.
Weiter kommt man, wenn das Package Cody installiert ist, und man nach Rechts-Klick auf den gesuchten Bezeichner den Menüpunkt "Source" > "Show Unit / Identifier dictionary" aus den Kontextmenü (oder auch MainMenu) auswählt.
Oder man merkt sich:
- Vieles, was irgendwie in die Richtung Widgetset geht, findet man in den Units LCLType, LCLIntf, LCLProc oder LMessages.
- Vieles, was mit UTF8-Problemen zu tun hat, findet man in LazUtf8, LConvEncoding, LazUnicode.
- String-Routinen, die nicht in SysUtils enthalten sind, stehen in StrUtils.
- Datums-Routinen, die nicht in SysUtils enthalten sind. stehen in DateUtils;
- Datei-Routinen, die nicht in SysUtils enthalten sind, stehen in FileUtil oder LazFileUtils.
- Wenn eine *Utils-Unit nicht gefunden wird, probiere man es auch mit dem Singular. Also FileUtil statt FileUtils.
Wenn man ernsthaft mit Lazarus arbeiten will, sollte man auch den Inhalt dieser zentralen Units kennen. Dazu die entsprechende Unit in die USES-Liste aufnehmen, mit gedrückter CTRL-Taste auf dem Unitnamen klicken (oder mit der theo-Methode Rechtsklick+"Suche Bezeichner"). Dann öffent sich die Unit und man kann durchstöbern, was alles vorhanden ist. Ich selbst finde so immer noch verborgene Schätze.
Weiter kommt man, wenn das Package Cody installiert ist, und man nach Rechts-Klick auf den gesuchten Bezeichner den Menüpunkt "Source" > "Show Unit / Identifier dictionary" aus den Kontextmenü (oder auch MainMenu) auswählt.
Oder man merkt sich:
- Vieles, was irgendwie in die Richtung Widgetset geht, findet man in den Units LCLType, LCLIntf, LCLProc oder LMessages.
- Vieles, was mit UTF8-Problemen zu tun hat, findet man in LazUtf8, LConvEncoding, LazUnicode.
- String-Routinen, die nicht in SysUtils enthalten sind, stehen in StrUtils.
- Datums-Routinen, die nicht in SysUtils enthalten sind. stehen in DateUtils;
- Datei-Routinen, die nicht in SysUtils enthalten sind, stehen in FileUtil oder LazFileUtils.
- Wenn eine *Utils-Unit nicht gefunden wird, probiere man es auch mit dem Singular. Also FileUtil statt FileUtils.
Wenn man ernsthaft mit Lazarus arbeiten will, sollte man auch den Inhalt dieser zentralen Units kennen. Dazu die entsprechende Unit in die USES-Liste aufnehmen, mit gedrückter CTRL-Taste auf dem Unitnamen klicken (oder mit der theo-Methode Rechtsklick+"Suche Bezeichner"). Dann öffent sich die Unit und man kann durchstöbern, was alles vorhanden ist. Ich selbst finde so immer noch verborgene Schätze.
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Vordefiierte Konstanten ei Dialogs.
Kannst du bitte sagen, wo genau auf der Wiki-Seite diese Aussage getätigt wird? Sie ist nämlich einfach falsch und könnte dann korrigiert werden. Im Abschnitt MessageBox habe ich das bereits klargestellt.haderlump hat geschrieben:Hallo zusammen
Auf der Webseuíte http://wiki.freepascal.org/Dialog_Examp ... MessageBox
sind Konstanten für Dialogboxen etc vordefiniert.
Es wird darauf verwiedsen dass diese in dialogs.pp vordefiniert sind.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Vordefiierte Konstanten ei Dialogs.
Sprichst du von meinem Vorschlag?wp_xyz hat geschrieben:Wobei man anmerken sollte, dass das nur funktioniert, wenn die Unit, in der der gesuchte Bezeichner deklariert ist, in der USES-Liste aufgeführt ist, und wenn man das weiß, wäre das Problem eh' nicht aufgetaucht.
Nö, sonst wäre der Error ja gar nicht erst vorhanden.
Das Ding sucht überall.
Re: Vordefiierte Konstanten ei Dialogs.
OK. Ich habe überlesen, dass der Rechtsklick auf der Fehlermeldung im Nachrichtenfenster nach dem Kompilieren erfolgen muss, mein Rechtsklick war auf dem Bezeichner im Quelltext. Viele Wege führen nach Rom, deiner ist kürzer.theo hat geschrieben:Sprichst du von meinem Vorschlag?wp_xyz hat geschrieben:Wobei man anmerken sollte, dass das nur funktioniert, wenn die Unit, in der der gesuchte Bezeichner deklariert ist, in der USES-Liste aufgeführt ist, und wenn man das weiß, wäre das Problem eh' nicht aufgetaucht.
Nö, sonst wäre der Error ja gar nicht erst vorhanden.
Das Ding sucht überall.
Re: Vordefiierte Konstanten ei Dialogs.
Sucht man auf der Seite nach "dialogs", findet man "definiert in Dialogs.pp" im Zusammenhand mit einer anderen Prozedur ("ShowMessage") gemeint ist wahrscheinlich "deklariert". Hab's entsprechend geändert.Socke hat geschrieben:Kannst du bitte sagen, wo genau auf der Wiki-Seite diese Aussage getätigt wird? Sie ist nämlich einfach falsch und könnte dann korrigiert werden. Im Abschnitt MessageBox habe ich das bereits klargestellt.haderlump hat geschrieben:Hallo zusammen
Auf der Webseuíte http://wiki.freepascal.org/Dialog_Examp ... MessageBox
sind Konstanten für Dialogboxen etc vordefiniert.
Es wird darauf verwiedsen dass diese in dialogs.pp vordefiniert sind.
Ansonsten wäre in dem MessageBox-Beispiel die Unit auch in der Uses-Zeile angegeben gewesen, so dass bei sorgfältigem Lesen das Problem gar nicht enstanden wäre (mit "sorgfältigem Lesen" muss ich mich selbst auch an die Nase fassen).
-
- Beiträge: 188
- Registriert: Fr 18. Jan 2013, 09:29
- OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
- CPU-Target: Celeron
Re: Vordefiierte Konstanten ei Dialogs.
Danke, jetzt klappt es.
Hab einfach LCLType eingefügt.
Gruß Fritz
Hab einfach LCLType eingefügt.
Gruß Fritz
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Vordefiierte Konstanten ei Dialogs.
... und wenn du nun den ersten Eintrag dieses Threads noch editierst und in der Überschrift ein '[Gelöst]' einfügst, wäre das in der Übersicht auch ersichtlich. - Danke
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.