Avatar billede clscableguy Praktikant
05. juni 2005 - 09:40 Der er 7 kommentarer og
1 løsning

Opret et Timage på en anden form?

Hejsa

Jeg bruger Delphi 7

Jeg har 4 forms. På de 3 af dem er der show til den sidste form.

På den sidste skulle man kunne oprette timages på en af de andre 3 forms. Når jeg trykker på show knappen viser den den sidste form. Her skal jeg så via den form kunne oprette et TImage på den form som har lavet en show.

Hvordan gør jeg det?
Avatar billede kroning Nybegynder
05. juni 2005 - 14:14 #1
Hvis du på din sidste form4 har en varriable der hedder KalderForm : TForm;
Når du så kalder show fra en anden form sætter du lige derefter KalderForm sådan:

Form4.Show;
Form4.KalderForm:=Self;

Nu ved din form4 hvem der har lavet en show.

Du kunne også lave en procedure i Form4, f.eks.:

Procedure VisForm4(Hvem : TForm);
begin
  Show;
  KalderForm:=Hvem;
end;

Den kalder du så i stedet for Show:

Form4.VisForm(Self);
Avatar billede clscableguy Praktikant
05. juni 2005 - 18:19 #2
Ja, det løser så første del af mit problem.

Men hvis jeg bruge denne måde, så kan jeg vel ikke kalde variabler jeg selv har oprettet. Her mener jeg hvis nu Form2 kalder Form4, hvad skal jeg så skrive for at kalde en variabel fra Form4 så er i Form2?
Avatar billede kroning Nybegynder
05. juni 2005 - 20:21 #3
Hvis du i Form4 skal kalde en variabel i Form2 skriver du:

Form2.MinVar:=???
Avatar billede clscableguy Praktikant
06. juni 2005 - 06:20 #4
Ja det ved jeg godt.

Men nu gør jeg følgende fra Form2:

Form4.Show;
Form4.KalderForm:=Self;

Hvordan kalder jeg så MinVar fra Form4 :

self.MinVar ????

Det kunne jo lige så godt være Form1 eller Form3
Avatar billede kroning Nybegynder
06. juni 2005 - 08:13 #5
Ok det havde jeg ikke lige fattet. Hvis det kun er en enkelt varianbel kunne du gøre det sådan:

Procedure VisForm4(Hvem : TForm; var MinVar : ???);
begin
  Show;
  KalderForm:=Hvem;
  FormMinVar:=MinVar;
end;

Men hvis det er flere variabler er det jo ikke så praktisk, så ville jeg lave en GrundForm som indeholdt de forskellige variabler og så lade Form1+2+3 arve fra denne, dvs.:

Procedure VisForm4(Hvem : TGrundForm);

Eller hvis der er mange variabler så putte dem ind i en record som du så angiver i VisForm4 proceduren:

Procedure VisForm4(Hvem : TForm; var MinVar : MinVarRecord);
Avatar billede martinlind Nybegynder
06. juni 2005 - 14:28 #6
Skal dine var's ligge på din form, kunne du ikke bare ha' en fælles unit som alle dine forms så havde uses
Avatar billede clscableguy Praktikant
22. juni 2005 - 20:37 #7
Jeg har løst det nu. Ved at gemme alle data'erne i en database.

kroning> smid et svar og du kan få point.  :)

Takker for hjælpen.
Avatar billede kroning Nybegynder
22. juni 2005 - 23:29 #8
k
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