C-Script Text einer Schaltfläche auslesen

sailor

Level-1
Beiträge
641
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte mit einen C-Script bei Mouse-Klick den Text umschalten:

Test.pdl ist das Bild und IW1 der Name der Schaltfläche:

char *text;
text = (GetText("TEST.pdl","IW1"));
if (text=="I")
SetText("TEST.pdl","IW1","O");
else SetText("TEST.pdl","IW1","I");

Geht nicht. Irgendwie wird das "I" nicht erkannt.
Hab auch schon 'I' probiert.
Was mach ich denn falsch?

Es grüßt
Sailor
 
Das mit dem if (text=="I") wird nicht hinhauen...

schau mal hier.
http://www.cplusplus.com/reference/cstring/strcmp/

und noch einfacher: Deine Schaltfläche schaltet vermutlich irgendeinen Tag oder?
C-Skript hinter der "TEXT"-Eigenschaft...
Code:
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 2
#define TAG_1 "MyTag"
// WINCC:TAGNAME_SECTION_END

 if( GetTagBit( TAG_1) ) return "I";
 else return "O";

oder so in der Art. Das ginge sogar ohne C im Dynamik-Dialog
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ronin,

das ist es ja, ich hab eben keinen Tag dahinter und möchte das auch nicht. Ich will's eben ohne interne/externe Tags versuchen. Die Eigenschaft text frag ich dann woanders ab, aber das ist ein anderes Kapitel.

Gruß
Sailor
 
Servus,
mit strcmp gehts.


if (strcmp(GetText("TEST.pdl","IW1"),"I")==0)
SetText("TEST.pdl","IW1","O");
else SetText("TEST.pdl","IW1","I");

Danke
Sailor
 
Für einen einzelnen Buchstaben wärst du auch ohne strcmp ausgekommen. Nur ist text ein Pointer und der muss dereferenziert werden, anderenfalls vergleicht man die Pointeradresse mit I.
> Für chars immer 'I' das war schon richtig, der * hat gefehlt:

main ()
{
char character = 'I';
char *text = "I";

if (character == 'I')
printf("OK, char gleich I\n");

if (*text == 'I')
printf("OK, Inhalt char pointer gleich I\n");
exit(0);
}
http://codepad.org/kB68EVoA
 
Zurück
Oben