tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
1430
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Cybdummi Cybdummi ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    11
    Hi Leute, ich habe wieder mal ein Problem. Ich habe eine Form die mehrere CheckBoxen hat. Die Texte der CheckBoxen werden aus einer .ini File beim start gelesen. Ich möchte jetzt mit einem Button alle angekreuzten CheckBox->Text in die Zwischenablage kopieren.
    Die Texte sollen aber wenn ich dann praktisch die Zwischenablage in einem Word Dokument einfüge nacheinander durch Komma getrennt erscheinen!

    Leider bekomme ich beim Versuch
    Clipbrd->
    die Meldung: [C++ Fehler] Fehlerkat.cpp(1): Die Programmierhilfe kann nicht aufgerufen werden, da der Quelltext Fehler enthält

    obwohl ich #include <vcl\Clipbrd.hpp> includet habe

    Ich dachte einfach das es so funktionieren könnte:
    Clipbrd = Form1->CheckBox1->Text;

    dem ist aber nicht so und wie ich die einzelnen Texte dann auch noch durch ein Komma trenne sprengt meine Möglichkeiten.

    Darum hoffe ich nun das hier einer von euch der richtig Ahnung hat und schon länger mit C++Builder programmiert mir helfen kann

    Danke schon mal Gruß
     

  2. #2
    Registriert seit
    Jan 2002
    Ort
    Hamburg
    Beiträge
    2.852
    Probiere es mal so:
    Code :
    1
    2
    
    TClipboard *CB = Clipboard();
    CB->AsText = CheckBox1->Text;

    Greetz...
    Sinac
     
    Wenn euch mein Beitrag gefällt, meldet euch als Referal bei Dropbox an: http://db.tt/4tKC8O5

  3. #3
    Cybdummi Cybdummi ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    11
    Hey cool. ABER: ich will ja nur angekreuzte CheckBox->Text in die Zwischenablage kopieren! ich krübel schon den ganzen Tag wie ich diese if Abfrage machen soll das er mir nur von ca. 10 CheckBoxen diejenigen Texte in die ablage kopiert die angekreutzt sin?

    Wäre sehr dankbar für den Gedankenanstoß!

    Danke schon mal.
    ich habe jetzt das ganze so gelöst:
    //Die Auswahl in die Zwischenablage kopieren
    char Auswahl[1240];
    sprintf(Auswahl, "%s , %s , %s",CheckBox1->Caption, CheckBox2->Caption, CheckBox3->Caption);
    Clipboard()->SetTextBuf(Auswahl);

    Wohin mit der Abfrage denn so wie ich das gemacht habe nimmt er alle!!

    Danke Danke ich glaub ich brauch a weng frische Luft vielleicht gehts dann leichter ;o)
     

  4. #4
    Avatar von Turri
    Turri Turri ist gerade online Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

    ich krübel schon den ganzen Tag wie ich diese if Abfrage machen soll das er mir nur von ca. 10 CheckBoxen diejenigen Texte in die ablage kopiert die angekreutzt sin?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    string Auswahl ="";
    if(CheckBox1->Checked == cbChecked)
    {
       Auswahl += CheckBox1->Text.c_str();
       Auswahl += ",";
    }
    if(CheckBox2->Checked == cbChecked)
    {
    ...
    }
    Clipboard()->SetTextBuf(AnsiString(Auswahl).c_str());

    Habs nicht getestet, aber so in etwa, sollte das gehn

    MfG Turri
    Geändert von Turri (28.02.07 um 16:22 Uhr)
     

  5. #5
    Cybdummi Cybdummi ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    11
    hmmm das gefällt mir aber ich weiss leider nicht soll ich das anstatt meinem Quellcode einsetzen oder welchen Teil von meinem soll ich ersetzen ich habe es jetzt so probiert:

    {
    //Die Auswahl in die Zwischenablage kopieren
    char Auswahll[1240];
    //sprintf(Auswahl, "%s , %s , %s",CheckBox1->Caption, CheckBox2->Caption, CheckBox3->Caption);
    //Clipboard()->SetTextBuf(Auswahl);

    string Auswahl ="";
    if(CheckBox1->Checked == cbChecked)
    {
    Auswahl += CheckBox1->Text.c_str();
    Auswahl += ",";
    }
    if(CheckBox2->Checked == cbChecked)
    {
    Auswahl += CheckBox2->Text.c_str();
    Auswahl += ",";
    }
    Clipboard()->SetTextBuf(AnsiString(Auswahl).c_str());
    }

    aber da bringt er leider folgenden fehler:

    [C++ Fehler] Fehlerkat.cpp(76): E2451 Undefiniertes Symbol 'string'
    [C++ Fehler] Fehlerkat.cpp(76): E2379 In Anweisung fehlt ;
    [C++ Fehler] Fehlerkat.cpp(79): E2451 Undefiniertes Symbol 'Auswahl'

    ;o( und nun mann mann mann so ne bestimmt einfache sache !! ich merke wie weit ich entfernt bin vom richtigen programmieren ;o( heul
    ABER ich gebe nicht auf und ich weiss das wenns nicht ausm eigenen Brain geht auf euch alle hier verlass ist ALSO? ;o))

    Danke schon mal bis morgen
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    441
    Wird der String nicht mit einem Großbuchstaben geschrieben? C++-Compiler können da sehr pingelig sein. So könnte ich mir auch die restlichen Fehlermeldungen erklären:

    "string" wird als Variablenname aufgefasst. Aber welchen Typ hat denn die Variable namens "string"?

    => [C++ Fehler] Fehlerkat.cpp(76): E2451 Undefiniertes Symbol 'string'

    Nach einem Variablennamen kommt entweder eine Zuweisung/Initialisierung oder ein ; aber nach dem "string" kommt nichts dergleichen

    => [C++ Fehler] Fehlerkat.cpp(76): E2379 In Anweisung fehlt ;

    Und was bitte soll denn dann das "Auswahl" sein? Es ist ja noch nicht einmal "string" richtig definiert.

    => [C++ Fehler] Fehlerkat.cpp(79): E2451 Undefiniertes Symbol 'Auswahl'


    Ich würde mal frech behaupten, du hast damit die praktische Begründung von Netiquettenregel 15 erfahren. Einem Chat- oder Briefpartner mag die Groß- und Kleinschreibung noch egal sein, dem Compiler ist sie das auf gar keinen Fall.
     

  7. #7
    Registriert seit
    Jan 2002
    Ort
    Hamburg
    Beiträge
    2.852
    Richtig, du solltest einen AnsiString verwenden und keinen cstring:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    TClipboard *CB = Clipboard();
    String auswahl;
    if(Checkbox1->Checked)
       auswahl = Checkbox1->Text;
    if(Checkbox2->Checked)
       auswahl = auswahl + "," + Checkbox2->Text;
    ...
    CB->AsText = auswahl;

    So sollte das eigentlich klappen...
    Greetz...
    Sinac
     
    Wenn euch mein Beitrag gefällt, meldet euch als Referal bei Dropbox an: http://db.tt/4tKC8O5

  8. #8
    Cybdummi Cybdummi ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    11
    Also:
    CSANecromancer das hast du ziehmlich trocken aber richtig cool rübergebracht ;o) danke.

    UND Allen anderen genauso ein Riesen Mercy. Ihr habt mich gerettet und ich habe wieder dazu gelernt ;o)
    Tausend Dank Leute ich wusste das ich hier richtig bin.
    Für alle die es interessiert hier alle Lösungen nochmal gepostet und wie sie funktionieren.


    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    /*
    //Die gesamte Auswahl in die Zwischenablage kopieren
    char Auswahll[1240];
    sprintf(Auswahl, "%s , %s , %s",CheckBox1->Caption, CheckBox2->Caption, CheckBox3->Caption);
    Clipboard()->SetTextBuf(Auswahl);
    */
    //---------------------------------------------Aber besser....

    //nur die ausgewählten Zeilen in die Zwischenablage
    //und durch ein Komma getrennt!
    /*
    String Auswahl ="";
    if(CheckBox1->Checked == cbChecked)
    {
    Auswahl += CheckBox1->Caption.c_str();
    Auswahl += ",";
    }
    if(CheckBox2->Checked == cbChecked)
    {
    Auswahl += CheckBox2->Caption.c_str();
    Auswahl += ",";
    }
    Clipboard()->SetTextBuf(AnsiString(Auswahl).c_str());
    }
    */
    //--------------------------------------------------------oder sooo...

    // Ausgewählte Zeilen in die Zwischenablage kopieren
    //sind es mehr als eine werden die Einträge durch ein Komma getrennt

    TClipboard *CB = Clipboard();
    String Auswahl;
    if(CheckBox1->Checked)
    Auswahl = CheckBox1->Caption;
    if(CheckBox2->Checked)
    Auswahl = Auswahl + "," + CheckBox2->Caption;
    CB->AsText = Auswahl;

    }

    //-------------------------------------------------------------------
     

  9. #9
    Avatar von Turri
    Turri Turri ist gerade online Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Ich bitte vielmals um Entschuldigung, das ich durch meinen Schreibfehler (string statt String),
    weil ich gerade keinen Borland Builder zur Hand hatte,
    etwas Verwirrung gestiftet hatte.

    Aber die Überlegung war immerhin die richtige.

    MfG Turri
     

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    441
    Ich wollte mit meiner Besserwisserei niemandem zu nahe treten, aber ich bin noch ein wenig der Auffassung, daß es auch nützlich ist, wenn man den Grund, also das "warum" für Fehlermeldungen und Regeln kennt. "Warum" ist mein liebstes und wichtigstes Fragewort.

    Nichts bringt mich mehr auf die Palme als etwas wie "allgemeine Speicherschutzverletzung". Solche Fehlermeldungen sind vollkommen nutzlos und nichtssagend. Aber der Borland Compiler ist da schon auskunftsfreudiger, man muß sich nur ein- (oder ein paar-) mal durch die Fehlermeldungen durchgearbeitet haben und verstanden haben, wieso der Compiler die entsprechenden Meldungen bringt und schon ist die Fehlersuche sehr viel einfacher.

    Und die Bemerkung mit der Netiquette 15 war nur deswegen, weil manche Neueinsteiger hier meinen, das sei reine Schikane von den Forenbetreibern. Dabei hat diese Regel imho mehrere Gründe und der, welcher den meisten am schnellsten einleuchtet, ist einfach der, daß Compiler sehr intolerant gegenüber einer falschen Schreibweise sind.
     

Ähnliche Themen

  1. checkbox value auf andere checkbox übertragen
    Von Smitmeit im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 09.03.10, 14:39
  2. VNC und Zwischenablage
    Von pfiffikus im Forum Netzwerke
    Antworten: 0
    Letzter Beitrag: 27.02.05, 17:31
  3. Zwischenablage
    Von twtimew im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 11.02.05, 00:00
  4. Zwischenablage
    Von dev-flo im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 31.03.04, 16:26
  5. Nutzen der Zwischenablage um Texte aus Applet zu kopieren!
    Von TriipaxX im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 6
    Letzter Beitrag: 23.01.04, 10:57