Visual Basic – restartowanie programu po naciśnięciu przycisku

0

Aby nie zaśmiecać forum dodatkowymi wątkami w tym wątku będę prosił o pomoc tych którzy jeszcze pamiętają coś z Visual Basic 6

  1. Jak zrestartować program ? ( wydaje mi się że była instrukcja powodująca wyzerowanie wszystkich zmiennych , i wyczyszczenie lub ponowne przeładowanie formy - chodzi mi o to aby np. po naciśnięciu przycisku program startował jakby był od nowa odpalony.
0

Uściślając nie chodzi mi o ponowne odpalenie VB tylko programu który napisałem

0

Cały proces ma zostać zresetowany (czyli wyłączony i włączony), czy tylko pewna część jego funkcjonalności?

0

Cały.- to było coś jak (cls . clr) ale cls tylko czyści formę a clr nie ma ;(

0

Marcin.Miga >>> gdyby tak jeszcze ten link działał ;(

0

U mnie jest komunikat ta witryna jest nieosiągalna ;( . ( nie bardzo rozumiem czy nie można podać prostej odpowiedzi tak ( taka ) /nie ( nie ma czegoś takiego ) jak się już odpisuje na pytanie . ?

0

Nie ma prostej odpowiedzi na to pytanie.
Zależy co dokłądnie chcez zrobic, jak masz zdefiniowany projekt (czy uruchmiasz Form1 - domyślnie, czy masz jakąś procedurę startową).
Jeśli byś miał procedurę, to być może wystarczy zwykłe Unload (albo Me albo inna forma) i załadowanie jej na nowo.
A jeślistartujesz z Form, to wtedy musisz skorzystać z API i przykładów podanych na stronie, którą już wcześniej linkowałem. Bo to jeszcze zalezy, czy sprawdzasz .PrevInstance, czy nie... jaki masz Caption... Trochę kodu jest, a lektura ciekawa.

0

Marcin.Miga >>> dzięki za wyjaśnienie ;)

Prosty programik , jedna forma na niej kilka textbox-ów , wprowadzam ok 10 zmiennych łańcuchowych i zapisuję record do pliku po czym chce to powtórzyć od nowa ( czyli wyzerować wszystkie zmienne łańcuchowe ). Oczywiście mogę każda z nich wyzerować ręcznie ( bo mam ich tylko 10 ;) ) ale co gdyby było ich 1000 ? nie ma bardziej eleganckiej metody ? . Z tego co piszesz wynika że najprostsze byłoby Unload i ponowny Load dobrze zrozumiałem ?

0

W sumie tak. Ale nie pamiętam czy uda ci się Load - z 10 lat w VB nie pisałem.
Moze osadz to sobie w jakimś kontenerze i wtedy mógłbyś dla child - controls w pętli wyczyścić. W sumie 3 linijki

0

Marcin.Miga >>> Za trudne dla mnie ( mam nadzieję że na razie ) - wyczyściłem ręcznie.

Pytanie czy można wykorzystać otrzymanie przez kontrolkę Focusa jako zdarzenie sterujące ? ( a jeśli można to jak to zrobić ) ?
( np. po otrzymaniu Focusa przez textbox-a ma się wykonać fragment programu - innymi słowy jak odczytać czy dana kontrolka ma ustawiony focus czy nie ?

0

A czemu piszesz w VB6? Chyba z 10 lat nie wspierany. Teraz się pisze w VB.Net.
A zdarzenie _OnFocus powinno być...

0

Syn też mnie namawia ( bo mógłby mi pomagać ) ale VB.NET -a musiałbym się uczyć od nowa a VB6 jeszcze trochę pamiętam ;) ( niestety nie ma zdarzenie OnFocus w mojej wersji )

0

Tam nie ma ;) https://msdn.microsoft.com/en-us/library/aa445483(v=vs.60).aspx

Przesiadka na vb.net nie jest specjalnie trudna. Piszę się przyjemniej i sam Visual Studio to zdecydowanie fajniejsze IDE. Sprawdź a sam się zdziwisz, jak wiedza z vb6 pozwoli Ci pisać w .net.

0

Panczo >>> faktycznie ;) - dzięki

0

Fragment kodu:

        For a = 1 To 300                                                                                 
           Picture1.Height = Picture1.Height + zmH
           Picture1.Width = Picture1.Width + zmW
           Picture1.Left = Picture1.Left + zmL
           Picture1.Top = Picture1.Top + zmT
           Picture1.ZOrder                                                                               
        Next a

Mam tych picturebox-ów kilkadziesiąt od picturebox1 do picturebox60 jak zrobić aby ta pętla mogła być wywołana przez stały fragment kodu ( to się chyba nazywa procedura - chodzi mi o oddzielny SUB ) przed wejściem w którego podaję tylko raz numer picturebox-a ? innymi słowy jak powinien wyglądać ten fragment kodu aby aby działał dla każdego podanego numeru kontrolki ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1