Avatar billede megalas Nybegynder
16. maj 2001 - 20:47 Der er 10 kommentarer og
3 løsninger

String i en ny form

Hvis jeg har en string i form1 (et fil navn) hvordan kan jeg så, få den til at virke i form 2?
Avatar billede erikjacobsen Ekspert
16. maj 2001 - 21:00 #1
Erklær den som variabel i formen. Sig så uses unit1 i unit2 (helst
nedenunder \"implemention\", og så kan du bruge den som

  form1.filnavn

eller

  unit1.form1.filnavn
Avatar billede megalas Nybegynder
16. maj 2001 - 21:12 #2
Det virker ikke.
koden ser så dan her ud

procedure TForm2.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate(filename);
Form2.Caption:= filename;


end;

og det virker fint i form1 men ikke i form2
Avatar billede torbenthyregod Nybegynder
16. maj 2001 - 21:30 #3
Som erikjacobsen siger, så burde følgende virke

procedure TForm2.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate(form1.filename);
  Form2.Caption:= form1.filename;
end;

under \"implementation\" i unit2
skriver du

uses
  unit1;

Hvis ikke, hvad gør den så galt ??
Avatar billede erikjacobsen Ekspert
16. maj 2001 - 21:36 #4
Du kan nok ikke gøre det på Create - de to forme bliver ikke lavet
på samme tid, så du kan nemt komme til at referere en ikke-created form.
Brug OnActivate, samt en boolean, der siger om det er første gang.
Avatar billede torbenthyregod Nybegynder
16. maj 2001 - 21:42 #5
Eller OnShow , kan måske også bruges
Avatar billede erikjacobsen Ekspert
16. maj 2001 - 21:47 #6
Bestemt - jeg mener dog OnActivate bliver kaldt knap så tit, derfor. (og fordi
det står i bøgerne)
Avatar billede torbenthyregod Nybegynder
16. maj 2001 - 21:56 #7
OnActivate bliver kald hver gang du har været væk fra vinduet og trykker på den igen.

OnShow bliver kun kaldt når man kalder formen med form1.show.

Tror jeg nok.

Jeg prøvede lige og lave 2 forms og der returnerede den en tom streng i FormCreate, men den var ikke tom i OnShow og OnActivate, så undskyld megalas, det ser ikke ud til det virker i formcreate, som jeg skrev lige før !!
Avatar billede erikjacobsen Ekspert
16. maj 2001 - 21:59 #8
Okay - jeg har ikke tid til at checke, men under alle omstændigheder er idéen:

I unitx:

  var firsttime: boolean =true;


og så i en OnActivate:

  if firsttime then
  begin
      hvad du nu lige skal have gjort med de andre forme;
      firsttime:=false;
  end;

(eller OnShow - principielt lige meget)
Avatar billede torbenthyregod Nybegynder
16. maj 2001 - 22:02 #9
jep, lad os se hvad han finder ud af !!
Avatar billede cautoo Nybegynder
17. maj 2001 - 14:54 #10
så vidt jeg kan se har du sat koden ind i Form2 createren og du vil hente fra et komponent i form1 et ikk?

hvis ja så skal du skrive:

procedure TForm2.FormCreate(Sender: TObject);
begin
  form1.WebBrowser1.Navigate(filename);
  Caption:= filename;
end;
Avatar billede megalas Nybegynder
17. maj 2001 - 16:43 #11
Det hjælper stadig ikke.
Jeg har lavet en text box som skulle vise stringen filename men det virker ikke...
her er hele koden for unit2

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw, StdCtrls;

type
  TForm2 = class(TForm)
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;


    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    filename: String;
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;



{$R *.DFM}





procedure TForm2.FormShow(Sender: TObject);
begin
webBrowser1.Navigate(filename);
Form2.Caption:= filename;

Edit1.Text:= filename;
end;

end.
Avatar billede torbenthyregod Nybegynder
17. maj 2001 - 16:46 #12
Filename ligger jo i unit2 skulle den ikke ligge i unit1 ?????

Kan vi ikke lige få koden til unit1 også ??
Avatar billede megalas Nybegynder
18. maj 2001 - 16:47 #13
Ja, det har du ret i...
Nå men nu ved jeg det mange tak alle sammen...
Og det virker også
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