Avatar billede fun22 Nybegynder
29. april 2003 - 18:26 Der er 15 kommentarer og
1 løsning

Hvorfor virker det her ikke??

program Project1;

uses
  Forms, inifiles, SysUtils,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3},
  Unit4 in 'Unit4.pas' {Form4};

{$R *.res}
function iniread(filename: string; Section: string; Name: string; defaultvalue: string):string;
var
  ini: Tinifile;
begin
  ini:=Tinifile.create(filename);
  result:=ini.readString(section,name,defaultvalue);
  ini.free;
end;
begin
  Application.Initialize;
  Application.Title := 'GameControle2';
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.Run;
  If iniread(ExtractFilePath(ParamStr(0))+'gamecontrole2.ini','Generalt','SM','true')='true' then begin
  form1.visible := false;
end
else begin
  form1.visible := true;
end;
end.
Avatar billede fun22 Nybegynder
29. april 2003 - 19:01 #1
Der sker bare ingenting når man starter programmet. Selvom at der i ini filen står at SM er true så viser den stadigvæk form1
Avatar billede doc404 Novice
29. april 2003 - 22:12 #2
Flyt application.run ned under din if...
Avatar billede fun22 Nybegynder
30. april 2003 - 07:44 #3
virker ikke
Avatar billede doc404 Novice
30. april 2003 - 10:46 #4
Check med debuggeren om du nu også får visible sat til true/false
Avatar billede jpvj Nybegynder
30. april 2003 - 10:47 #5
Flyd "if iniread ..." koden til OnShow event handleren i stedet.
Avatar billede tolderlund Nybegynder
30. april 2003 - 12:47 #6
Application.Run vil altid vise din main form, som er den første form der creates. Din linie med "If iniread" udføres først når der returneres fra Application.Run, dvs. når du lukker programmet ned.
Med andre ord: linien "If iniread" er placeret forkert.
Avatar billede fun22 Nybegynder
30. april 2003 - 13:44 #7
jpvj >> Det har jeg prøvet, og det virker heller ikke

Tolderlund >> Hvor skal den så stå??
Avatar billede jpvj Nybegynder
30. april 2003 - 14:04 #8
hmmm... så prøv i OnCreate...
Avatar billede fun22 Nybegynder
30. april 2003 - 14:13 #9
har jeg også prøvet
Avatar billede jpvj Nybegynder
30. april 2003 - 14:49 #10
Prøv at sætte "form1.visible := false;" i enten onshow eller oncreate - så er du da fri for at tænke på, om din iniread returnerer korrekt...

JP
Avatar billede fun22 Nybegynder
30. april 2003 - 15:37 #11
det vil den heller ikke
Avatar billede jpvj Nybegynder
01. maj 2003 - 10:49 #12
Har ikke lige Delphi installeret lige nu, så jeg kan ikke engang lave et testprogram.

Prøv at debugge dit program. Se hvornår form1.visible skifter til true.

JP
Avatar billede fun22 Nybegynder
01. maj 2003 - 12:21 #13
hvordan gør jeg det?
Avatar billede jpvj Nybegynder
01. maj 2003 - 16:56 #14
Sætter et breakpoint (se menuen Run eller Build - kan ikke lige huske det) og trykker F5 for at køre. Så stopper programmet der hvor break pointet er sat. Du kan lave watches, så du hele tiden kan se hvilken værdi en variabel har, og udføre programmet lignie for linie med F8 (mener jeg).

JP
Avatar billede fun22 Nybegynder
01. maj 2003 - 17:05 #15
kan du ikke installere delphi og så lave det test prog?? Jeg fohøjer til 60 points
Avatar billede doc404 Novice
01. maj 2003 - 17:29 #16
Af en eller anden grund er det ikke nok at sætte din MainForm's visible property - du skal også sætte Application.ShowMainForm.

Nedenstående virker, hvis du er 100% sikker på at din IniRead returnerer det korrekte...

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Form1.Visible := IniRead(bla bla) = 'true';
  Application.ShowMainForm := Form1.Visible;
  Application.Run;
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