procedure TForm.ListView1DblClick(Sender: TObject);
var
cTmpFrm : TFormClass;
fTmpFrm : TForm;
gsSel : String;
begin
cTmpFrm := nil;
fTmpFrm := nil;
gsSel = 'fAIS3040_I';
// 현재 이부분을 String으로 설정된 값을 넣었으면하는데 방법이 없는지요
(***********************************************)
cTmpFrm := TfAIS3040_I;
fTmpFrm := fAIS3040_I;
(***********************************************)
이부분을 이렇게 변경하고 싶은데 할 수 있는 방법이 없는지 잘 아시는 고수분께서 한수 가르쳐 주시면 정말 고맙겠습니다. 정말 미치겠어요.
(***********************************************)
cTmpFrm := 'T' + gsSel;
fTmpFrm := gsSel;
(***********************************************)
prcCreateForm( cTmpFrm, fTmpFrm, gsSel);
end;
procedure TForm.prcCreateForm( gClass: TFormClass; gForm: TForm; S : String);
var
i : integer ;
begin
if MDIChildCount > 0 then
begin
for i := 0 to MDIChildCount-1 do
begin
if MDIChildren[i].Name = S then
begin
MDIChildren[i].BringToFront;
Exit;
end;
end;
end;
Application.CreateForm( gClass, gForm);
end;
방법이 없습니다.(논리적으로도 맞지 않지요)
대개 이런 경우 폼이 무쟈게 많을 경우 인거 같습니다.
뭐 조금이라두 근접한 해결방안을 생각해 본다면
TFormClass의 배열형을 생각보십시요.
UserFormClass : array[0..MaxCount] of TFormClass;
이런 식으로 말이죠. 이렇게 하면 배열의 인덱스를 사용할 수 있게 되어
메인메뉴상에서 폼을 연다고 하면 매뉴항목의 Tag와 배열의 인덱스를
연개하여 코드를 좀더 쉽게 관리할 수 있습니다.
물론 메인폼이 Create될때 배열의 내용을 다 채워 넣어야 겠죵.
델사랑 께서 말씀하시기를...
> procedure TForm.ListView1DblClick(Sender: TObject);
> var
> cTmpFrm : TFormClass;
> fTmpFrm : TForm;
> gsSel : String;
> begin
> cTmpFrm := nil;
> fTmpFrm := nil;
>
>
> gsSel = 'fAIS3040_I';
>
> // 현재 이부분을 String으로 설정된 값을 넣었으면하는데 방법이 없는지요
> (***********************************************)
> cTmpFrm := TfAIS3040_I;
> fTmpFrm := fAIS3040_I;
> (***********************************************)
> 이부분을 이렇게 변경하고 싶은데 할 수 있는 방법이 없는지 잘 아시는 고수분께서 한수 가르쳐 주시면 정말 고맙겠습니다. 정말 미치겠어요.
>
> (***********************************************)
> cTmpFrm := 'T' + gsSel;
> fTmpFrm := gsSel;
> (***********************************************)
>
>
> prcCreateForm( cTmpFrm, fTmpFrm, gsSel);
> end;
>
>
> procedure TForm.prcCreateForm( gClass: TFormClass; gForm: TForm; S : String);
> var
> i : integer ;
> begin
> if MDIChildCount > 0 then
> begin
> for i := 0 to MDIChildCount-1 do
> begin
> if MDIChildren[i].Name = S then
> begin
> MDIChildren[i].BringToFront;
> Exit;
> end;
> end;
> end;
>
> Application.CreateForm( gClass, gForm);
> end;
>
>
>