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/