TEdit abhängig von TComboBox ?



  • Hi@all

    Möchte folgende Function vereinfachen bzw. kompensieren .

    TEdit1->Text=TComboBox1->Text;
    TEdit2->Text=TComboBox2->Text;
    usw. bis 10 oder mehr

    Habe folgendes probiert :

    dynamic_cast<TEdit*>(Sender)->Text=dynamic_cast<TComboBox*>(Sender)->Text;

    Das geht natürlich nicht !

    Wie kann ich also eine TEdit abhängig von der dazugehörigen TComboBox füllen ohne für jede Feldkombination eine eigene Anweisung schreiben zu müssen ?

    Thx@all

    [ Dieser Beitrag wurde am 31.03.2003 um 13:50 Uhr von Prominenter editiert. ]



  • du könntest entweder die Edit-Felder und die ComboBoxen als Arrays machen und die Zuweisung über Index und For-Schleife laufen lassen oder du nimmst dir irgendeinen Container der die beiden Sachen logisch miteinander veknüpft..zB std::map aus der STL



  • Hi,

    1. PropInfo

    bool __fastcall PropertyToProperty(TObject *ADest, TObject *ASrc, const AnsiString APropertyName)
    {
     TPropInfo *piDest = GetPropInfo((TTypeInfo *)ADest->ClassInfo(), APropertyName);
     TPropInfo *piSrc = GetPropInfo((TTypeInfo *)ASrc->ClassInfo(), APropertyName);
    
     bool Result = false;
     if (piDest && piSrc)
       switch((*piDest->PropType)->Kind)
        {
         case tkLString :
           if ((*piSrc->PropType)->Kind == tkLString)
            {
             SetStrProp(ADest, piDest, GetStrProp(ASrc, piSrc));
             return true;
            }
           break;
         case tkInteger :
           if ((*piSrc->PropType)->Kind == tkInteger)
            {
             SetOrdProp(ADesc, piDest, GetOrdProp(ASrc, piSrc));
             return true;
            }
           break;
    
         //...usw
    
         default : return Result;
        }
     return Result;
    }
    
    // Example
    
    PropertyToProperty(Edit1, ComboBox1, "Text");
    PropertyToProperty(Edit1, ComboBox1, "Tag");
    

    2. dynamic_cast

    (dynamic_cast<TEdit *>(Sender))->Text = (dynamic_cast<TComboBox *>(Sender))->Text;
    

    [ Dieser Beitrag wurde am 31.03.2003 um 18:00 Uhr von Blazek Jaroslav editiert. ]



  • Hi,
    schau mal FindComponentByName(AnsiString); oder so ähnlich in der Hilfe nach!

    Alexander Sulfrian



  • Hi@Blazek Jaroslav

    Sieht gut aus.
    Aber die PropInfo-Methode ist mir zu komliziert .

    Und die dynamic_cast Methode funktioniert leider nicht .

    Edit1 = ComboBox1
    Edit2 = Combobox2
    Edit3 = ComboBox3 usw.

    also immer eine Combobox mit dazugehörigem Editfeld .

    Ich dachte auch erst an dynamic_cast , aber wie sage ich dem jeweiligen Edit-Feld zu welcher ComboBox es gehört ???
    Kann man die beiden Sachen irgendwie miteinander verknüpfen oder abhängig machen ???

    Und von wegen Hilfe - damit kann ich überhaupt nichts anfangen .
    Danach müsste ich es ja auch für jedes Paar einzeln ausprogrammieren .

    Ich wollt eaber gern eine Sammelfunktion die selbsständig prüft welche Felder zusammengehören .

    Trotzdem
    Thx@all



  • Original erstellt von <Prominenter>:
    Und von wegen Hilfe - damit kann ich überhaupt nichts anfangen .

    Doch, das kannst du! "FindComponent" heißt die Methode. Benutze sie in einer for-Schleife.


Anmelden zum Antworten