[delphi]form visible kan niet false

Pagina: 1
Acties:
  • 327 views sinds 30-01-2008

  • mitchel
  • Registratie: Maart 2001
  • Niet online
Waarom kan ik in delphi 6 form1 niet visible:=false en form2 visible:=true zetten? Want form 1 is evengoed nog zichtbaar.

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

Laat anders eens een stuk code ervan zien, misschien zit ergens iets fout, wat ik heb vaker dit gewoon gebruikt in delphi 4 & 5, ik kan me niet voorstellen dat ze dat ineens gaan veranderen.

Bikkelen gebeurt pas na 2:00


Verwijderd

Is form1 misschien een modal form ? Je kan geen nonmodal form als child van een modal form tonen.
Misschien moet je het proberen met de show() method (of iets in die aard, ik ben meer bekend met VB :) )

  • mitchel
  • Registratie: Maart 2001
  • Niet online
met standaart en kaal from 1 en ik maaknog een form2 aan form1 visible zet ik op false en form 2 op true laat hij nog steeds beide zien.

Verwijderd

ah dus het probleem is niet dat form2 niet getoond wordt, maar wel dat form1 zichtbaar blijft.
Waar staat de code om die forms te showen/hiden ? in een form of ergens in een module ?

  • Sjnirk
  • Registratie: Maart 2001
  • Laatst online: 27-03-2025

Sjnirk

Hie vrieve

zet je hem gewoon op false met code of "click" je het aan, heb je al es gekeken als je het met code doet of je het form hebt opgenomen in je uses, tenminste als je hem van het andere form aanroept

Bikkelen gebeurt pas na 2:00


  • mitchel
  • Registratie: Maart 2001
  • Niet online
ik klik hem aan. met code(formcreate) lukt het ook niet

  • Luckeh
  • Registratie: Juni 2001
  • Niet online

Luckeh

Lucas

Form1.Visible := False;
Form2.Visible := True;

en zet voor de zekerheid Form1.Enabled ook op false :)

AlphaESS 10+6kW + 23kWh batterij || 64x 500Wp PV || '23 MY LR || LG R290 16kW WP


Verwijderd

Een klein ideetje misschien maar ik heb deze oplossing er eens voor bedacht:

code:
1
2
AlphaBlend := true;
AlphaBlendValue := 0;


En mocht de windows titelbalk in de weg zitten, sloop je die er gewoon even af. Als de form weer zichtbaar moet worden zet je hem er weer op.

NOTE:

Even opletten met de hoogte waarden ;)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23-08 21:27

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 13 maart 2003 @ 18:08:
Een klein ideetje misschien maar ik heb deze oplossing er eens voor bedacht:

code:
1
2
AlphaBlend := true;
AlphaBlendValue := 0;


En mocht de windows titelbalk in de weg zitten, sloop je die er gewoon evenaf. Als de form weer zichtbaar moet worden zet je hem er weer op.

NOTE:

Even opletten met de hoogte waarden ;)
En niet vergeten dat dit alleen onder windows 2000 en XP werkt.

Je zou eens kunnen proberen om eerst form2 te tonen voordat je form1 wilt verbergen. Mocht dat nou echt niet lukken (wat me sterk lijkt) dan kan je altijd nog een TPageControl op een form zetten en hier wat tabbladen opzetten en de tabs verbergen om zo een wizard achtig iets te maken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

jongens jongens jongens... !!!
Ook al staat alphablend op 0, dan nog bestaat het scherm en kun je dus op knoppen en menu's klikken! Maar dan zonder het te weten!!

Ik heb het idee dat het niks anders is dan het feit dat form1 gezien wordt als hoofdform van je app en je deze daardoor niet op visible = false kunt zetten. Ik check het even...

[check-edit]
Inderdaad. als Form1 bij de projecteigenschappen ingesteld staat als 'MainForm' blijft deze zichtbaar, ook als je visible op true zet.

Wat is precies de reden dat je form1 niet visible wil hebben? Wellicht zijn er andere oplossingen voor dan deze.

Je kunt het gewoon met form1.hide doen, dan is form1 wel weg. Hou er alleen wel rekening mee dat form1 het hoofdscherm van je app is, en dus dat die gesloten moet worden om de applicatie te sluiten. Als je daar niet voor zorgt is je app niet gesloten met het sluiten van Form2!!!
[/check-edit]

[ Voor 48% gewijzigd door OZ-Gump op 13-03-2003 18:43 . Reden: ff checke.... ]

