Avatar billede anoldi Nybegynder
21. januar 2002 - 00:51 Der er 3 kommentarer

Søge iblandt forms

Jeg har lavet en del forms med TForm.create(Application)

Disse forms har nogle værdi\'er f.eks. i en Edit...
jeg vil gerne søge blandt disse oprettede (og visible) forms..

F.eks. efter netop DEN form der indeholder \'bla bla\' i edit\'et?
Avatar billede nico26 Nybegynder
21. januar 2002 - 04:28 #1
hvis du gemmer en reference til hver form i en TList kan du gøre sådan her

var
  Forme: TList;

...

function FindForm(const s: string): TForm;
var
  F: TForm;
  i, j: Integer;
begin
  for i := 0 to Forme.Count - 1 do
  begin
    F := TForm(Forme[i]);
    for j := 0 to F.ComponentCount - 1 do
      if (F.Components[i] is TEdit) and (TEdit(F.Components[i]).Text = s) then
      begin
        Result := F;
        Exit;
      end;
  end;
  Result := nil;
end;
Avatar billede nca Juniormester
21. januar 2002 - 08:57 #2
Du finder en form vha. af dens caption.
Opret en variabel, MitVindue: hWnd

Find vinduet med
MitVindue:=FindWindow(nil,\'Vinduets caption\');
SetActivewindow(MitVindue);
Avatar billede cms Nybegynder
21. januar 2002 - 19:24 #3
Denne rutine giver dig den form, som har en editbox med teksten EditText. Helt uden arbejde ;-)

function GetForm(EditText: string): TForm;
var
  I, J: Integer;
  Form: TForm;
begin
  Result := nil;
  for I := 0 to Application.ComponentCount - 1 do
    if Application.Components[I] is TForm then
    begin
      Form := TForm(Application.Components[I]);
      for J := 0 to Form.ComponentCount - 1 do
        if Form.Components[J] is TEdit then
        begin
          if TEdit(Form.Components[J]).Text = EditText then
          begin
            Result := Form;
            Exit;
          end;
        end;
    end;
end;

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester