Voici un croquis comment on pourrait le faire:
type
TForm1 = class(TForm)
FindDialog1: TFindDialog;
procedure FindDialog1Find(Sender: TObject);
procedure SearchFind1Execute(Sender: TObject);
procedure SearchFindNext1Execute(Sender: TObject);
private
FSearchText: string;
procedure Search;
end;
et
procedure TForm1.Search;
begin
// Do the real searching here...
MessageBox(Handle, PChar('Looking for "' + FSearchText + '".'), nil, 0);
end;
procedure TForm1.SearchFind1Execute(Sender: TObject);
begin
// Triggered by Ctrl-F
FindDialog1.FindText := FSearchText;
FindDialog1.Execute;
end;
procedure TForm1.SearchFindNext1Execute(Sender: TObject);
begin
// Triggered by F3
if FSearchText = '' then
SearchFind1.Execute
else
Search;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
begin
// Triggered by button click in FindDialog1
FSearchText := FindDialog1.FindText;
Search;
end;
Je suis un peu confus. Vous avez codé le F3 vous-même, n'est-ce pas? Donc, c'est à vous de voir si la boîte de dialogue est affichée. –
Désolé, ce n'est pas clair. J'ai fait la partie initiale pour commencer la recherche en utilisant le TFindDialog. Je voudrais continuer une recherche en appuyant sur une touche telle que F3, pour continuer la recherche sans rouvrir le formulaire SearchDialog. –