[DELPHI] if messagedlg is .. then ..

Pagina: 1
Acties:

  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
Ik heb een form als welkom scherm voor mijn programma. Nu wil ik in het welkom scherm wat dingen laden en controleren. Zoals het volgende.
Naast mijn hoofd programma moet er nog een extra file bij zitten om het te laten werken. Hier genaamd bestand.txt! Als hij er is, start het programma gewoon op.
Als hij er niet is, geeft hij een error box dat hij het bestand niet kan vinden.
De enigste mogelijkheid is dan nog op OK drukken.

Nu wil ik wanneer het bestand er niet is en op OK druk. Dat het programma direct stopt. dus geen regel meer verder gaat en ook geen form ff 1 seconde laat zien ofzo.

Dit heb ik al.. maar dan laad hij toch wel ff het volgende forum, wat niet moet.


code:
1
2
3
4
5
6
7
8
procedure TForm3.FormCreate(Sender: TObject);
begin
if not FileExists('bestand.txt') then
begin
if messagedlg ('Kan bestand.txt niet vinden!',mterror,[mbok],0) = mrOK then
Application.Terminate;
end;
end;

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:39
(jarig!)
Misschien kun je je form standaard op 'invisible' zetten en pas als ie nodig is op 'visible'.

Verwijderd

Je zou waarschijnlijk ook de code in de project source file kunnen plaatsen ipv de create functie v/d form.

  • baggah
  • Registratie: December 2000
  • Laatst online: 06-08 22:47
Je zou ook de forms van autocreate afhalen.. en alleen laten creeren als je het nodig hebt. ( in je main form)

Verwijderd

Onder
View -> Units
staat een project unit, hierin staat waar de applicatie gestart wordt

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program Project1;

uses
  Forms, Dialogs, Controls,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  if not FileExists('bestand.txt') then
    begin
      if messagedlg ('Kan bestand.txt niet vinden!',mterror,[mbok],0) = mrOK then
        Exit;
    end;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


Dit werkt, heb het even getest

[ Voor 41% gewijzigd door Verwijderd op 15-01-2003 18:33 ]


  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program project1;

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

{$R *.RES}

begin
if not FileExists('zlportio.sys') then
begin
if messagedlg ('zlportio.sys niet vinden!',mterror,[mbok],0) = mrOK then
Exit;
end

begin
try
Form3:=TForm3.Create(Application);
Form3.Show;
Form3.Update;
Application.Initialize;
Application.Title:='Parallel Indicator voor Windows NT/2K/XP';
Application.HelpFile := '';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
repeat
Application.ProcessMessages;
until Form3.CloseQuery;
Form3.Close;
finally
Form3.Free;
end;
Application.Run;
end.


code:
1
2
3
4
5
6
7
[Error] Project1.dpr(12): Undeclared identifier: 'FileExists'
[Error] Project1.dpr(14): Undeclared identifier: 'messagedlg'
[Error] Project1.dpr(14): Undeclared identifier: 'mterror'
[Error] Project1.dpr(14): Undeclared identifier: 'mrOK'
[Error] Project1.dpr(19): Missing operator or semicolon
[Error] Project1.dpr(37): Record, object or class type required
[Error] Project1.dpr(39): 'END' expected but end of file found

[ Voor 16% gewijzigd door Pascal Saul op 15-01-2003 18:38 ]


Verwijderd

In de uses claus moeten nog
code:
1
uses Forms, Dialogs, Controls, SysUtils;


Dit heb jij niet.
Als ik jou was zou ik eens een boek kopen, wnat dit is erg basic

  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
Verwijderd schreef op 15 January 2003 @ 18:38:
In de uses claus moeten nog
code:
1
uses Forms, Dialogs, Controls, SysUtils;


Dit heb jij niet.
Als ik jou was zou ik eens een boek kopen, wnat dit is erg basic
dat van uses was ik inderdaad helemaal vergeten...
nou ik heb een boek gehad maar daar heb ik nisk van geleerd...
wat ik nu zelf heb is al stukken meer dat wat in dat boek stond.
beetje zelf uitpluizen en je komt zeer ver....

