Grela Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Do rzeczy, pomyślałem że może dogadam się z panem i napisze w GML. Więc czy przy pomocy get_string da rady się napisać kalkulator? Chodzi mi taki najprostrzy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 get_integer da się. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 A ta funkcja get_integer do czego służy, do tego samego co get_string? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 1. get_string() pobiera ciąg znaków, aby zamienić ten ciąg znaków na liczbę, używa się funkcji real(str). 2. Zamiast get_string() można użyć get_integer() ( Pobiera tylko liczby ), w tem aby zamienić liczbę na ciąg znaków to analogicznie co do 1, użyć string(val) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Czyli to można tak zrobić np. jak chce dodawanie to zdefiniuje x=get_string('Podaj skladnik1',"") y=get_string('Podaj skladnik2',"") a potem tylko narysować text i w niej umieścić te zmienne no nie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 nie dodasz stingów do siebie, a przynajmniej nie uzyskasz oczekiwanego rezultatu. mówię Ci użyj get_integer.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 A w wypadku get_integer moge zrobić tak jak get_string('bblalala',""); hmm? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Helpa i gma ci ukradli? Biedactwo. Tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Frakus Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 GML suma=get_integer('Składnik1',0)+get_integer('Składnik2',0) a potem w draw draw_text(x,y,suma) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Dzięki za kod ale muszę program samodzielnie napisać więc wiesz(mam na myśli kod, że nie żywcem ściągnięty) Ale szczerze Frakus w głowie miałem podobny kod do tego jaki ty napisałeś :). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Frakus Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 To powodzenia Podpowiem ci jeszcze, że ożywając get_ warto użyć GML message_background(back) message_button(spr) dzięki temu program będzie lepiej się prezentował w pierwszym ustalasz tło wiadomości, a w 2 sprita guzika z tym że musi to być 3-spritowa animacja Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Wiem o tym sam właśnie chcę za pomocą tego zrobić tak żeby to wyglądało w stylu okienka Windowsowego :). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 A to nie lepiej użyć MessageBox z WinAPI? Bez męczenia się w obrazki, tylko biblioteka z wyświetlaniem okienka ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Tylko, że w WINAPI jestem zielony ale no cóż ściągnę i przestudiuje :P. OFFTOP: co do sygny Bedi potwierdzam! :D Dragonforce najlepszy! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 14 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 14 Kwietnia 2010 Jezu, najgorszy noob jakiego widziałem. Pytasz się o coś na dodatkową ocenę, chcesz to pisać w gmlu i do tego sobie nie radzisz z najprostszym kalkulatorem.. ŻĄŁ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 nie dodasz stingów do siebie, a przynajmniej nie uzyskasz oczekiwanego rezultatu. mówię Ci użyj get_integer.. Dodasz rade jeśli wiesz jak, i będziesz mógł wpisać nawet liczbę ułamkową. value1=get_string('x','0') value2=get_string('y','0') //Miejsce na kod filtra execute_string('value1='+value1) execute_string('value2='+value2) wyn=value1+value2 Niestety sposób wymaga dodania filtra przed wpisywaniem liter. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 GML (number) for( i = 1; i <= string_length( argument0 ); i += 1 ) { char = ord( string_char_at( argument0, i ) ); if( ( char < 48 || char > 57 ) && char != 46 ) { if( i == 1 ) return 0; else return real( string_copy( argument0, 0, i - 1 ) ); } } return real( argument0 ); GML show_message( string( number( get_string( 'Podaj liczbe:', '' ) ) ) ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Nie lepiej string_digits()? W przypadku złego znaku go zignoruje zamiast zwracać 0. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Jezu, najgorszy noob jakiego widziałem. Pytasz się o coś na dodatkową ocenę, chcesz to pisać w gmlu i do tego sobie nie radzisz z najprostszym kalkulatorem.. ŻĄŁ I Ty się dziwisz "dlaczego ban?" i to jest właśnie powód. Jak nic nie wnosisz do tematu to się nie wypowiadaj. Nie chcę kodu, napiszę to po swojemu, ale dzięki Tymciu za dobre chęci :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 O, właśnie Dawidds, nie pamiętałem jak się nazywa ta funkcja. Nie uwzględnia kropki, ale przyda się do optymalizacji. GML (number) var pos; pos = string_pos( '.', argument0 ); if( pos != 0 ) return real( string_digits( string_copy( argument0, 1, pos - 1 ) ) + '.' + string_digits( string_delete( argument0, 1, pos ) ) ); else return real( string_digits( argument0 ) ); EDIT https://forum.gmclan.org/index.php?s=&s...st&p=299095 Fixed. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 GML (number) for( i = 1; i <= string_length( argument0 ); i += 1 ) { char = ord( string_char_at( argument0, i ) ); if( ( char < 48 || char > 57 ) && char != 46 ) { if( i == 1 ) return 0; else return real( string_copy( argument0, 0, i - 1 ) ); } } return real( argument0 ); GML show_message( string( number( get_string( 'Podaj liczbe:', '' ) ) ) ); Ledko podrasowałem by była bardziej intuicyjna w użyciu :P GML value1=get_float('','0') GML (getfloat) argument3=get_string(argument0,argument1); for( i = 1; i <= string_length( argument3 ); i += 1 ) { char = ord( string_char_at( argument3, i ) ); if( ( char < 48 || char > 57 ) && char != 46 ) { if( i == 1 ) return 0; else return real( string_copy( argument3, 0, i - 1 ) ); } } return real( argument3 ); Nie lepiej string_digits()? W przypadku złego znaku go zignoruje zamiast zwracać 0. W tym i pomija kropkę co w efekcie daje wynik jak z get_integer() Edit : No i za późno napisałem ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Co do Win API, to skąd mogę pobrać to i gdzie mogę znaleźć info jak to użyć w gmlu?(to niestety potrzebuje naprawdę helpa :D) EDIT: Rozumiem, że tablica nie jest konieczna, żeby zrobić taki prosty kalkulator? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Nie, masz zmienne A, B i C. To Twoje inputy, użytkownik ustala ich wartość. Podaje liczbę A, podaje typ działania B, podaje liczbę C, oblicza ABC i zapisuje do A. Później nie musi podawać A, podaje tylko B i C lub wciska "Wyczyść" by rozpocząć proces od podania A. Zasada działania kalkulatora w telefonach SE. EDIT ... w ogóle tak działają kalkulatory proste. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 No tak ale myślę, że rozwiązanie, które podał Frakus(podobne miałem w głowie) to też jest raczej dobre no nie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 O, właśnie Dawidds, nie pamiętałem jak się nazywa ta funkcja. Nie uwzględnia kropki, ale przyda się do optymalizacji.GML (number) var pos; pos = string_pos( '.', argument0 ); if( pos != 0 ) return real( string_digits( string_copy( argument0, 0, pos - 1 ) ) + '.' + string_digits( string_delete( argument0, 0, pos ) ) ); else return real( string_digits( argument0 ) ); ten kod ma gdzieś błąd gdy podaje 0.1 daje wynik 0.01 lub gdy podaje 5.5 daje wynik 5.55 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Szfak. Bo GM liczy początek stringa od 1, a nie od zera... zawsze robię ten błąd. :) GML (number) var pos; pos = string_pos( '.', argument0 ); if( pos != 0 ) return real( string_digits( string_copy( argument0, 1, pos - 1 ) ) + '.' + string_digits( string_delete( argument0, 1, pos ) ) ); else return real( string_digits( argument0 ) ); Od cały problem. Ingen, tak, ale to trochę zbyt łopatologiczne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Dobra, a co z tym Win API pomoże mi ktoś? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 Szfak. Bo GM liczy początek stringa od 1, a nie od zera... GML (number) var pos; pos = string_pos( '.', argument0 ); if( pos != 0 ) return real( string_digits( string_copy( argument0, 1, pos - 1 ) ) + '.' + string_digits( string_delete( argument0, 1, pos ) ) ); else return real( string_digits( argument0 ) ); Od cały problem. Ingen, tak, ale to trochę zbyt łopatologiczne. Nice, choć ja bym mu dodał ten mały element który dodałem do poprzedniego twojego kodu by użycie go było tak proste jak wbudowanej funkcji gm czyli zamiast np. GML value2=number( get_string( 'Podaj liczbe:', '' ) )zamienić na to GML value2=get_float('','0') ------------------------------------------------------- kod skryptu(tymona of course): get_float GML var pos; argument3=get_string(argument0,argument1); pos = string_pos( '.', argument3 ); if( pos != 0 ) return real( string_digits( string_copy( argument3, 1, pos - 1 ) ) + '.' + string_digits( string_delete( argument3, 1, pos ) ) ); else return real( string_digits( argument3 ) ); Dobra, a co z tym Win API pomoże mi ktoś? :) Ja niestety nie znam WinApi :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 14 Kwietnia 2010 Udostępnij Opublikowano 14 Kwietnia 2010 E tam, chyba sobie poradzi, a number() jest bardziej uniwersalne. Dobra, a co z tym Win API pomoże mi ktoś? :)Skoro to ma być winapi to nie łatwiej będzie to napisać w delphi/c#/cpp? Używanie gma po to, aby używać winapi przez bibliotekę do niego jest głupotą :/ Gm upraszcza ci m.in. rysowanie grafiki, ale jak i tak jej nie używasz, to nie łatwiej to od razu napisać w takim c#? Dodawanie zrobić to chyba nie problem, a sobie ui narysujesz bezproblemowo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Grela Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Ale ja chcę tylko message box z WinAPI użyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się