mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Problem z enterem https://forum.mix-soft.pl/viewtopic.php?f=15&t=5729 |
Strona 1 z 1 |
Autor: | Pedro [ 2014-04-15, 12:18 ] |
Tytuł: | Problem z enterem |
Czy da się ustawić żeby program ignorował wciśnięcie klawisza 'enter' albo żeby można było ustawić co on ma robić? Albo jak inaczej rozwiązać taką sytuację, że po wciśnięciu entera program zamiast wczytywać wartość zmiennej z okienka edit wczytuje nazwę buttona z wywołanego okna ? |
Autor: | rafal [ 2014-04-15, 12:24 ] |
Tytuł: | Re: Problem z enterem |
Nie rozumiem. Masz jakiś przykładowy kawałek kodu? Piszesz o okienku w AMBasic za pomocą polecenia FORM? |
Autor: | Pedro [ 2014-04-15, 13:30 ] |
Tytuł: | Re: Problem z enterem |
Kod: int sub wyswietl(string ean) int indeks = 1 int indeks1 = 1 Int Tab(5) = 50,200,100+0x2000,100+0x2000,100+0x2000 Int Tab1(5) = 50,200,100+0x2000,100+0x2000,100+0x2000 Form "", 625, 500 Text "", 20, 20, 200, 24 RecList "Lp|Nazwa|ilość|j.m|EAN", Tbl, Indeks, 20, 40, 580, 180, Tab Text "Spakowane:", 20, 220, 200, 24 RecList "Lp|Nazwa|ilość|j.m|EAN", Tbl1, Indeks1, 20, 240, 580, 180, Tab1 Button "&Zakończ", 460, 430, 100, 24, wyjscie() id2 = Edit "EAN", ean, 60, 430, 100, 24 Button "&Wykonaj", 320, 430, 100, 24, koniec1(ean) ko1 = ExecForm OnCommand endsub Po wciśnięciu klawisza enter wybiera pierwszego buttona od góry, ale zamiast ładować zmiennej "ean" wklepuje nazwę drugiego buttona z wywołanego okienka, który to jest zapisany jako "anuluj", a jeśli chce tę zmienną wywołać do sprawdzenia przykładowo w funkcji message pojawia się błąd "Brak definicji formatki" Jeszcze dodam że po wywołaniu buttona ręcznie wszystko działa jak należy. |
Autor: | rafal [ 2014-04-15, 13:37 ] |
Tytuł: | Re: Problem z enterem |
A masz coś co da się uruchomić? |
Autor: | Pedro [ 2014-04-15, 14:07 ] |
Tytuł: | Re: Problem z enterem |
edit: Spróbuje wyciągnąć to co najważniejsze |
Autor: | rafal [ 2014-04-15, 14:49 ] |
Tytuł: | Re: Problem z enterem |
Chciałbym pomóc ale gubię się w tym kodzie. |
Autor: | Pedro [ 2014-04-15, 15:16 ] |
Tytuł: | Re: Problem z enterem |
//a jakoś tak: Kod: int id2 string zmienna Int Sub OnCommand(int id, int msg) if id == id2 then Save EndSub int sub buttonwykonaj(string zmienna) Form "zmienna z pola edit lub nowa", 300, 180 Edit "zmienna", zmienna, 60, 50, 100, 24 Button "OK", 44, 100, 100, 24, 3 Button "Anuluj 1", 164, 100, 100, 24, 4 // ten klawisz po wciśnięciu entera jest za pierwszym razem czytany zamiast zmiennej ExecForm buttonwykonaj = 1 endsub form "buttony", 500,150 Button "&wczytaj", 280, 30, 100, 24, buttonwykonaj(zmienna) //działa wciśnięte kursorem lub po pierwszym wywołaniu Button "&Zakończ", 280, 70, 100, 24,-1 id2 = Edit "zmienna do wczytania", zmienna, 160,30, 100, 24 ExecForm OnCommand NoOutPut() |
Autor: | rafal [ 2014-04-15, 15:40 ] |
Tytuł: | Re: Problem z enterem |
To może trochę naprawia sprawę Kod: int id2,ko1,ko2 string zmienna Int Sub OnCommand(int id, int msg) //if id == id2 then Save EndSub int sub buttonwykonaj(string zmienna) zmienna = GetVal(id2) Form "zmienna z pola edit lub nowa", 300, 180 Edit "zmienna", zmienna, 60, 50, 100, 24 Button "OK", 44, 100, 100, 24, 3 Button "Anuluj 1", 164, 100, 100, 24, 4 // ten klawisz po wciśnięciu entera jest za pierwszym razem czytany zamiast zmiennej ko2 = ExecForm buttonwykonaj = 1 endsub int sub wyswietl(string zmienna) form "buttony", 500,150 Button "&wczytaj", 280, 30, 100, 24, buttonwykonaj(zmienna) //działa wciśnięte kursorem lub po pierwszym wywołaniu Button "&Zakończ", 280, 70, 100, 24,-1 id2 = Edit "zmienna do wczytania", zmienna, 160,30, 100, 24 ko1 = ExecForm OnCommand endsub while ko1!=-1 wyswietl(zmienna) //wykonanie programu wend NoOutPut() Ale i tak pisałbym ten kod od początku. zmienna - systępuje dwa razy pod tą samą nazwą globalnie Kod: string zmienna i jako parametr funkcji Kod: int sub wyswietl(string zmienna) wiesz kiedy co jest używane? |
Autor: | Pedro [ 2014-04-15, 15:59 ] |
Tytuł: | Re: Problem z enterem |
Jak zwykle jedna funkcja załatwia wszystko :p wystarczy tyle Kod: int id2 string zmienna int sub buttonwykonaj() zmienna = GetVal(id2) // :* Form "zmienna z pola edit lub nowa", 300, 180 Edit "zmienna", zmienna, 60, 50, 100, 24 Button "OK", 44, 100, 100, 24, 3 Button "Anuluj 1", 164, 100, 100, 24, 4 // ten klawisz po wciśnięciu entera jest za pierwszym razem czytany zamiast zmiennej ExecForm buttonwykonaj = 1 endsub form "buttony", 500,150 Button "&wczytaj", 280, 30, 100, 24, buttonwykonaj() //działa wciśnięte kursorem lub po pierwszym wywołaniu Button "&Zakończ", 280, 70, 100, 24,-1 id2 = Edit "zmienna do wczytania", zmienna, 160,30, 100, 24 ExecForm NoOutPut() Dzięki :) |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |