メイン ユニットでは、適切なパラメーターを使用して別のフォームから呼び出される関数を定義しました。
unit Parser;
interface
uses
[...]
function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
type
TForm1 = class(TForm)
[...]
function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
end;
[...]
function TForm1.SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
var
AStoreKey: string;
AOptions: TcxGridStorageOptions;
LayoutRegistryKey: TRegistry;
begin
AStoreKey := 'Software\KTRT\Stats';
AOptions := [];
cxGrid1TableView1.StoreToRegistry(AStoreKey, True, AOptions, ASaveViewName);
LayoutRegistryKey.RootKey:= HKEY_CURRENT_USER;
if LayoutRegistryKey.OpenKey(AStoreKey+'\'+ASaveViewName, false) then
Result := 0
else
Result := -1;
end;
他の形式では:
[...]
uses Parser;
procedure TForm3.Button1Click(Sender: TObject);
var
LayoutRegistryKey: TRegistry;
AStoreLocation : AnsiString;
AStoreKey: string;
begin
AStoreLocation := Edit1.Text;
if Parser.SaveGridLayoutToReg(AStoreLocation) <> 0 then
Label1.Visible := True
else
begin
Label1.Visible := False;
Form3.Visible := False;
end;
end;
[...]
エラーが発生し続けるので、どういうわけか間違っています
満たされていない前方宣言または外部宣言
TForm1 クラスで関数を宣言しないと、グリッド ビューが見つかりません。「uses」句の後に関数を宣言しないと、他のフォームから呼び出すことができません。私は本当にそれを得ることができません:(