Thief Forum
http://thief-forum.pl/

Programowanie - where to begin? O_o
http://thief-forum.pl/viewtopic.php?f=2&t=4514
Strona 4 z 4

Autor:  Maveral [ 04 kwi 2015 23:46 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Nie mam możliwości tego przetestować, ale dla mnie to by było chyba jakoś tak.
Kod:
textBox4.Text = Math.Round(zmienna_typu_float, 3).ToString();

Albo jeśli w textboxa chcesz wpisać tylko wynik, to wyciągasz zaokrąglenie.
Kod:
zmienna_typu_float = Math.Round(zmienna_typu_float, 3);
textBox4.Text = zmienna_typu_float.ToString();

Autor:  eLPeeS [ 05 kwi 2015 15:00 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Dzięki Panowie. Ostatecznie wziąłem pomysł Mava i po poddaniu go lekkiej modyfikacji "na antka oko" zaczęło działać tak jak miało w założeniu. Co prawda znowu utknąłem w martwym punkcie ale już nie z powodu braku umiejętności do programowania tylko z powodu niedokładnego zaplanowania co ten mój program w zasadzie ma robić żeby było dobrze. Tak to jest jak się programuj ad hoc ;)

Autor:  eLPeeS [ 07 kwi 2015 19:08 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Inne pytanko - dalej pozostajemy w klimatach C# (jakby kto pytał ;)). Co zmienić w ustawieniach obiektu textBox albo w kodzie żeby po ustawieniu kursora w polu textBox program automatyczne zaznaczał całą znajdująca się tam zawartość? Tak żeby od razu można było klepać nową zawartość pola bez konieczności kasowania tego co było tam uprzednio wprowadzone. Mam nadzieję, że kumacie o co mi chodzi ;)

PS Jak wyrażam się nie precyzyjnie i "nieprorgamistycznie' to pamiętajcie, że ja programować nie umiem i się tego już nigdy (no chyba) nie nauczę a moje programy,choć działają (czy może raczej robią to czego od nich oczekuje), napisane są tragicznie i ad hoc ;)

Autor:  Leming [ 07 kwi 2015 20:07 ]
Tytuł:  Re: Programowanie - where to begin? O_o

eLPeeS napisał(a):
Co zmienić w ustawieniach obiektu textBox albo w kodzie żeby po ustawieniu kursora w polu textBox program automatyczne zaznaczał całą znajdująca się tam zawartość? Tak żeby od razu można było klepać nową zawartość pola bez konieczności kasowania tego co było tam uprzednio wprowadzone


W oknie formy zaznaczasz wybrany obiekt "TextBox".
W zakładce "Events" (obok zakładki "Properties" ) znajdujesz metodę "MouseDown" (zrób coś po naciśnięciu przycisku myszy na obiekcie). Klikasz przy jej nazwie.
W kodzie procedury, która się powinna wyświetlić piszesz:
Kod:
TextBox.Text = "";

Działanie. Po kliknięciu przyciskiem myszy na TextBoxa kasujesz poprzedni tekst, kursor jest gotowy do wpisania nowej treści.

EDIT:
Jeśli niekoniecznie chcesz zaznaczać wybrane pola myszą (masz kilka pół i nie chce Ci się klikać na każdym i wolałbyś np. Tab, a nie boisz się, że sobie przypadkiem zepsujesz zapisane pole, zamiast metody "MouseDown" możesz użyć metody "Enter" i wpisać w nią kod:
Kod:
TextBox.Text = "";

Jednakże w tym przypadku jakakolwiek metoda wybrania określonego pola skasuje jego zawartość.

Autor:  eLPeeS [ 07 kwi 2015 20:18 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Ok. Dzięki. W sumie o to chodziło (tzn. chyba już wiem gdzie grzebać). Ale nie do końca bo i tak nie działa ;) Głównie dlatego, że nie chodzi o automatyczne kasowanie tego co jest wpisane, ale tylko o zaznaczenie (coś jak w pasku adresu przeglądarki). Poza tym tam na sztywno jest wpisana wartość domyślna przez co wykasować się tego nie da - program jest tak zrobiony że z automatu tam (tj. w pole textBoxa) wklepuje "tą jedna" podstawową wartość. Jakieś inne pomysły? ;)

EDIT
Dobra już rozkminiłem do końca. Trzeba było w w kodzie procedury dla MouseDown wklepać:
Kod:
textBox.SelectAll();
A ja się głupi męczyłem. Dzięki Leming! Na następnym zlocie złodziei stawiam dobre piwo (czyli pewnie nigdy - eLPeeS zaciera ręce i liczy kasę w kiermanie a jego pejsy falują na wietrze) ;)

Autor:  Leming [ 07 kwi 2015 20:35 ]
Tytuł:  Re: Programowanie - where to begin? O_o

eLPeeS napisał(a):
Głównie dlatego, że nie chodzi o automatyczne kasowanie tego co jest wpisane, ale tylko o zaznaczenie (coś jak w pasku adresu przeglądarki).

W procedurze wybranej metody dopisz:
Kod:
TextBox.SelectAll();

Będzie podświetlało cały tekst jaki tam był wcześniej.

EDIT:
Oj Ty taki i owaki. Zdążyłeś edytować zanim wysłałem posta.
A już oczami wyobraźni widziałem jedno z tych piw, których degustację opisujesz czasami w sąsiednim temacie. ;)