My personal website


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23-08 21:27

Creepy

Tactical Espionage Splatterer

OZ-Gump schreef op 13 March 2003 @ 18:34:
Ik heb het idee dat het niks anders is dan het feit dat form1 gezien wordt als hoofdform van je app en je deze daardoor niet op visible = false kunt zetten. Ik check het even...
Dit kan zonder problemen hoor.. Vanmiddag nog gedaan in Delphi 6. Maar ik toonde eerst het tweede form voordat ik het eerst weghaalde.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Creepy schreef op 13 maart 2003 @ 18:38:
[...]

Dit kan zonder problemen hoor.. Vanmiddag nog gedaan in Delphi 6. Maar ik toonde eerst het tweede form voordat ik het eerst weghaalde.
Misschien doet de TS dat niet...? Kijk verder maar eens naar de post hierboven...

Ik denk overigens dat de TS het alleen in de object inspector van Delphi geprobeerd heeft en niet met code o.i.d..

My personal website


  • mitchel
  • Registratie: Maart 2001
  • Niet online
OZ-Gump schreef op 13 maart 2003 @ 18:34:
jongens jongens jongens... !!!
Ook al staat alphablend op 0, dan nog bestaat het scherm en kun je dus op knoppen en menu's klikken! Maar dan zonder het te weten!!

Ik heb het idee dat het niks anders is dan het feit dat form1 gezien wordt als hoofdform van je app en je deze daardoor niet op visible = false kunt zetten. Ik check het even...

[check-edit]
Inderdaad. als Form1 bij de projecteigenschappen ingesteld staat als 'MainForm' blijft deze zichtbaar, ook als je visible op true zet.

Wat is precies de reden dat je form1 niet visible wil hebben? Wellicht zijn er andere oplossingen voor dan deze.

Je kunt het gewoon met form1.hide doen, dan is form1 wel weg. Hou er alleen wel rekening mee dat form1 het hoofdscherm van je app is, en dus dat die gesloten moet worden om de applicatie te sluiten. Als je daar niet voor zorgt is je app niet gesloten met het sluiten van Form2!!!
[/check-edit]
thanks kzal deze eens gaan proberen het komt eigenlijk dat ik een best groot uitgebreid programma heb gemaakt dat op form1 staat en ik wil niet alles gaan overplaatsen. form1 wordt gewoon weer zicht baar na form2 gesloten is

  • mitchel
  • Registratie: Maart 2001
  • Niet online
procedure TForm2.FormCreate(Sender: TObject);
begin
form1.hide:=true;
end;

lukt niet waarom niet?

procedure TForm1.FormCreate(Sender: TObject);
hide;
end;

Doet het niet krijg form1 nog gewoon te zien.

[ Voor 36% gewijzigd door mitchel op 13-03-2003 20:16 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23-08 21:27

Creepy

Tactical Espionage Splatterer

mitchel schreef op 13 maart 2003 @ 20:15:
procedure TForm2.FormCreate(Sender: TObject);
begin
form1.hide:=true;
end;

lukt niet waarom niet?

procedure TForm1.FormCreate(Sender: TObject);
hide;
end;

Doet het niet krijg form1 nog gewoon te zien.
Wat wil je nu dan?
Wil je vanuit form1, form2 tonen?
Dan doe je ergens vanuit een stuk code op form1
code:
1
2
form2.show;
hide;

Als je de .show vervangt door .showmodal dan zal form1 ook nog zichtbaar zijn. maar niet te gebruiken voordat form2 verdwenen is.

Wil je opstarten met form2 i.p.v. form1? Open dan de .dpr file en zet de create van form2 voor die van form1 of zet bij Project -> Options -> Autocreate forms form2 boven form1.

Nofi hoor, maar dit is allemaal relatief simpel. Al eens gedacht aan een fatsoenlijke Delphi tutorial?

Edit: ik zal ook uitleggen waarom het niet werkt zoals jij het hebt staan.
Tijdens het starten van de applicatie worden eerste alle forms gecreeerd. Op het moment dat form1 gecreeerd word zet jij hiervan visible op false. Pas als alle forms gecreeerd zijn zal het mainform (het eerste ge-create (pff, wat een woord ;) ) ) getoond worden d.m.v. een .show; En dan word het form dat je net hebt gehide, weer gewoon opnieuw getoond.

