C++ Builder XE4, 10.2 Tokyo > 설정 > TComboBox 저장 > Items 및 ItemIndex 저장 > TMemo + TEdit
7935 단어 설정fileIOcppBuilder
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2018/01/05)
TComboBox 설정을 저장하고 읽는 방법은 무엇입니까?
TComboBox에서는 Items와 ItemIndex를 다루게 된다.
Items를 다시 쓸 때 ItemIndex는 지워집니다.
따라서 Items를 먼저 ItemIndex를 읽어야합니다.
TMemo에 Items를, TEdit에 ItemIndex를 읽고, 그것을 TComboBox로 설정하는 방법은 생각해 본다.
Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE で管理されるコンポーネント
TButton *B_save;
TComboBox *CMB_profile;
TLabel *Label1;
TEdit *E_ItemIndex;
TLabel *File;
TMemo *M_Items;
TButton *B_load;
void __fastcall B_saveClick(TObject *Sender);
void __fastcall B_loadClick(TObject *Sender);
private: // ユーザー宣言
public: // ユーザー宣言
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
CMB_profile->Items->Clear();
CMB_profile->Items->Add(L"DeltaFlyer");
CMB_profile->Items->Add(L"DeltaFlyer2");
CMB_profile->Items->Add(L"Voyager");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::B_saveClick(TObject *Sender)
{
M_Items->Lines->Assign(CMB_profile->Items);
E_ItemIndex->Text = IntToStr(CMB_profile->ItemIndex);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::B_loadClick(TObject *Sender)
{
CMB_profile->Items->Assign(M_Items->Lines);
CMB_profile->ItemIndex = StrToIntDef(E_ItemIndex->Text, -1);
}
//---------------------------------------------------------------------------
비고
항목에 공백이 있어도 문제 없다.
하나의 TComboBox에 대해 두 개의 구성 요소가 추가로 필요합니다.
TComboBox의 사용하지 않는 프로퍼티를 사용하는 방법도 생각할 수 있지만, 그것을 하면, 그 프로퍼티를 사용하게 되었을 때에 대처가 필요하게 된다.
Reference
이 문제에 관하여(C++ Builder XE4, 10.2 Tokyo > 설정 > TComboBox 저장 > Items 및 ItemIndex 저장 > TMemo + TEdit), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/009b1e596e0eaa246c63텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)