Autor:  eLPeeS [ 20 kwi 2015 19:53 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Jadymy dalej z C#. Można jakoś ustawić parametry/właściwości zmiennej typu float żeby po jej wyświetleniu się w np. richTextBoxie miała format X.XX, tj. z zachowaniem 2 miejsc po przecinku i by taki format był wyświetlany nawet w przypadku gdy po przecinku mamy same zera (chodzi o wyświetlenie kwoty pieniężnej). Oczywiście mógłbym zamienić zmienne float na string i ustawić format tejże wartości bo to umiem (zmienna_float.ToString("0.00")) no ale na około iść... nie tędy droga ;) Da się jakoś prościej?

Autor:  Maveral [ 20 kwi 2015 21:42 ]
Tytuł:  Re: Programowanie - where to begin? O_o

To czego szukasz, to odpowiedni tzw. "format specifier". W tym wypadku spójrz tutaj - Twój aktualny przypadek rozwiąże "The Currency ("C") Format Specifier".
Kod:
zmienna_float = 235.00000;
richTextBox.text = zmienna_float.ToString("C2");

Voila! ;)

Autor:  eLPeeS [ 21 kwi 2015 18:01 ]
Tytuł:  Re: Programowanie - where to begin? O_o

No nie do końca Viola bo to co proponujesz to z tego co widzę w zasadzie to samo co napisałem powyżej tylko inaczej. Chodzi o to by zmiennej float nie zamieniać na string jak w twoim przykładzie. Skoro richTextBox radzi sobie z wyświetlaniem wartości float to po co to komplikować i dodatkowo je konwertować? ;) No i u mnie richtextBox wyświetla tekst który jest zlepkiem różnych zmiennych (zmienna1 + zmienna2 + zmienna 3 z czego niektóre to float a niektóre to string). Zatem też nie mogę tak po prostu zadeklarować że richTxtBox.text = jedna_zmienna.

