Avatar billede jes_petersen Nybegynder
31. august 2000 - 16:10 Der er 2 kommentarer og
3 løsninger

Referere til anden form

Jeg har en applikation med tre forms: En med menu- og tool-bar, en med værktøjer og en med et richedit-felt (programmet er en form for tekstbehandler. Når man vælger \"Ny fil\" fra menuen laver den en ny form (med richedit-felt) ved at sige Tform1.Create osv.

Hvordan refererer jeg til richedit-feltet fra værktøjs-formen, så når man trykker på en værktøjs-knap, kan sætte tekst ind i feltet osv.

(Spørgsmålet var måske lidt kludret formuleret)
Avatar billede kim_friis Nybegynder
31. august 2000 - 16:14 #1
Hvis du har lavet det som en MDI application så kan du blot referere til den med: MainForm.ActiveForm

Avatar billede sjensen Nybegynder
31. august 2000 - 16:47 #2
ja, og ellers hvis det bare er en alm. form du \"creater\" i koden på den alm. form, så kan du bruge (efter form1 := tform1.create(application);) bruge

form1.richedit.text := \'aaa\';

o.s.v. intil du har form1.free;
Avatar billede jes_petersen Nybegynder
31. august 2000 - 16:51 #3
Undskyl,d hvis det er et dumt spørgsmål, men hvor og til hvad bruges form1.free?
Avatar billede sjensen Nybegynder
31. august 2000 - 17:00 #4
Alt hvad du i dit program siger \"Create\" til optager hukommelse m.m. Disse bliver først firigvet til styresystemet (eller dit program) når du siger \"free\".

Eks. Hvis du vil kalde en anden form fra dit program, og den ikke skal skabes ved programstart, skriver du:

form1 := tform1.create(application);
form1.showmodal;
form1.free;

Dermed skaber du den (create) viser den (showmodal) og frigiver hukommelsen igen (free)

Showmodal sikrer at programmet ikke udfører form1.free før du i den nye form vælger close.

Og mellem de to linier:

form1 := tform1.create(application);
form1.free;

kan du så arbejde med de kontrols din nye form har, eller de avriable der er defineret i den nye forms public. eks.:

form1 := tform1.create(application);
form1.richedit1.text := \'Dette er en rig tekst\';
form1.showmodal;
if form1.richedit.text <> \'\' then
begin
  edit1.text := richedit1.text;
end;
form1.free;

i dette eks. propper du noget ind i richedit inden du viser formen, og når du forlader formen og kommer tilbage til dit program overføres det der er i richedit til et edit felt på din normale form.

Kan du se hvad jeg mener ?
Avatar billede jeppebecool Nybegynder
03. september 2000 - 17:46 #5
Du skal tilføje Værktøjsformens unit under uses i din menu unit.
Derefter kan du referere til din edit med:

vaerktøjsform.richedit1.
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