/ 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
Hvordan sender man en variabel videre?
Fra : Ukendt


Dato : 06-02-06 20:55

Hej.

Jeg skal prøve at gøre det simpelt (se, allerede der bliver det kompliceret)


Jeg prøver med et eksempel:

Form1 indeholder en knap til form3
Form2 indeholder en knap til form 3
Form3 indeholder diverse.

Kan jeg lave en variabel, der bliver sendt med, når man åbner form 3,
således at min form3.formshow event ved, om jeg kom fra form 1 eller 2.



 
 
Finn Bindeballe (06-02-2006)
Kommentar
Fra : Finn Bindeballe


Dato : 06-02-06 21:36

hej...

tjaa... du kan jo se hvem der sender er.


procedure TForm3.FormShow(Sender: TObject);
begin
   if (sender as TForm).name = 'Form1' then blabla...
   if (sender as TForm).name = 'Form2' then blabla...
end;

Dette er ikke tested....men burde virke..

/finn

Harald (07-02-2006)
Kommentar
Fra : Harald


Dato : 07-02-06 08:32

"Finn Bindeballe" <ohno@galnet.dk> skrev i en meddelelse
news:43e7b22a$0$15781$14726298@news.sunsite.dk...
> hej...
>
> tjaa... du kan jo se hvem der sender er.
>
>
> procedure TForm3.FormShow(Sender: TObject);
> begin
> if (sender as TForm).name = 'Form1' then blabla...
> if (sender as TForm).name = 'Form2' then blabla...
> end;
>
> Dette er ikke tested....men burde virke..

Det vil ikke virker Sender er vil altid være Form3.

Du kunne gøre det ved at oprette en variabel i Form3 der hedder f.eks.
FraForm det kunne være en integer, inden du så kalder Form3.Show eller
Form3.ShowModal sætter du denne variabel:

Form3.FraForm:=2;
Form3.ShowModal;

/HK



x@x.x (08-02-2006)
Kommentar
Fra : x@x.x


Dato : 08-02-06 09:01

Jeg prøver gennem news.tele2.dk og ikke news.tiscali.dk. Det fung'er ikke
rigtig? Ligeledes emails kan Tiscali heller ikke håndtere? De er flere dage
forsinket nogen gange.

----

Prøver igen... igen...

/Brian


"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:...
> Prøver igen.
>
> Indlæget er endnu ikke ankommet efter en time, så måske der dukker to ens
> svar op?
>
> /Brian
>
> "Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
> meddelelse news:...
>>> procedure TForm3.FormShow(Sender: TObject);
>>> begin
>>> if (sender as TForm).name = 'Form1' then blabla...
>>> if (sender as TForm).name = 'Form2' then blabla...
>>> end;
>>
>> I kaldene TForm.Show og TForm.ShowModal er den ingen parametre, som kan
>> overføres til OnShow Eventet. Din løsning med at anvende OnShow Event'et
>> vil altid give TForm3 objektet i Sender parametren.
>>
>> Dog kan man arbejde videre med din ide og konstruere et nyt procedure
>> kald på TForm3. Det er skrevet i løs hånd, så jeg håber det virker/du kan
>> se ideer.
>>
>> /Brian
>>
>> unit 3;
>>
>> type
>> TViewType = (vtShow, vtModal);
>>
>> TForm3 = class(TForm)
>> private
>> FCallingForm: TForm;
>> ..
>> public
>> procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
>> ..
>> end;
>>
>> implementation
>>
>> uses
>> Unit1, ...;
>>
>> procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
>> begin
>> FCallingForm := ACallingForm;
>>
>> if AViewType = vtShow then
>> Show else
>> ShowModal;
>> end;
>>
>> procedure TForm3.FormShow(Sender: TObject);
>> begin
>> if FCallingForm = Form2 then ....
>> end;
>>
>>
>> Et kald til TForm3 kunne så se sådan ud.
>>
>> procedure TForm2.Button1Click(Sender: TObject);
>> begin
>> Form3.ViewForm(Self, vtModal);
>> end;
>>
>
>





Brian Andersen \(www~ (07-02-2006)
Kommentar
Fra : Brian Andersen \(www~


Dato : 07-02-06 08:27

> procedure TForm3.FormShow(Sender: TObject);
> begin
> if (sender as TForm).name = 'Form1' then blabla...
> if (sender as TForm).name = 'Form2' then blabla...
> end;

I kaldene TForm.Show og TForm.ShowModal er den ingen parametre, som kan
overføres til OnShow Eventet. Din løsning med at anvende OnShow Event'et vil
altid give TForm3 objektet i Sender parametren.

Dog kan man arbejde videre med din ide og konstruere et nyt procedure kald
på TForm3. Det er skrevet i løs hånd, så jeg håber det virker/du kan se
ideer.

/Brian

unit 3;

type
TViewType = (vtShow, vtModal);

TForm3 = class(TForm)
private
FCallingForm: TForm;
..
public
procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
..
end;

implementation

uses
Unit1, ...;

procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
begin
FCallingForm := ACallingForm;

if AViewType = vtShow then
Show else
ShowModal;
end;

procedure TForm3.FormShow(Sender: TObject);
begin
if FCallingForm = Form2 then ....
end;


Et kald til TForm3 kunne så se sådan ud.

procedure TForm2.Button1Click(Sender: TObject);
begin
Form3.ViewForm(Self, vtModal);
end;



Brian Andersen \(www~ (08-02-2006)
Kommentar
Fra : Brian Andersen \(www~


Dato : 08-02-06 08:39

Prøver igen... igen...

/Brian


"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:...
> Prøver igen.
>
> Indlæget er endnu ikke ankommet efter en time, så måske der dukker to ens
> svar op?
>
> /Brian
>
> "Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
> meddelelse news:...
>>> procedure TForm3.FormShow(Sender: TObject);
>>> begin
>>> if (sender as TForm).name = 'Form1' then blabla...
>>> if (sender as TForm).name = 'Form2' then blabla...
>>> end;
>>
>> I kaldene TForm.Show og TForm.ShowModal er den ingen parametre, som kan
>> overføres til OnShow Eventet. Din løsning med at anvende OnShow Event'et
>> vil altid give TForm3 objektet i Sender parametren.
>>
>> Dog kan man arbejde videre med din ide og konstruere et nyt procedure
>> kald på TForm3. Det er skrevet i løs hånd, så jeg håber det virker/du kan
>> se ideer.
>>
>> /Brian
>>
>> unit 3;
>>
>> type
>> TViewType = (vtShow, vtModal);
>>
>> TForm3 = class(TForm)
>> private
>> FCallingForm: TForm;
>> ..
>> public
>> procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
>> ..
>> end;
>>
>> implementation
>>
>> uses
>> Unit1, ...;
>>
>> procedure TForm3.ViewForm(ACallingForm: TForm; AViewType: TViewType);
>> begin
>> FCallingForm := ACallingForm;
>>
>> if AViewType = vtShow then
>> Show else
>> ShowModal;
>> end;
>>
>> procedure TForm3.FormShow(Sender: TObject);
>> begin
>> if FCallingForm = Form2 then ....
>> end;
>>
>>
>> Et kald til TForm3 kunne så se sådan ud.
>>
>> procedure TForm2.Button1Click(Sender: TObject);
>> begin
>> Form3.ViewForm(Self, vtModal);
>> end;
>>
>
>




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

Månedens bedste
Årets bedste
Sidste års bedste