Autor:  Leming [ 21 kwi 2015 19:22 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Skorzystaj z zewnętrznej procedury.

Przed funkcjami twojego programu stwórz takie coś:
Kod:
// "Zmienna" typu float jest parametrem
// i nie przyjmuje żadnych konkretnych wartości w tym momencie
String Zf( float Zmienna )
{
    return Zmienna.ToString("0.00");
}

Funkcja przyjmuje jako parametr liczbę zmiennoprzecinkową, odpowiednio ją konwertuje i zwraca w postaci stringa gotowego do wyświetlenia.

Teraz w dowolnym miejscu programu piszesz np:
Kod:
textBox2.Text = Zf( zmienna_float );

Nie musisz od teraz za każdym razem pisać formuły na konwersję typów. Zadeklarowana funkcja "Zf( parametr )" skonwertuje to za Ciebie.

EDIT:
Możesz oczywiście sklejać np. w taki sposób:
Kod:
textBox2.Text = Zf( zmienna_float + inna_zmienna_float) + jakis_tekst;


EDIT:
Cytuj:
Można jakoś ustawić parametry/właściwości zmiennej typu float...
Nie można. Zmienna to zmienna, marne kilka bajtów pamięci RAM bez żadnych funkcji dodatkowych. Zmienna zmiennoprzecinkowa ZAWSZE będzie liczona i wyświetlana (matematycznie) do tylu cyfr znaczących lub miejsc po przecinku na ile pozwoli jej typ. To, że my (jej wizualizację) konwertujemy i wyświetlamy do np. 2 miejsc wcale nie sprawi, że zmienna będzie zajmować mniej miejsca w pamięci, lub że obliczenia będą szybsze.
Zmienna to nie np. "przycisk", który jest "oblepiony dookoła" mnóstwem parametrów i funkcjami go obsługującymi.

EDIT:
Cytuj:
Skoro richTextBox radzi sobie z wyświetlaniem wartości float to po co to komplikować i dodatkowo je konwertować?
Tak Ci się tylko wydaje, że sobie radzi z wyświetlaniem typu float. :) Po prostu, o ile nie zaczniesz żonglować różnymi typami wewnątrz pola, to wyniki skonwertują się same na typ string, tyle że tego nie widzisz w swoim kodzie programu (takie ułatwienie od kompilatora: "o! widzę liczbę w polu tekstowym. Ciekawe co ona tu robi? Pewnie chce, żeby ją skonwertować na typ tekstowy i wyświetlić". :) ). Gdybyś podejrzał co się dzieje w procesorze w trakcie wyświetlenia, to byś zobaczył, że jednak procedura konwersji typów występuje. :).

Autor:  Maveral [ 21 kwi 2015 21:18 ]
Tytuł:  Re: Programowanie - where to begin? O_o

eLPeeS, chcesz zrobić niby "nie naokoło", a nieświadomie zrobisz właśnie "naokoło" z powodu, o którym wspomniał Leming ;) Zmienne pakowane do textBox'a są i tak "po maską" zamieniane na String, więc bez sensu jest próba uniknięcia tej zamiany, bo ona i tak nastąpi. To co ty chcesz osiągnąć, czyli upierdolenie we float-cie kilku liczb po przecinku do dwóch, można uzyskać tylko za pomocą zaokrąglenia, ale nie jest to niestety rozwiązanie, które by cię satysfakcjonowało.
Kod:
Math.Round(zmienna_float, 2, MidpointRounding.ToEven)

W przypadku wartości pieniężnych się nie sprawdzi, bo zmienną o wartości "1.0014" pokaże ci jako "1", a nie tak jak chcesz "1.00".

Nie bój się tych zamian na String. Twórcy C# po coś wprowadzili np. właśnie taki "The Currency ("C") Format Specifier" w Stringu, a nie we Float, nie sądzisz? I nie sądzę, że nie wiedzieli co robią ;)

Autor:  eLPeeS [ 22 kwi 2015 06:42 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Być może dłubię na około. No ale jak wspominałem wcześniej strach się bać mojego kodu i metod kodowania ;) Z mojego punktu widzenia mój sposób jest szybszy bo już teraz w richTextBoxie wyświetlam masą floatów których nie konwertowałem na stringi (czuje się jak byśmy gadali o gaciach ;)) a konieczność ich konwersji to dla mnie masa klepania. Niewiele więcej niż przy mojej wyimaginowanej metodzie ale więcej. Tak czy siak pobawiłem się i w końcu robi to co chciałem. A że twórcy C# wiedzieli co robią to być może też prawda, ale ja z natury nikomu nie ufam ;)

Autor:  timon [ 22 kwi 2015 10:49 ]
Tytuł:  Re: Programowanie - where to begin? O_o

eLPeeS napisał(a):
richTextBoxie wyświetlam masą floatów których nie konwertowałem na stringi

A nie boisz się błędów zaokrągleń? Jak się domyślam, raczej nie są to obliczenia inżynierskie a raczej pieniężne. Więc 1000 operacji po 1,00 zł to nie to samo co 1000 po 1,001 i dopiero zaokrąglone.