Kijk nog eens goed in de help in het gedeelte van TForm.
Je doet of form.hide en form.show, of je zet de visibility van het form op true of false.
Je voorbeelde code form.hide:=true slaat dus nergens op. Dit moet zijn form.hide of form.visible:=false. Uiteraard moet je deze code NIET gebruiken in de oncreate van je form (waarom heb ik net uitgelegd)

[ Voor 37% gewijzigd door Creepy op 13-03-2003 20:50 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Lachen hoe niemand na 5 pagina's nog met de goeie oplossing komt en mekaar ondertussen wel voor n00b staat uit te maken :)

Het eerste Form (de MainForm van je applicatie) wordt per definitie getoond, waar de Visible property ook op staat. Dit is erg irritant als je bijvoorbeeld een splashscreen wil tonen tijdens de program startup terwijl je een hoop werk verricht voordat de main window tevoorschijn komt.

Gelukkig hebben de designers van Borland hier welzeker over nagedacht :) Het volgende simpele stukje code in de constructor van je mainform of in de main-functie lost het namelijk al op:
C++:
1
Application->ShowMainForm = false;

Als je even in de helpfiles deze property opzoekt staat er een goede example bij hoe je 'm moet gebruiken.

Stelletje n00bs ;)

Professionele website nodig?


  • Relix
  • Registratie: Augustus 2001
  • Laatst online: 19-11-2005

Relix

Aerith Gainsborough - Cetra

curry heeft gelijk, en moest hij niet met het antwoord zijn gekomen zou ik gelachen hebben lol, wel eigenlijk heb'k ook gelachen.

Anyway, in delphi is het:

Application.ShowMainForm := false;

If you come here... you'll find me... I promise


  • Dala
  • Registratie: November 2000
  • Laatst online: 23-08 20:51
je zou natuurlijk ook een beetje aso kunnen doen en gewoon zeggen
Delphi:
1
2
Form1.top := -10000;
Form1.left := -10000;


heel simpel... :D

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Dala schreef op 13 March 2003 @ 22:46:
je zou natuurlijk ook een beetje aso kunnen doen en gewoon zeggen
Delphi:
1
2
Form1.top := -10000;
Form1.left := -10000;


heel simpel... :D
En geen enkele garantie dat het op iedere computer werkt omdat multimonitor window managers nogal de neiging hebben om windows hardhandig binnen de visible area te schuppen.

Uberhaupt beetje overbodig om met deze 'workaround' te komen nadat de correcte oplossing al genoemd is.

Professionele website nodig?


  • Dala
  • Registratie: November 2000
  • Laatst online: 23-08 20:51
curry684 schreef op 13 March 2003 @ 22:52:
[...]

En geen enkele garantie dat het op iedere computer werkt omdat multimonitor window managers nogal de neiging hebben om windows hardhandig binnen de visible area te schuppen.

Uberhaupt beetje overbodig om met deze 'workaround' te komen nadat de correcte oplossing al genoemd is.
dat klopt inderdaad... als je multi monitor enzo heb...

maar ik dacht dat de oplossing toch nog niet was gevonden....

trouwens als jij die waarde hoog genoeg zet, dan heb je wel heel veel monitors nodig })

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Dala schreef op 14 maart 2003 @ 09:07:
dat klopt inderdaad... als je multi monitor enzo heb...

maar ik dacht dat de oplossing toch nog niet was gevonden....

trouwens als jij die waarde hoog genoeg zet, dan heb je wel heel veel monitors nodig })
Nee hoor, dat is nou net het idee van een window manager, die is actief met die dingen bezig :) En zal prettig detecteren dat -10000, -10000 buiten je desktop valt en 'm dus moven naar 0, 0.

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
Dala schreef op 13 March 2003 @ 22:46:
je zou natuurlijk ook een beetje aso kunnen doen en gewoon zeggen
Delphi:
1
2
Form1.top := -10000;
Form1.left := -10000;


heel simpel... :D


en heel ranzig.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Er zijn al twee fatsoenlijke oplossingen gegeven. Misschien is het verder niet echt nuttig om nu in te gaan op dingen als Window Managers e.d..

Ik vraag me wel of het de TS nou uiteindelijk gelukt is om te doen wat hij graag wilde doen. Misschien dat die nog iets van zich kan laten horen...?

Het is altijd hetzelfde: wel een oplossing willen, maar ff posten hoe het gegaan is: ho maar... :X

My personal website


Verwijderd

curry684 schreef op 13 maart 2003 @ 21:49:
Lachen hoe niemand na 5 pagina's nog met de goeie oplossing komt en mekaar ondertussen wel voor n00b staat uit te maken :)

