C++ Builder 6에서 프로그램을 만들었는데 지금 문제가 있습니다. Unit1.cpp
, Unit1.h
, Unit2.cpp
, Unit2.h
, Unit3.cpp
, Unit3.h
:동적 StringGrid C++ Builder
나는 6 개 파일이 있습니다.
Unit1.cpp
은 주 양식 용 파일입니다.
문제 : 기능 void __fastcall TForm3::Button1Click(TObject *Sender)
Unit1.cpp
및 Unit2.cpp
에 표시됩니다 TStringGrid
에 만들려고합니다. 다음 번 클릭은 새로운 이름으로 새 TStringGrid
을 작성해야합니다 (이전에 존재)
문제점을 수정하려고했지만 일부 코드를 작성했지만 충분하지 않습니다. Unit1.h
에서
내가 추가 :
void __fastcall MyFunction(TStringGrid *Grid1);
을 Unit1.cpp
나는 추가 : Unit3.cpp
에서
void __fastcall TForm1::MyFunction(TStringGrid *Grid1)
{
Grid1 = new TStringGrid(Form2);
Grid1->Parent = Form2;
}
나는 추가 :
#include "Unit1.h"
과 버튼 클릭 기능은 다음과 같습니다
void __fastcall TForm3::Button1Click(TObject *Sender)
{
Form1->MyFunction(Form1->Grid); //Grid was declarated previous in Unit1.h
}
이제이 방법을 사용하여 동적으로 TStringGrid
을 만들었습니다. 버튼을 누른 횟수만큼 TStringGrid
(고유 한 이름으로)을 얼마나 많이 생성합니까? (이제 TStringGrid
을 Unit1.h
에 신고해야합니다.)
모든 양식, 구성 요소, 개체 및 기능의 이름을 지정하는 것이 좋습니다. 모든 것이 "ClassName #"인 코드는 유지하기 쉽지 않습니다. 나는 회사의 코드베이스에 대한 경험으로 이야기한다. – caps
어떤 Unit.h에서 "StringGrind를 Unit.h에 선언해야합니다"에서 말한 것처럼'StringGrid'를 선언하고 있습니까? – caps
Unit 1h에서 선언했습니다. – john