Ik zou dit soort code direct afkeuren want het is verschrikkelijk rommelig en zit vol met "Slechte" code.
Maar goed... als ik je goed begrijp wil je dat form_test iets doet bij het showen?
Hier een quick hack, waar ik overigens ook niet achter zou staan:- Haal Tform_main uit de uses van Tform_test (hij hoort daar niet)
- Maak in Tform_test een private variable aan binnen de Tform_test-klasse voor het resultaatpad en het sequentienummer
- Schrijf een functie in TForm_Test met een variabele die het pad en de seq_counter kan doorgeven en een TModalResult teruggeeft
- Roep deze functie vanuit je hoofdformulier aan
In code zou het er ongeveer zo uit kunnen zien:
Delphi Code:
type
TForm_Test = class(TForm)
// diverse standaardzaken zoals de controls die op het form staan (bestaande code)
private
FResultsPath: string;
FSequenceNumber: Integer;
public
// Bestaande code hier
function ShowSequence(APatch: string; ANumber: Integer): TModalResult;
end;
implementation
procedure TForm_Test.BestaandeCode; // dit is de method waarin je je bestaande code hebt zitten
begin
// Knip
full_path_file_name := FResultsPath + '\' + full_name + '_' + IntToStr(myDay) + IntToStr(myMonth) + IntToStr(myYear) + IntToStr(myHour) + IntToStr(myMin) + intToStr(FSequenceNumber) + '.res'
AssignFile(f_result, full_path_file_name);
// Knip
end;
function TForm_Test.ShowSequence(APath: string; ANumber: Integer): TModalResult;
begin
FResultsPath := APath;
FSequenceNumber := ANumber;
Result := ShowModal;
end;
Vervang vervolgens in je form_main de regels met:
Delphi Code:
if form_test.ShowModal <> mrOK then exit; // <-- alleen doorgaan als ShowModal mrOk is
in
Delphi Code:
if form_test.(results_path, seq_counter) <> mrOK then exit; // <-- alleen doorgaan als ShowModal mrOk is
Bookmarks