Vordefiierte Konstanten ei Dialogs.[gelöst]

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
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]

Beitrag von haderlump »

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.
Zuletzt geändert von haderlump am So 2. Sep 2018, 06:58, insgesamt 1-mal geändert.

MacWomble
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.

Beitrag von MacWomble »

Du musst in uses noch LCLType mit aufführen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

mischi
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.

Beitrag von mischi »

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.
MiSchi macht die fink-Pakete

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Vordefiierte Konstanten ei Dialogs.

Beitrag von theo »

Immer wieder schade, dass fast niemand die einfachste Lösung für solche Fragen kennt.

Wenn die Fehlermeldung kommt, z.B.

Code: Alles auswählen

unit1.pas(34,50) Error: Identifier not found "MB_YESNO"

Einfach mit dem Mauszeiger auf die Fehlermeldungszeile->Rechtsklick -> "Suche Bezeichner".
Dateianhänge
bezeichner_laz.png

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Vordefiierte Konstanten ei Dialogs.

Beitrag von wp_xyz »

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.

Socke
Lazarusforum e. V.
Beiträge: 3158
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.

Beitrag von Socke »

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.

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.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Vordefiierte Konstanten ei Dialogs.

Beitrag von theo »

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.

Sprichst du von meinem Vorschlag?
Nö, sonst wäre der Error ja gar nicht erst vorhanden.
Das Ding sucht überall.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Vordefiierte Konstanten ei Dialogs.

Beitrag von wp_xyz »

theo hat geschrieben:
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.

Sprichst du von meinem Vorschlag?
Nö, sonst wäre der Error ja gar nicht erst vorhanden.
Das Ding sucht überall.

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.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Vordefiierte Konstanten ei Dialogs.

Beitrag von wp_xyz »

Socke hat geschrieben:
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.

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.

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.

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).

haderlump
Beiträge: 185
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.

Beitrag von haderlump »

Danke, jetzt klappt es.
Hab einfach LCLType eingefügt.

Gruß Fritz

MacWomble
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.

Beitrag von MacWomble »

... 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.

Antworten