Avatar billede martinmidtgaard Nybegynder
21. juni 2003 - 19:43 Der er 2 kommentarer

Kommunikation mellem forms

Hvordan kan jeg få oplysninger fra en form og bruge dem i en anden form??
Avatar billede athlon-pascal Juniormester
21. juni 2003 - 20:38 #1
Det sted du skal bruge info skriver du [FormName].etellerandetobjekt.
Eksempel i Form1:

var
  Hest: String;
begin
  Hest := Form2.Button1.Caption; //Variablen "Hest" i Form1 bliver sat til "Button1"'s Caption i Form2...
end;

Når du så kører programmet, vil der komme en popup-boks; Tryk "Yes".
Avatar billede kustoden Nybegynder
22. juni 2003 - 17:12 #2
Hvis du kun skal bruge formen kortvarigt eller har mange forme, er det smartere at create den selv, og så destroye den igen.

Du kan også lave noget i stil med :
(Det er her Delphi for alvor bliver smuk. Hvem siger, at Bjarne Stroustrup skal have lov at bestemme navnet på dine constructors)

type
  PString = ^String;

  PResult = ^TModalResult;

...
...

constructor TFormBrowse.GetDirectory(AOwner : TComponent;
                                    Dir    : PString;
                                    Res    : PResult);

begin
  inherited Create(AOwner);
  BtnIsClicked := False;
  MyDir        := Dir;
  MyRes        := Res;
  Self.ShowModal();
end;{constructor GetDirectory}

//----------------------------------------------------------------------------

procedure TFormBrowse.FormCloseQuery(Sender      : TObject;
                                    var CanClose : Boolean);
begin
  CanClose := BtnIsClicked;
end;{proc FormCloseQuery}

//----------------------------------------------------------------------------



procedure TFormBrowse.DriveComboBox1Change(Sender: TObject);
begin
  DirectoryListBox1.Drive := DriveComboBox1.Drive;
end;{proc DriveComboBox1Change}

//----------------------------------------------------------------------------


procedure TFormBrowse.BtnCancelClick(Sender: TObject);
begin
  BtnIsClicked := True;
  MyRes^ := mrNo;
  Close();
end;{proc BtnCancelClick}


//----------------------------------------------------------------------------

procedure TFormBrowse.BtnOKClick(Sender: TObject);
begin
  BtnISClicked := True;
  MyDir^ := DirectoryListBox1.Directory;
  MyRes^ := mrYes;
  Close();
end;{proc BtnOKClick}

//----------------------------------------------------------------------------

og så kalde den med noget i retning af

  Form := TFormBrowse.GetDirectory(Self, @CurDir, @Res);

(Hust at kalde Free()...)
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