/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Manuel creating form og modalresult
Fra : ~-~ Mivi ~-~


Dato : 25-04-01 13:28

Jeg har lavet et lille program i D5 bestående af to forme (se nedenfor).

Når jeg automatisk laver begge forme, virker det perfekt.
Min label på form et får sat en værdi, alt efter min modalresult.

Hvis jeg manuelt laver form2, som nedenfor, virker det ikke.
Jeg får en fejl FFFFFFFFF i mit program.

Ved nogen hvorfor ?





____________________________________

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
temp : integer;
f : TForm2;
begin
f := NIL;
f := TForm2.Create(f);
if (f.ShowModal=mrOK) then
Label1.Caption := 'OK'
else
label1.caption := '????';
f.free;
end;

end.




__________________________________





unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation


var
knapok : Boolean;
{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);
begin
KnapOK := TRUE;
close;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
KnapOK := FALSE;
Close;
end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if (KnapOK) then
form2.ModalResult := mrOk
else
form2.ModalResult := mrCancel;
end;

end.


--
-----------------------------------------------------------------------

Med venlig hilsen / Best regards

OCC Data ApS - Michael Vilhelmsen
Systemudvikler
Telefon: 66 15 46 00 - Fax: 65 93 20 55
Website: www.occdata.dk

Andre kontakter:

Bogholderi: bogholderi@occdata.dk Info: occdata@occdata.dk Salg:
salgocc@occdata.dk
-----------------------------------------------------------------------




 
 
Claus Christiansen (25-04-2001)
Kommentar
Fra : Claus Christiansen


Dato : 25-04-01 20:12


"~-~ Mivi ~-~" <ccc37780@vip.cybercity.dk> wrote in message
news:vqzF6.59446$o4.5113617@news010.worldonline.dk...
> Jeg har lavet et lille program i D5 bestående af to forme (se
nedenfor).
>
> Når jeg automatisk laver begge forme, virker det perfekt.
> Min label på form et får sat en værdi, alt efter min
modalresult.
>
> Hvis jeg manuelt laver form2, som nedenfor, virker det ikke.
> Jeg får en fejl FFFFFFFFF i mit program.
>
> Ved nogen hvorfor ?

Ja, det skyldes at du i FormCloseQuery retter på formen
tilhørende variablen Form2 og IKKE din egen dynamisk oprettede,
hvis du ønsker dette skal du skrive self.showmodal := ... eller
blot showmodal := ...

> procedure TForm2.Button2Click(Sender: TObject);
> begin
> KnapOK := FALSE;
> Close;
> end;

Hvis det du vil virkelig er "lige det her" og ikke et eksempel
på noget der i virkeligheden bygger på noget andet så ville det
da være nemmere blot at udstifte alt det der KnapOK med
Modalresult := mrCancel hhv. Modalresult := mrOK i dine button
events?

Claus

--
Claus Christiansen, TeamD member <cch@unipeople.dk>

Pythia: http://www.pythia.dk/
Personal: http://www.bigfoot.com/~kruc
============================================--------------------
-----
"Computers are useless. They can only give you answers."
-- Pablo Picasso (1881-1973)




Michael Vilhelmsen (25-04-2001)
Kommentar
Fra : Michael Vilhelmsen


Dato : 25-04-01 20:19

Jeg det sidste ville være nemmere, men jeg er nød til at tage vare om nogle
andre ting i mit faktiske program.

Mit lille eksempel er lavet af mig selv, for at afprøve det specifikke
eksempel.

Men ellers tak for hjælpen.
Tænk sig. Løsningen er lige for næsen af en, og man kan ikke se den for bare
træer.

Michael

"Claus Christiansen" <cch@unipeople.dk> skrev i en meddelelse
news:7oFF6.59963$o4.5189224@news010.worldonline.dk...
>
> "~-~ Mivi ~-~" <ccc37780@vip.cybercity.dk> wrote in message
> news:vqzF6.59446$o4.5113617@news010.worldonline.dk...
> > Jeg har lavet et lille program i D5 bestående af to forme (se
> nedenfor).
> >
> > Når jeg automatisk laver begge forme, virker det perfekt.
> > Min label på form et får sat en værdi, alt efter min
> modalresult.
> >
> > Hvis jeg manuelt laver form2, som nedenfor, virker det ikke.
> > Jeg får en fejl FFFFFFFFF i mit program.
> >
> > Ved nogen hvorfor ?
>
> Ja, det skyldes at du i FormCloseQuery retter på formen
> tilhørende variablen Form2 og IKKE din egen dynamisk oprettede,
> hvis du ønsker dette skal du skrive self.showmodal := ... eller
> blot showmodal := ...
>
> > procedure TForm2.Button2Click(Sender: TObject);
> > begin
> > KnapOK := FALSE;
> > Close;
> > end;
>
> Hvis det du vil virkelig er "lige det her" og ikke et eksempel
> på noget der i virkeligheden bygger på noget andet så ville det
> da være nemmere blot at udstifte alt det der KnapOK med
> Modalresult := mrCancel hhv. Modalresult := mrOK i dine button
> events?
>
> Claus
>
> --
> Claus Christiansen, TeamD member <cch@unipeople.dk>
>
> Pythia: http://www.pythia.dk/
> Personal: http://www.bigfoot.com/~kruc
> ============================================--------------------
> -----
> "Computers are useless. They can only give you answers."
> -- Pablo Picasso (1881-1973)
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste