Editfenster Farben ändern



  • Hallo,

    habe folgendes Szenario, welches nicht richtig funktioniert.

    Ich habe mehrere Edit-Fenster. Auf eines dieser Edit-Fenster mache ich einen Doppelklick und dann wird ein Formular geöffnet. In diesem Formular sind mehrer Button. Jeder Button steht für eine Farbe. Jetzt drücke ich button für grüne Farbe und das mit doppelklick ausgewählte Edit-Fenster soll die Farbe ändern. Dies Funkt aber nicht, denn alle Fenster werden grün.

    Hier der Code für den Doppelklick:

    Edit2:

    void __fastcall TForm1::Edit2DblClick(TObject *Sender)
    {
    Form2 = new TForm2(Application);
    Form2->ShowModal();
    delete Form2;        
    }
    

    Edit3:

    void __fastcall TForm1::Edit3DblClick(TObject *Sender)
    {
    Form2 = new TForm2(Application);
    Form2->ShowModal();
    delete Form2;        
    }
    

    Hier der Code für den Button:

    void __fastcall TForm2::btn_gearbeitetClick(TObject *Sender)
    {
    if (Form1->Edit1->OnClick == 0)
    Form1->Edit1->Color = clGreen;
    
    if (Form1->Edit2->OnClick == 0)
    Form1->Edit2->Color = clGreen;
    
    if (Form1->Edit3->OnClick == 0)
    Form1->Edit3->Color = clGreen;
    
    Close();
    }
    

    Kann jemand weiterhelfen??



  • http://www.marquardtnet.info/cecke/quickies.1/1_quicky_17.html

    Form1->Edit1->OnClick -> Würde nur angeben, ob es für dieses Objekt ein OnClick gibt (Zeiger auf die Routine). Damit kann man nich Abfragen, wer das Ereignis ausgelöst hat



  • Habe das probiert, wie es unter diesem Link erklärt ist, klappt aber nicht. Welchen button muß ich den da einsetzen??



  • Hallo

    warum so schwierig? Weise diese Methode allen drei Buttons zu

    void __fastcall TForm1::EditClick(TObject *Sender)
    {
    if (Form2->ShowModal() == IDOK) 
    {
      TEdit *CurEdit = dynamic_cast<TEdit *> (Sender);
      if (CurEdit) CurEdit->Color = clGreen;
      }
    }
    

    und setzte die Eigenschaft ModalResult von TForm2->btn_gearbeitet auf mrOK

    bis bald
    akari


Anmelden zum Antworten