Label zu label
-
Hallo Leute,
ich hoffe das ich jetzt im richtigen forum bin?
Es ist eigentlich ganz egal, ob ich nun mit dem Borland, VC6 oder sonstigen Programmiere, auf jeden fall nehme ich für diesen fall den Power++ von Sybase!
Also: Ich habe 4 Labels, auf den steht eins, zwei, drei und vier, des weiteren habe ich noch einen Button der dafür sorgen soll das sich bei jedem klick der Label einen weiter bewegt, beim start ´sind alle Labels sichtbar, beim ersten klick geht der fokus zum Label "zwei" und die anderen drei verschwinden, und wie gesagt klicke ich den Button geht er zum dritten und der zweite verschwindet, und dann immer so weiter. So das ist das geforderte, die frage ist jetzt für mich, wie Programmiere ich das jetzt, ich habe es bisher immer mit der If-Anweisung versuchtif( Eins == 0 & Zwei == 0 usw.
das ging aber irgendwie nicht, habt ihr da für mich einen Vorschlag, beisp. code wääre nett
danke schon mal im voraus
mfg Beto
-
Wenn ich dich richtig verstanden habe, passt glaube ich dieser Code:
Zuerst definierst du folgendes als globale Variablen:
int Reihe=1 (Deklaration der Labels)
Danach erstellst du deine Labels ganz normal in der WM_CREATE-Message.
Die WM_COMMAND-Message deines Buttons sieht dann folgendermaßen aus:if(Reihe==1) { DestroyWindow(Label1); DestroyWindow(Label2); DestroyWindow(Label3); DestroyWindow(Label4); CreateWindow([Parameter für Label1]); Reihe=2; } if(Reihe==2) { DestroyWindow(Label1); DestroyWindow(Label2); DestroyWindow(Label3); DestroyWindow(Label4); CreateWindow([Parameter für Label2]); Reihe=3; } if(Reihe==3) { DestroyWindow(Label1); DestroyWindow(Label2); DestroyWindow(Label3); DestroyWindow(Label4); CreateWindow([Parameter für Label3]); Reihe=4; } if(Reihe==4) { DestroyWindow(Label1); DestroyWindow(Label2); DestroyWindow(Label3); DestroyWindow(Label4); CreateWindow([Parameter für Label4]); Reihe=1; }
Ich hoffe, der Code entspricht deinen Wünschen und ich habe dir damit geholfen. Für weitere Korrespondenz stehe ich zur Verfügung.
-
Hallo unzi,
leider kann ich das so nicht umsetzen, da ich dies nicht mit dem VC 6 Programmiere, kennst Du dich noch mit dem guten alten Power++ von Sybase version 2.1 aus.
Muß das leider nehmen, das es zum Buch gehört.
Ich habe das mal zum teile eingegeben, vielleicht kannst Du was damit anfangenWInt reihe; if(reihe == 0) { label_1->SetText( "" ); label_2->SetText( "Zweite Position" ); label_3->SetText( "" ); label_4->SetText( "" ); weiterschalten_1->SetText( "Text Weiterschalten" ); reihe = 1; } if(reihe == 1) { label_2->SetText( "" ); label_3->SetText( "Dritte Position" ); label_4->SetText( "" ); label_1->SetText( "" ); weiterschalten_1->SetText( "Text Weiterschalten" ); reihe = 2; } return FALSE;
Ich hasse diesen Compiler, aber naja
gruß
beto
-
Besorg dir doch nen anderen. Das meiste C++ ist genormt (na ut, da geht´s unter Windows ´n bisschen auseinander). Ein Buch, das auf den Borland C++ Compiler 5.5 (mein Lieblingscompiler) und auf die VC6-Standards eingeht,
ist "Windows-Programmierung mit C++" (damals rund 25 DM). Das ist nicht besonders teuer, finde ich, und sooo viel aufgeschlagen hat der Verlag bei der Euro-Umstellung bestimmt auch nicht.
-
Ist das OWL? Oder was benutzt du da für eine Klassenbibliothek?
@unzi
Also, bei dem DestroyWindow() kams mir echt hoch. Schrecklich. Wenn die Elemente mal kurz verschwinden sollen, dann macht man sie unsichtbar - zerstört sie aber nicht. In WinAPI geht das mit ShowWindow(..., SW_HIDE).
-
Hallo
was ist den OWL?Geht weit zurück ins Jahr 1991-1997, so alt ist der Compiler!
Ein Sch.... Compiler ist das, gerade weil man sich so schön an die MFC (VC 6) gewöhnt hat.
Aber ich muß den nehmen, weil ich die Aufgaben einschicken muß, das ist mein Problem, wäre schön wenn einer von euch sich da irgend wie hineinversetzten könnte!?mfg
Beto
-
sybase ist mir unbekannt, aber hast du schonmal in dieser gruppe hier gefragt oder gesucht??
ist wahrscheinlich unwahrscheinlich, (äh) .. aber vielleicht hilfts
http://webforums.sybase.com/nntp/nd000026.nsf/($All)?OpenView
-
Und ich frage nochmal: was für eine Klassenbibliothek benutzt du? Ich habe herausgelesen, dass du mit Windows arbeitest/programmierst. Aner sowas wie
label_2->SetText( "" );
ist kein WinAPI. Was ist es also dann? Und was ist ein label? Ein STATIC-Steuerelement (ist zum Text anzeigen da), oder wie? Wenn dir geholfen werden soll, musst du schon etwas mehr sagen, insbesondere, mit welchen Klassen du arbeitest.
-
Hallo,
also ich kann dir ehrlich gesagt nicht sagen was für eine Klassenbibliothek das ist
Recht hast Du, das das ein Staic-Steuerelement ist, wie Du es aus der MFC kennst.
Bei dem power++ von Sybase funktioniert das Programmieren noch mit dem drag&drop verfahren, Du clickst auf den Button, um ein Click-Event auszulösen, wobei sich der Quellcode-editor öffnet, dann kannst Du einfach das was Du Progarmmieren willst per Drag&Drop an die entsprechende stelle ziehen, wobei sich dann entsprechende - ja Funktionen bieten, wie z.B. WBool SetText(const WString & )hmm, reicht das? kann man hier irgend wie ein Bild hinterlegen, dann kann man sich diesen Oldtimer mal ansehen!?mfg Beto
-
hab noch sowas gefunden...
WString strChkBox_1 = "You checked CheckBox # 1."; WString strChkBox_2 = "You checked CheckBox # 2."; WString strBoth = "You have both checkboxes checked."; if( checkbox_1->GetChecked() && !checkbox_2->GetChecked() ) { //checkbox 1 is checked and checkbox 2 is not textb_1->SetText(strChkBox_1); } else if( checkbox_2->GetChecked() && !checkbox_1->GetChecked() ) { //checkbox 2 is checked and checkbox 1 is not textb_1->SetText(strChkBox_2); } else if( checkbox_1->GetChecked() && checkbox_2->GetChecked() ) { //both checkboxes are checked textb_1->SetText(strBoth); } else { //niether checkboxes are checked textb_1->SetText("You should try to check one of the checkboxes."); } return false;
ich hab deine aufgabe noch nicht ganz verstanden, womit fängs du den klick, womit setzt du den focus ? hmm..
-
kann man hier irgend wie ein Bild hinterlegen, dann kann man sich diesen Oldtimer mal ansehen!?
Schick mir das mal per Mail. Würde mich schon interessieren. Wenn du willst, stelle ich es dann auch für dich ins Netz.