Autor:  eLPeeS [ 22 kwi 2015 11:45 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Nie boje z prostego powodu. Nie przewiduje operacji typu 1000 x 1,001 bo takich nie będzie. Jak się kwoty bazowe do programu wprowadza dobrze to będzie ok. W jednym miejscu gdzie to było konieczne program zaokrągla odpowiednio wcześnie wartości aby właśnie nie było takich cyrków i dalsze działania były prowadzone w oparciu o zmienne X.XX000000000 itp.. Problemem było jedynie to że jak się prowadziło w odpowiednim polu (których kilka jest) wartość np. "20" to potem w richtextBoxie też pokazywało jedynie "20" a powinno "20.00" (uproszczenie dla leniwych użytkowników) ew. jak się wklepało "20.10" pokazywało "20.1". Dzięki za troskę ale co jak co ale piniondze to ja liczę dobrze. No chyba, że się pomylę ;)

Autor:  eLPeeS [ 12 lut 2018 13:31 ]
Tytuł:  Re: Programowanie - where to begin? O_o

No i nadszedł znowu ten moment w życiu, że muszę (czy raczej chcę celem usprawnienia pracy) podłubać i wydłubać sobie do roboty mały programik. Niestety mój laptop z racji wieku i swoich parametrów słabo współpracuje z Visual Studio (muli się niemożebnie). Stąd moje pytanie: jest jakiś inny "lżejszy" kombajn do programowania w C#? Można jakoś VS wykastrować żeby przyspieszył? Ewentualnie zna ktoś równie prosty (pojęcie względne - dla mnie prosty ;)) język programowania obiektowego. Ja buduje trywialne konstrukcje w oparciu wczytywanie wprowadzonych danych ich przetwarzanie głownie poprzez wszelkie IFy i proste działania matematyczne i wypluwanie gotowych tekstów - rodem z lekcji informatyki w liceum. Ktoś coś? :)

Autor:  Maveral [ 12 lut 2018 13:58 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Przychodzi mi do głowy jedynie C++ Builder, ale stricte do C#, to nie kojarzę. Alternetywą jest jeszcze Java, w której też sobie aplikacje okienkowe dość łatwo możesz zrobić, aczkolwiek C# chyba jest prostszy.

Autor:  Juliusz [ 12 lut 2018 14:31 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Do C# (i nie tylko) polecam Visual Studio Code - jest to okrojona wersja VS, w której instalujesz support konkretnych języków poprzez pluginy:

https://code.visualstudio.com/docs/languages/csharp

Na codzień korzystam z niego do programowania w pythonie. Nie wiem, jakie ilości danych przetwarzasz, ale może Python właśnie by Tobie wystarczył. Jest stosunkowo prosty, jeśli chodzi o składnię. Jest to język interpretowany, a nie kompilowany, a więc łatwiejszy w użyciu choć wolniejszy.
Jeśli byś potrzebował też GUI, to polecam wówczas PySide - czyli Qt dla Pythona.

Autor:  eLPeeS [ 13 lut 2018 07:59 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Dzięki Panowie! Będę musiał podłubać i zobaczyć co się nada. Bo najbliżej mi do C# ale z drugiej strony apka musi mieć przyjazny GUI dla mnie i umożliwiać łatwo stworzyć GUI dla odbiorcy bo nie robię jej tylko dla siebie ale też będą z niej korzystać małpiszony w pracy ;) Tak, że musi być ładnie schludnie, kolorowo i w ogóle.

Autor:  Juliusz [ 13 lut 2018 12:03 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Zatem C# i Windows forms.
Jeśli nie miałeś z tym do czynienia, to poszperaj tutoriale - trzeba się trochę wgryźć w temat, żeby coś sensownego uzyskać.

Visual Studio (ten, którego nie chcesz używać) ma graficzny edytor do budowania okienek z kontrolkami itp...

Autor:  eLPeeS [ 14 lut 2018 12:43 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Ja bym bardzo chciał używać Visual Studio, ale mój lapek odmawia współpracy ;)

Autor:  Maveral [ 14 lut 2018 14:31 ]
Tytuł:  Re: Programowanie - where to begin? O_o

Spróbuj tego - KLIK.

Nie sprawdzałem, po prostu wklepałem w googla "visual studio ide in cloud" ;)

Strona 4 z 4 Strefa czasowa: UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/