DCMENUBAR und Parameter [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

DCMENUBAR und Parameter [ERLEDIGT]

Beitrag von Manfred »

Hi,
kann es ein, das man bei DCMENUBAR verschiedene Parameter z.B. MENUBARFONT gar nicht mit Var belegen kann, sondern direkt den Text in "" eingeben muß?
das hier wird nicht kompiliert. Es wird gemeckert beim Menubarfont. Sobald ich das aber gegen "font" austausche, wird das akzeptiert. Gleiches gilt übrigens auch für Angaben weiter unten

Code: Alles auswählen

DCMENUBAR ::oMenuBar;
              ID 999;
    MENUBARCOLOR oSysPara:doParaWS:menubarcolorfg,oSysPara:doParaWS:menubarcolorbg;
     MENUBARFONT oSysPara:doParaWS:menubarfont;
       OWNERDRAW;
     SUBBARCOLOR oSysPara:doParaWS:subbarcolorfg,oSysPara:doParaWS:subbarcolorbg;
      SUBBGCOLOR oSysPara:doParaWS:subbgcolor;
    SUBCHECKFONT oSysPara:doParaWS:subcheckfont;
      SUBFGCOLOR oSysPara:doParaWS:subfgcolor;
     SUBITEMFONT oSysPara:doParaWS:subitemfont
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCMENUBAR und Parameter

Beitrag von Tom »

Das liegt am Variablennamen "oSysPara:doParaWS:menubarfont;". Schau Dir mal an, was der PP daraus macht. "menubarfont" wird im Kommando "DCMENUBAR" eben ersetzt, da darfst Du keine Variable dieses Namens im Kommando verwenden. Ansonsten geht das selbstverständlich mit Variablen, Funktionsergebnissen, was weiß ich.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCMENUBAR und Parameter

Beitrag von Manfred »

auja Tom,
jetzt wo Du es erwähnst. Das prüfe ich mal.
Saublöder Fehler (wenn er es denn dann war)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCMENUBAR und Parameter [ERLEDIGT]

Beitrag von Manfred »

Hast recht Tom, das war es tatsächlich. Hätte ich jetzt nicht vermutet.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCMENUBAR und Parameter [ERLEDIGT]

Beitrag von Tom »

Der PP ist ein kluger Textparser, aber er kennt die Sprache nicht wirklich. Ich glaube, Xbase++ ist ihm sogar ziemlich egal. :wink: Ersetzungsregeln definieren Schlüsselwörter, nach denen gesucht werden soll, wobei Leer- und Satzzeichen (dazu gehört der Doppelpunkt) als Trennzeichen interpretiert werden. Also macht der Junge seine Arbeit. In der Ersetzungsregel steht, er soll u.a. das (Schlüssel-)Wort "MENUBARFONT" (der PP arbeitet nicht case-sensitive) suchen und daraus im AADD( DCGUI_GETLIST ...) irgendwo eine Zeile machen, die das enthält, was "MENUBARFONT" folgt, und zwar interpretiert als "cBarFont". Das macht er bei Dir dann zweimal innerhalb einer Zeile, nämlich einmal für das von Dir absichtlich dort hinterlassene Schlüsselwort und einmal für die Objekt-iVar. Daraus entsteht syntaktischer Garbage, und das bemängelt dann der Compiler. Lass einfach über den Quellcode mal Suchen&Ersetzen laufen und "MENUBARFONT" durch "Schnullibulli" ersetzen. Das passiert hier.

Merke. Wenn Du den PP verwendest, sollte innerhalb der Regeln nichts als Bezeichnung für irgendwas verwendet werden, das zugleich ein Schlüsselwort der Regel ist. Und Schlüsselwörter sind in der eXpress++-Kommandoschreibweise alle Klauseln sowie die Kommandos selbst.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCMENUBAR und Parameter [ERLEDIGT]

Beitrag von Manfred »

ich stelle auch fest, das folgendes überhaupt nicht zu wirken scheint.

Code: Alles auswählen

DCMENUBAR ::oMenuBar;
              ID 999;
    MENUBARCOLOR oSysPara:doParaWS:menubarcolorfg,oSysPara:doParaWS:menubarcolorbg;
     MENUBARFONT oSysPara:doParaWS:fontmenubar;
       OWNERDRAW;
     SUBBARCOLOR oSysPara:doParaWS:subbarcolorfg,oSysPara:doParaWS:subbarcolorbg;
      SUBBARFONT oSysPara:doParaWS:fontsubbar;
      SUBBGCOLOR oSysPara:doParaWS:colorsubbg;
    SUBCHECKFONT oSysPara:doParaWS:fontsubcheck;
      SUBFGCOLOR oSysPara:doParaWS:colorsubfg;
     SUBITEMFONT oSysPara:doParaWS:fontsubitem
Zumindest was die Subxxxx Parameter betrifft. Menubarcolor unf Menubarfont werden angenommen, aber die anderen nicht. Was mache ich da wohl falsch?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten