Zaloguj | Zarejestruj








Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 96 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4
Autor Wiadomość
PostNapisane: 04 kwi 2015 23:46 
Bruce Dickinson
Avatar użytkownika

Dołączył(a): 11 kwi 2003 11:07
Posty: 4535
Lokalizacja: Radlin
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();

_________________
SZKICE UMYSŁU - reaktywacja
Wherever You Go, There You Are...
Ciemność jest naszym sprzymierzeńcem!


Góra
 Zobacz profil  
 
PostNapisane: 05 kwi 2015 15:00 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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 ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 07 kwi 2015 19:08 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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 ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 07 kwi 2015 20:07 
Złodziej
Avatar użytkownika

Dołączył(a): 17 sty 2005 10:16
Posty: 2530
Lokalizacja: Statua postępu
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ść.

_________________
Kupię Azjatkę - najlepiej Japonkę (może być używana)

Suma całkowitej ilości Informacji we Wszechświecie jest stała i jest równa 0 (zero)


Ostatnio edytowano 07 kwi 2015 20:42 przez Leming, łącznie edytowano 2 razy

Góra
 Zobacz profil  
 
PostNapisane: 07 kwi 2015 20:18 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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) ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 07 kwi 2015 20:35 
Złodziej
Avatar użytkownika

Dołączył(a): 17 sty 2005 10:16
Posty: 2530
Lokalizacja: Statua postępu
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. ;)

_________________
Kupię Azjatkę - najlepiej Japonkę (może być używana)

Suma całkowitej ilości Informacji we Wszechświecie jest stała i jest równa 0 (zero)


Góra
 Zobacz profil  
 
PostNapisane: 20 kwi 2015 19:53 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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?

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 20 kwi 2015 21:42 
Bruce Dickinson
Avatar użytkownika

Dołączył(a): 11 kwi 2003 11:07
Posty: 4535
Lokalizacja: Radlin
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! ;)

_________________
SZKICE UMYSŁU - reaktywacja
Wherever You Go, There You Are...
Ciemność jest naszym sprzymierzeńcem!


Góra
 Zobacz profil  
 
PostNapisane: 21 kwi 2015 18:01 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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.

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 21 kwi 2015 19:22 
Złodziej
Avatar użytkownika

Dołączył(a): 17 sty 2005 10:16
Posty: 2530
Lokalizacja: Statua postępu
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. :).

_________________
Kupię Azjatkę - najlepiej Japonkę (może być używana)

Suma całkowitej ilości Informacji we Wszechświecie jest stała i jest równa 0 (zero)


Góra
 Zobacz profil  
 
PostNapisane: 21 kwi 2015 21:18 
Bruce Dickinson
Avatar użytkownika

Dołączył(a): 11 kwi 2003 11:07
Posty: 4535
Lokalizacja: Radlin
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ą ;)

_________________
SZKICE UMYSŁU - reaktywacja
Wherever You Go, There You Are...
Ciemność jest naszym sprzymierzeńcem!


Góra
 Zobacz profil  
 
PostNapisane: 22 kwi 2015 06:42 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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 ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 22 kwi 2015 10:49 
Garrett
Avatar użytkownika

Dołączył(a): 12 sie 2002 18:07
Posty: 3704
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.

_________________
Zezwierzęcony, o zdradzieckiej mordzie, umysłowo niestabilny, Thiefmaniak najgorszego sortu, do którego trzeba strzelać. Kanalia. Patologiczny element czyli OBYWATEL.


Góra
 Zobacz profil  
 
PostNapisane: 22 kwi 2015 11:45 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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ę ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 12 lut 2018 13:31 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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ś? :)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 12 lut 2018 13:58 
Bruce Dickinson
Avatar użytkownika

Dołączył(a): 11 kwi 2003 11:07
Posty: 4535
Lokalizacja: Radlin
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.

_________________
SZKICE UMYSŁU - reaktywacja
Wherever You Go, There You Are...
Ciemność jest naszym sprzymierzeńcem!


Góra
 Zobacz profil  
 
PostNapisane: 12 lut 2018 14:31 
Złodziej
Avatar użytkownika

Dołączył(a): 04 sty 2004 11:28
Posty: 2454
Lokalizacja: Poznań (Dublin)
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.

_________________
Portfolio 3D - www.juliuszk.com
Art Blog - juliuszk.blogspot.ie

Tekstury i obiekty dla dromedowców.


Góra
 Zobacz profil  
 
PostNapisane: 13 lut 2018 07:59 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
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.

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 13 lut 2018 12:03 
Złodziej
Avatar użytkownika

Dołączył(a): 04 sty 2004 11:28
Posty: 2454
Lokalizacja: Poznań (Dublin)
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...

_________________
Portfolio 3D - www.juliuszk.com
Art Blog - juliuszk.blogspot.ie

Tekstury i obiekty dla dromedowców.


Góra
 Zobacz profil  
 
PostNapisane: 14 lut 2018 12:43 
Garrett
Avatar użytkownika

Dołączył(a): 21 paź 2004 14:55
Posty: 3759
Ja bym bardzo chciał używać Visual Studio, ale mój lapek odmawia współpracy ;)

_________________
"I'm the best there is at what I do, but what I do best isn't very nice."


Góra
 Zobacz profil  
 
PostNapisane: 14 lut 2018 14:31 
Bruce Dickinson
Avatar użytkownika

Dołączył(a): 11 kwi 2003 11:07
Posty: 4535
Lokalizacja: Radlin
Spróbuj tego - KLIK.

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

_________________
SZKICE UMYSŁU - reaktywacja
Wherever You Go, There You Are...
Ciemność jest naszym sprzymierzeńcem!


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 96 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4

Teraz jest 21 paź 2018 03:30


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
cron