bedankt he :)
het werkt nu wel goed....

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:02
DarkRider schreef op 15 January 2003 @ 18:45:
[...]


dat van uses was ik inderdaad helemaal vergeten...
nou ik heb een boek gehad maar daar heb ik nisk van geleerd...
Toch nog maar eens dat boek lezen, of een ander boek kopen.
wat ik nu zelf heb is al stukken meer dat wat in dat boek stond.
beetje zelf uitpluizen en je komt zeer ver....

bedankt he :)
het werkt nu wel goed....

Tja, dan mag je wel niet bang zijn om ook die Delphi help eens te gebruiken. Dan had je dat wel zelf gevonden van die uses.

https://fgheysels.github.io/


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Misschien een beetje zeikerig dit maar heb je wel eens geprobeerd op het kruisje van het MessageDlg te klikken, als dit gebeurt geeft het dialoog de waarde mrCancel terug...

Niet echt handig dus want dit zou beteken dat je applicatie gewoon opstart. Beter is te kijken of het bestand bestaat, bericht te laten zien en dan te sluiten.

Delphi:
1
2
3
4
5
  if not FileExists('bestand.txt') then
  begin
    MessageDlg('Kan bestand.txt niet vinden!', mtError, [mbOK], 0);
    Exit;
  end;

[ Voor 4% gewijzigd door FendtVario op 15-01-2003 19:10 . Reden: taalfouten, waar was dat havo 5 nederlands boek ook al weer ;) ]

www.fendt.com | Nikon D7100 | PS5


  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
FendtVario schreef op 15 January 2003 @ 19:09:
Misschien een beetje zeikerig dit maar heb je wel eens geprobeerd op het kruisje van het MessageDlg te klikken, als dit gebeurt geeft het dialoog de waarde mrCancel terug...

Niet echt handig dus want dit zou beteken dat je applicatie gewoon opstart. Beter is te kijken of het bestand bestaat, bericht te laten zien en dan te sluiten.

Delphi:
1
2
3
4
5
  if not FileExists('bestand.txt') then
  begin
    MessageDlg('Kan bestand.txt niet vinden!', mtError, [mbOK], 0);
    Exit;
  end;
inderdaad ik zie het :) slim van je.... dat is inderdaad beter... bedankt..

als ik programma opstart zie ik onderin me taakbalk mijn programma met bijbehoorde icon en dan staat project1 in plaats van mijn project title :?

stomme vraag voor jullie misschien maar.. voor mij iets moeilijker..

[ Voor 22% gewijzigd door Pascal Saul op 16-01-2003 00:07 ]


  • BM
  • Registratie: September 2001
  • Laatst online: 10:42

BM

Admin Softe Goederen
Project --> Options --> Tabblad Application --> Application Settings --> Title

Daar invullen, en het komt in je taakbalk te staan :)

Xbox
Even the dark has a silver lining


  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
SpeedAddict schreef op 16 January 2003 @ 00:32:
Project --> Options --> Tabblad Application --> Application Settings --> Title

Daar invullen, en het komt in je taakbalk te staan :)
daar heb ik het ook.... :)

ik zie alleen project1 staan als ik de error krijg...

of komt dat omdat ik mijn error in de project unit heb staan.

en die heet wel

program project1;

?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Draait je app eens buiten de IDE en kijk eens of het dan nog is. Delphi doet namelijk speciale dingen als je aan het debuggen bent die je niet ziet als je programma gewoon draait.

We adore chaos because we like to restore order - M.C. Escher


  • Pascal Saul
  • Registratie: Augustus 2001
  • Laatst online: 22-08 08:27
LordLarry schreef op 16 januari 2003 @ 09:13:
Draait je app eens buiten de IDE en kijk eens of het dan nog is. Delphi doet namelijk speciale dingen als je aan het debuggen bent die je niet ziet als je programma gewoon draait.
Nope had ik al geprobeerd....

Ik weet nu wat het is :)
aangezien de executable project1.exe genaamd is... en wanneer je met error opstart wordt er geen forum geladen maar windows meot wel wat in de taakbalk hebben. dus pakt ie gewoon het icoontje van project1.exe en de exe naam :)
Pagina: 1