Funktion schreiben für Auflistung aller verfügbaren seriellen Schnittstellen



  • ich habe flg. Programm geschrieben, dass alle verfügbaren seriellen Schnittstellen in eine ComboBox schreibt. Nun möchte ich das in eine Funktion packen. Wie ich das am schlausten mach weiss ich noch nicht. Entweder ich übernehme als Parameter den Namen der ComboBox oder ich geb eine Stringliste oder ein Array zurück. Wie würdet ihr das machen?

    TRegistry *Registry = new TRegistry;
       Registry->RootKey = HKEY_LOCAL_MACHINE;
       Registry->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM\\",false);
       TStringList *keys = new TStringList();
       Registry->GetValueNames(keys);
       ComboBox1->Items->Clear();
       for(int i=0;i<keys->Count;i++)
           ComboBox1->Items->Add(Registry->ReadString(keys->Strings[i]));
       Registry->CloseKey();
       delete Registry;
       delete keys;
    


  • Hallo

    Das dürfte das naheliegendste sein :

    void LoadCOM(TStrings* list)
    {
    TRegistry *Registry = new TRegistry;
       Registry->RootKey = HKEY_LOCAL_MACHINE;
       Registry->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM\\",false);
       TStringList *keys = new TStringList();
       Registry->GetValueNames(keys);
       list->Clear();
       for(int i=0;i<keys->Count;i++)
           list->Add(Registry->ReadString(keys->Strings[i]));
       Registry->CloseKey();
       delete Registry;
       delete keys; }
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      LoadCOM(ComboBox1->Items); // Aufruf
    }
    

    Damit bist du auch nicht an eine ComboBox gebunden, sondern kannst alle Varianten von TStrings verwenden.

    bis bald
    akari



  • super, danke Dir vielmals.


Anmelden zum Antworten