amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Formatierte Strings und Text() [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2003-06-01, 14:55 h

Mad_Dog
Posts: 1944
User
Ich stehe gerade n bissl aufm Schlauch... :(

Folgender Codeschnipsel:

code:
char *label;

      for (i= 0 ; i <= 100 ; i += 2)  // 0 - 100 % , Schrittweite 2%
      {
         draw_progressbar(MyRastPort, 20, 20, 350, MyTextAttr->ta_YSize+6, i);
         SetAPen(MyRastPort, 2L);
         SetDrMd(MyRastPort, JAM1);
         sprintf(label,"Loading... (%d%%)",i);
         int length = TextLength(MyRastPort,label,strlen(label));
         //printf("strlen(label)=%dn",strlen(label));
         printf("%s , length=%dn",label,length);
         Move(MyRastPort, 350/2-(length/2), MyTextAttr->ta_YSize+20-2);
         Text(MyRastPort, label, length);
         Delay(5);  // Kurz warten
      }


draw_progressbar zeichnet einen Balken, aber in dem Zusammenhang nicht wichtig. Das Problem: Ich will den formatierten string "label" mittels Text() ausgeben. Der string wird richtig formatiert ausgegeben, wenn man printf verwendet. Allerdings wird bei Text() hinten Müll angehängt. Hat einer nen Plan, was ich falsch mache?
--

http://www.norman-interactive.com

[ - Answer - Quote - Direct link - ]

2003-06-01, 15:10 h

g0ldm0m0
Posts: 122
User
Vielleicht solltest du auch für label speicher besorgen oder eine Array daraus machen.

z.B. label = (char*) malloc(MAXIMALE_STRING_GROESSE);
oder gleiche char label[MAXIMALE_STRING_GROESSE];

mfg goldmomo

[ - Answer - Quote - Direct link - ]

2003-06-01, 16:33 h

CeaBear
Posts: 5
User
Beim Aufruf von Text() solltest du für <length> die Anzahl der Zeichen angeben statt der Anzahl der Pixel, die der Text einnehmen würde.

Text(MyRastPort, label, length); // length ist hier von TextLength gesetzt worden, also gibst du zuviele Zeichen aus.

Text(MyRastPort, label, strlen(label)); // so sollte es meiner Ansicht nach funktionieren.

Viel Glück!

[ - Answer - Quote - Direct link - ]

2003-06-01, 17:46 h

Mad_Dog
Posts: 1944
User
Zitat:
Original von CeaBear:

Text(MyRastPort, label, strlen(label)); // so sollte es meiner Ansicht nach funktionieren.


Danke! Das wars. Ich hätte wohl die RKMs aufmerksamer lesen sollen ;)


--

http://www.norman-interactive.com

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Formatierte Strings und Text() [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved.
.