Ascii an char * übergeben
-
hallo. eine funktion hat diesen parameter:
char *strich will einen ascii-wert übergeben. hab alles mögliche an definitionen probiert, geht aber nicht.
wie muss ich das aufrufen ?
-
Bitte etwas konkreter - was für einen Wert willst du übergeben?
(normalerweise erwarten Funktionen hinter einem char* einen nullterminierten Zeichenstring - d.h. ein char-Array, dessen Ende durch ein '\0' gekennzeichnet ist)
-
ich will den ascii-wert 225 übergeben.
geht um ein code-beispiel hier aus dem forum. dir funktion, die ich aufrufe ist diese:
void pfeil_text(char *str,int X, int Y, double Angle)ich habe mir zu einer schriftart ein symbol ausgesucht, dass den ascii-code 225 hat. das will ich jetzt übergeben.
-
Im Zweifelsfall füllst du den Text in ein char-Array und übergibst das:
char symbol[] = { 255 , 0 };//oder auch "\xFF" pfeil_text(symbol,xpos,ypos,dir);
-
klasse. danke.
weiß nicht ob dies ein neuer thread werden sollte. ab einem gewissen grad wird kein text mehr angezeigt. Jansen antwortete:
"Stell dir den schrägen Text als Diagonale des zu übergebenden Rects vor.
Entsprechend gross muss letzteres definiert werden (mindestens)."ich bekomm das nur hin, wenn ich bei z. B. bei 90°:
frmMain->Canvas->TextRect(R, X, Y+15, str);+15 mache.
void pfeil_text(char *str,int X, int Y, double Angle) { frmMain->Canvas->Brush->Color=clWhite; int fontweight; DWORD fontitalic, fontunderline, fontstrikeout; // create font with specified angle // bold? if(frmMain->Canvas->Font->Style.Contains(fsBold)) fontweight = FW_BOLD; else fontweight = FW_NORMAL; // italic? if(frmMain->Canvas->Font->Style.Contains(fsItalic)) fontitalic = true; else fontitalic = false; // underline? if(frmMain->Canvas->Font->Style.Contains(fsUnderline)) fontunderline = true; else fontunderline = false; // strike out? if(frmMain->Canvas->Font->Style.Contains(fsStrikeOut)) fontstrikeout = true; else fontstrikeout = false; HFONT hFont = CreateFont(frmMain->Canvas->Font->Height, 0, Angle*10, Angle*10, fontweight, fontitalic, fontunderline, fontstrikeout, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, frmMain->Canvas->Font->Name.c_str()); // assign created font to canvas SelectObject(frmMain->Canvas->Handle, hFont); // create Rectangle TRect R(X,Y,X+frmMain->Canvas->TextWidth(str),Y+frmMain->Canvas->TextHeight(str)); // draw text on canvas frmMain->Canvas->TextRect(R, X, Y, str); // free font DeleteObject(hFont); }
-
so krieg ich es hin. kann aber eigentlich nicht sinn sein?
TRect R(X,Y,X+140,Y+140); // draw text on canvas if (Angle >= 180) { X += 50; Y += 30; } else if (Angle >= 145) { X += 15; Y += 30; } else if (Angle >= 115) { X += 10; Y += StrToInt(frmMain->Edit1->Text); } else { Y += StrToInt(frmMain->Edit1->Text); } frmMain->Canvas->TextRect(R, X, Y, str);