Avatar billede zity Nybegynder
23. januar 2003 - 11:50 Der er 2 kommentarer og
4 løsninger

opret en ny form når programmet startes

når jeg starter mit program skal den åbne Form2 uden der trykkes på noget. Jeg har prøvet at skrive Form2.ShowModal;
i FormCreate Men det kan ikke lade sig gøre. Er der en anden måde at gøre det på....

//Zity
Avatar billede hermandsen Juniormester
23. januar 2003 - 11:56 #1
Project->Options->Forms
Under "Auto-create forms" vælger du Form2 og trykker på ">"-knappen.

Under din FormCreate skriver du så:

procedure TForm1.FromCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.ShowModal;
  Form2.Free;
end;

Så ligger din Form2 heller ikke hukommelsen hele tiden, men kun der i starten! ;)

//hermandsen
Avatar billede clscableguy Praktikant
23. januar 2003 - 12:08 #2
hvis begge forms skal vises så prøv dette:

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Form2.Show;
  Application.Run;
end.
Avatar billede dcgeek Nybegynder
23. januar 2003 - 14:52 #3
Placer en timer1 på din form:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
procedure OpretForm;
begin
  Form2.ShowModal;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.interval := 1;
timer1.enabled := false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form2.ShowModal;
end;

end.
Avatar billede siz23 Nybegynder
23. januar 2003 - 17:37 #4
ellers kan du bare smide den ind i FormShow.
Dette vil dog medføre, at form2 vil blive vist vær gang du sætter.
Form1.Visible:=true;


eksemble.
procedure TForm1.FormShow(Sender: TObject);
begin
    Form2.ShowModal;
end;
Avatar billede hermandsen Juniormester
23. januar 2003 - 23:05 #5
>>dcgeek
Jeg tror det var borrisholt der en gang sagde "En timer er ALTID forkert!" Og hvor har han dog ret! ;)
Kan egentlig heller ikke rigtig se hvad det skulle hjælpe når du alligevel sætter Timer1.Enabled := False;
Så kommer den da bare slet ikke ret langt! ;)
Avatar billede Slettet bruger
24. januar 2003 - 18:26 #6
Det er måske ikke så fikst det her men det burde kunne løses ved, at du erklærer en boolean-variabel fx.

VisForm2: boolean = true;

Form1Activate skal så se således ud:

procedure TForm1.FormActivate(Sender: TObject);
begin
  if (VisForm2 = True) then
  begin
    Form2.Show;
    VisForm2 := False;
  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