amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Formatierte Strings und Text() [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

01.06.2003, 14:55 Uhr

Mad_Dog
Posts: 1944
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

01.06.2003, 15:10 Uhr

g0ldm0m0
Posts: 122
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

01.06.2003, 16:33 Uhr

CeaBear
Posts: 5
Nutzer
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!

[ - Antworten - Zitieren - Direktlink - ]

01.06.2003, 17:46 Uhr

Mad_Dog
Posts: 1944
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Formatierte Strings und Text() [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.