Het eerste Form (de MainForm van je applicatie) wordt per definitie getoond, waar de Visible property ook op staat. Dit is erg irritant als je bijvoorbeeld een splashscreen wil tonen tijdens de program startup terwijl je een hoop werk verricht voordat de main window tevoorschijn komt.

Gelukkig hebben de designers van Borland hier welzeker over nagedacht :) Het volgende simpele stukje code in de constructor van je mainform of in de main-functie lost het namelijk al op:
C++:
1
Application->ShowMainForm = false;

Als je even in de helpfiles deze property opzoekt staat er een goede example bij hoe je 'm moet gebruiken.

Stelletje n00bs ;)
Dit is het enige goeie antwoord... 8)7

Application.ShowMainForm := False;
Form2.Show;

De rest van de posts is echt zeer triest.., getuigt van weinig inzicht en vuile oplossingen.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23-08 21:27

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 14 March 2003 @ 10:44:
[...]


Dit is het enige goeie antwoord... 8)7

Application.ShowMainForm := False;
Form2.Show;

De rest van de posts is echt zeer triest.., getuigt van weinig inzicht en vuile oplossingen.
Dank.. flame on.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

De rest van de posts is echt zeer triest.., getuigt van weinig inzicht en vuile oplossingen.
Zeg dan niks. Als eerste wordt gevraagd naar hoe form1.visible toch op false te zetten is. In mijn eerste post in dit draadje doe ik dat. Zoals sommigen dat zo welbespraakt zeggen: Lees de draad voor je blaat!

My personal website


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 14 March 2003 @ 10:44:
De rest van de posts is echt zeer triest.., getuigt van weinig inzicht en vuile oplossingen.



slechte dag vandaag? Ik kan je echt aanraden om dat zeker niet op GoT af te reageren, flamerig gedrag wordt hier echt niet getolereerd (en dit slaat ook op je andere 2 posts die je vandaag gedaan hebt)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

OZ-Gump schreef op 14 maart 2003 @ 10:19:
Misschien is het verder niet echt nuttig om nu in te gaan op dingen als Window Managers e.d..
Waarom zou het niet nuttig zijn? Er worden dingen geopperd als werkende oplossingen voor het probleem waar dit topic over gaat, en dan is het imho wel degelijk nuttig om uit te leggen waarom dat niet gaat werken.

De topicstarter is niet de enige die iets van een topic kan leren ;)
Verwijderd schreef op 14 maart 2003 @ 10:44:
Dit is het enige goeie antwoord... 8)7
De rest van de posts is echt zeer triest.., getuigt van weinig inzicht en vuile oplossingen.
En anders ga jij even op Onzinforum puberen of zo.... :r

[ Voor 1% gewijzigd door curry684 op 14-03-2003 11:32 . Reden: Typo ]

Professionele website nodig?


Verwijderd

OZ-Gump schreef op 13 March 2003 @ 18:34:
jongens jongens jongens... !!!
Ook al staat alphablend op 0, dan nog bestaat het scherm en kun je dus op knoppen en menu's klikken! Maar dan zonder het te weten!!

[/check-edit]
Ik heb het even getest:

Een form gemaakt met een zeer grote button erop waar deze code onderlag:

code:
1
showmessage('hoi');


en ook met:

code:
1
form2.show;


Nou, ik heb geklikt tot ik erbij neerviel (vandaar dat ik nu ook pas reageer ;) ) maar het programma deed boe noch bah!

[ Voor 40% gewijzigd door Verwijderd op 14-03-2003 13:50 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Nou, ik heb geklikt tot ik erbij neerviel (vandaar dat ik nu ook pas reageer ) maar het programma deed boe noch bah!
Touché.
Om toch maar even aan te geven dat het niet verstandig (en laten we niet vergeten ERG smerig) is: selecteer de app die je hebt gemaakt dan eens in je taakbalk en druk dan op de <enter> toets...

Pijnlijk dat het dan wel werkt he? Hieruit blijkt dus maar weer dat het een erg foute oplossing is, tenminste IMHO. Als je een snelkoppelingen-freak bent en je doet ik-weet-niet-wat met je ALT-toets, GOD mag weten wat er dan allemaal gebeurt...

NOI voor alle, al dan niet streng, religieuze GoT'ers... :P

My personal website


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

tsja.

Voor de topicstarter: Je krijgt vandaag de hoofdprijs karige topicstarts. Volgende keer even gebruik maken van de quickstart ajb.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.