AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...
Thema durchsuchen
Ansicht
Themen-Optionen

DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

Ein Thema von Major1337 · begonnen am 27. Apr 2010 · letzter Beitrag vom 27. Apr 2010
Antwort Antwort
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#1

DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 08:36
Hallo

Bei dieser Procedure kommt in Delphi 2010 folgender Fehler, bei Delphi 2005 allerdings nicht.
Wennn ich ein Teil der Procedure kürze, klappt es. o_O


=> [DCC Fehler] Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren.


Delphi-Quellcode:
procedure TForm616.printlabelcontrolling;


begin

  query10.close;
  query10.parambyname('ub').asstring := ub;
  query10.parambyname('mat').asstring := (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring;
  query10.open;

  query11.close;
  query11.open;

  tecprint('{D2988,0700,2900|}');
  tecprint('{AX;+000,+000,+00|}');
  tecprint('{AY;+00,0|}');
  tecprint('{C|}');

  {kleine Etikette}

  tecprint('{XB01;0022,0570,5,3,04,3,0070,+0000000000,020,1,00|}');
  tecprint('{RB01;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');
  tecprint('{XB02;0395,0570,5,3,04,3,0070,+0000000000,020,1,00|}');
  tecprint('{RB02;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');

  tecprint('{PC001;0165,0635,05,05,G,33,B|}');
  if matltext <> ''
  then tecprint('{RC001;' + matltext + '|}')
  else tecprint('{RC001;' + matktext + '|}');
  tecprint('{PC002;0538,0635,05,05,G,33,B|}');
  if matltext <> ''
  then tecprint('{RC002;' + matltext + '|}')
  else tecprint('{RC002;' + matktext + '|}');

  tecprint('{PC003;0165,0159,05,05,G,33,B|}');
  tecprint('{RC003;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');
  tecprint('{PC004;0538,0159,05,05,G,33,B|}');
  tecprint('{RC004;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');

  if codeid <> 'then begin

    tecprint('{XB03;0195,0535,9,3,02,3,0090,+0000000000,020,1,00|}');
    tecprint('{RB03;' + codeid + '|}');
    tecprint('{XB04;0568,0535,9,3,02,3,0090,+0000000000,020,1,00|}');
    tecprint('{RB04;' + codeid + '|}');

  {große Etikette}

  if query10.fieldbyname('textbrand').IsNull then begin

    tecprint('{PV01;0110,2869,0120,0115,B,33,B|}');
    tecprint('{RV01;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');
    tecprint('{PV02;0483,2869,0120,0115,B,33,B|}');
    tecprint('{RV02;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');

    //tecprint('{PV01;0110,2869,0120,0115,B,33,B|}');
    //tecprint('{RV01;' + modell + '|}');
    //tecprint('{PV02;0483,2869,0120,0115,B,33,B|}');
    //tecprint('{RV02;' + modell + '|}');

    //tecprint('{PV01;0080,2869,0064,0090,B,33,B|}');
    //tecprint('{RV01;' + auftrag + '|}');
    //tecprint('{PV02;0453,2869,0064,0090,B,33,B|}');
    //tecprint('{RV02;' + auftrag + '|}');
    //tecprint('{PV03;0080,2239,0064,0090,B,33,B|}');
    //tecprint('{RV03;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');
    //tecprint('{PV04;0453,2239,0064,0090,B,33,B|}');
    //tecprint('{RV04;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');

    tecprint('{XB05;0022,1161,5,3,03,3,0060,+0000000000,020,1,00|}');
    tecprint('{RB05;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');
    tecprint('{XB06;0395,1161,5,3,03,3,0060,+0000000000,020,1,00|}');
    tecprint('{RB06;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');

    tecprint('{PV05;0221,2869,0064,0115,B,33,B|}');
    if matltext <> ''
    then tecprint('{RV05;' + matltext + '|}')
    else tecprint('{RV05;' + matktext + '|}');
    tecprint('{PV06;0594,2869,0064,0115,B,33,B|}');
    if matltext <> ''
    then tecprint('{RV06;' + matltext + '|}')
    else tecprint('{RV06;' + matktext + '|}');

    //tecprint('{PC005;0273,2869,15,15,G,33,B|}');
    //tecprint('{RC005;' + modell + '|}');
    //tecprint('{PC006;0646,2869,15,15,G,33,B|}');
    //tecprint('{RC006;' + modell + '|}');

    if codeid <> 'then begin

      tecprint('{XB07;0225,2523,9,3,03,3,0060,+0000000000,020,1,00|}');
      tecprint('{RB07;' + codeid + '|}');
      tecprint('{XB08;0598,2523,9,3,03,3,0060,+0000000000,020,1,00|}');
      tecprint('{RB08;' + codeid + '|}');

    end;

    tecprint('{PC007;0659,1800,05,05,G,33,B|}');
    tecprint('{RC007;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');
    tecprint('{PC008;0286,1800,05,05,G,33,B|}');
    tecprint('{RC008;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');

    tecprint('{PC009;0262,1489,05,05,I,33,B|}');
    tecprint('{RC009;' + (vubwin_form[620] as tform620).query2.fieldbyname('color').asstring + '|}');
    tecprint('{PC010;0635,1489,05,05,I,33,B|}');
    tecprint('{RC010;' + (vubwin_form[620] as tform620).query2.fieldbyname('color').asstring + '|}');

    tecprint('{PC011;0307,1489,05,05,I,33,B|}');
    tecprint('{RC011;' + query10.fieldbyname('textcolor').asstring + '|}');
    tecprint('{PC012;0680,1489,05,05,I,33,B|}');
    tecprint('{RC012;' + query10.fieldbyname('textcolor').asstring + '|}');

    tecprint('{SG;0230,0861,0064,0071,0,3?>0000000001?<03??0000000001?<03??0000000001?');
    tecprint('<01??0003??0007?<01??0003??0007?<01??0003??0007?<01??0003??0007?<01??<00');
    tecprint('3??000??<01??<003??000??<007?<003??000??8007?>003??003??8007?>003??003??');
    tecprint('8003??803??003?>0003??<03??01??>0003??<03??01??>0000???03??03??<00007??8');
    tecprint('3??0???<00007??83??0???<00007???3??7???000001?????????>000001?????????>0');
    tecprint('00000?????????80000001???????<00000001???????<000000007??????8000000000?');
    tecprint('????<0000000000?????<000000000003??0000000000000000000000000000000000000');
    tecprint('000000000000000000000000000000000000000000000000000000000000000000000000');
    tecprint('000000000000000000000000000000000000000000000000000000000000000000000000');
    tecprint('00000000000000000000000000000000003?>0000000007?<03?>0000000007?<03?>000');
    tecprint('0000007?<01?>0000000007?<01?>0000000007?<01?>0000000007?<01??0000000007?');
    tecprint('<01??0000000007?<01??000000000??<01??<00000000??<01??<00000000??<007?<00');
    tecprint('000003??8007?>00000003??8007?>00000003??8003??80000007?>0003??<000001??>');
    tecprint('0003??<000001??>0000???000003??<00007??>0001???000007??>0001???000001???');
    tecprint('?87???>000000?????????8000000?????????80000003????????00000001???????<00');
    tecprint('000001???????<000000003?????>00000000007????000000000007????000000000000');
    tecprint('1?<0000000|}');
    tecprint('{SG;0603,0861,0064,0071,0,3?>0000000001?<03??0000000001?<03??0000000001?');
    tecprint('<01??0003??0007?<01??0003??0007?<01??0003??0007?<01??0003??0007?<01??<00');
    tecprint('3??000??<01??<003??000??<007?<003??000??8007?>003??003??8007?>003??003??');
    tecprint('8003??803??003?>0003??<03??01??>0003??<03??01??>0000???03??03??<00007??8');
    tecprint('3??0???<00007??83??0???<00007???3??7???000001?????????>000001?????????>0');
    tecprint('00000?????????80000001???????<00000001???????<000000007??????8000000000?');
    tecprint('????<0000000000?????<000000000003??0000000000000000000000000000000000000');
    tecprint('000000000000000000000000000000000000000000000000000000000000000000000000');
    tecprint('000000000000000000000000000000000000000000000000000000000000000000000000');
    tecprint('00000000000000000000000000000000003?>0000000007?<03?>0000000007?<03?>000');
    tecprint('0000007?<01?>0000000007?<01?>0000000007?<01?>0000000007?<01??0000000007?');
    tecprint('<01??0000000007?<01??000000000??<01??<00000000??<01??<00000000??<007?<00');
    tecprint('000003??8007?>00000003??8007?>00000003??8003??80000007?>0003??<000001??>');
    tecprint('0003??<000001??>0000???000003??<00007??>0001???000007??>0001???000001???');
    tecprint('?87???>000000?????????8000000?????????80000003????????00000001???????<00');
    tecprint('000001???????<000000003?????>00000000007????000000000007????000000000000');
    tecprint('1?<0000000|}');

    tecprint('{XS;I,0001,0000C6210|}');

  end
  else begin

    tecprint('{PV01;0082,2869,0100,0090,B,33,B|}');
    tecprint('{RV01;' + query10.fieldbyname('textbrand').asstring + '|}');
    tecprint('{PV02;0455,2869,0100,0090,B,33,B|}');
    tecprint('{RV02;' + query10.fieldbyname('textbrand').asstring + '|}');

    //tecprint('{PV01;0080,2869,0064,0090,B,33,B|}');
    //tecprint('{RV01;' + auftrag + '|}');
    //tecprint('{PV02;0453,2869,0064,0090,B,33,B|}');
    //tecprint('{RV02;' + auftrag + '|}');
    //tecprint('{PV03;0080,2239,0064,0090,B,33,B|}');
    //tecprint('{RV03;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');
    //tecprint('{PV04;0453,2239,0064,0090,B,33,B|}');
    //tecprint('{RV04;' + (vubwin_form[620] as tform620).query2.fieldbyname('material').asstring + '|}');

    tecprint('{XB05;0022,1490,5,3,03,3,0060,+0000000000,020,1,00|}');
    tecprint('{RB05;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');
    tecprint('{XB06;0395,1490,5,3,03,3,0060,+0000000000,020,1,00|}');
    tecprint('{RB06;' + copy(query10.fieldbyname('ean').asstring,1,12) + '|}');

    tecprint('{PV05;0221,2869,0064,0115,B,33,B|}');
    if matltext <> ''
    then tecprint('{RV05;' + matltext + '|}')
    else tecprint('{RV05;' + matktext + '|}');
    tecprint('{PV06;0594,2869,0064,0115,B,33,B|}');
    if matltext <> ''
    then tecprint('{RV06;' + matltext + '|}')
    else tecprint('{RV06;' + matktext + '|}');

    //tecprint('{PC005;0273,2869,15,15,G,33,B|}');
    //tecprint('{RC005;' + modell + '|}');
    //tecprint('{PC006;0646,2869,15,15,G,33,B|}');
    //tecprint('{RC006;' + modell + '|}');

    if codeid <> 'then begin

      tecprint('{XB07;0225,2523,9,3,03,3,0060,+0000000000,020,1,00|}');
      tecprint('{RB07;' + codeid + '|}');
      tecprint('{XB08;0598,2523,9,3,03,3,0060,+0000000000,020,1,00|}');
      tecprint('{RB08;' + codeid + '|}');

    end;

    tecprint('{PC007;0659,1830,05,05,G,33,B|}');
    tecprint('{RC007;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');
    tecprint('{PC008;0286,1830,05,05,G,33,B|}');
    tecprint('{RC008;' + query11.fieldbyname('time').asstring + ' ' + inttostr(persnr) + '|}');

    tecprint('{PC009;0262,1620,05,05,I,33,B|}');
    tecprint('{RC009;' + (vubwin_form[620] as tform620).query2.fieldbyname('color').asstring + '|}');
    tecprint('{PC010;0635,1620,05,05,I,33,B|}');
    tecprint('{RC010;' + (vubwin_form[620] as tform620).query2.fieldbyname('color').asstring + '|}');

    tecprint('{PC011;0307,1620,05,05,I,33,B|}');
    tecprint('{RC011;' + query10.fieldbyname('textcolor').asstring + '|}');
    tecprint('{PC012;0680,1620,05,05,I,33,B|}');
    tecprint('{RC012;' + query10.fieldbyname('textcolor').asstring + '|}');


     // ... gekürzt!


end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 08:58
[dp]"Zu viele lokale Konstanten"[/dp] und Ähnliches:
> http://www.delphipraxis.net/internal...018730#1018730
> http://www.delphipraxis.net/internal...t.php?t=149772
> ...

Jedes '...' stellt eine Konstante dar.
Lösungen:
- Konstanten/Strings auslagern und als globale Konstanten deklarieren
- oder den Code in mehrere Prozeduren aufteilen
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#3

Re: DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 10:08
  • Gib deinen Variablen doch bitte sinnvolle Namen (also nicht query11 und so).
  • Verwende in der Routine doch ein paar lokale Variablen anstatt 100x (vubwin_form[620] as tform620).Irgendwas oder query10.fieldbyname('textbrand').asstring zu schreiben.
  • Bitte sag mir, dass vubwin_form kein Array mit über 600 Elementen ist, die du mit magic numbers indizierst.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#4

Re: DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 11:14
Delphi-Referenz durchsuchenFormat ist Dein Freund, um die Prozedur zu kürzen und Teile in andere Prozeduren auszulagern

Und sprechende Namen für Deine Konstanten/Variablen/Objekte wären auch ganz nett
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 11:17
Hallo,

Delphi-Quellcode:
if query10.fieldbyname('textbrand').IsNull then // bei #1 Zeile 49
begin
  Proc1(query10);
end
else
begin
  Proc2(query10);
end;
Heiko
Heiko
  Mit Zitat antworten Zitat
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#6

Re: DCC Fehler: Zu viele lokale Konstanten. Verwenden Sie...

  Alt 27. Apr 2010, 12:46
Danke für die Hinweise. Habe die Strings nun in AnsiString umgewandelt, klappt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz