Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Tu wcale proszę nie zaglądać
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Tu wcale proszę nie zaglądać

Bo pytanko jest banalne, aż mi głupio.
Mam na formie 1 buttona, 1 texa i 2 labele.
Dodaję sobie różne wartości wpisywane w texa, wynik się ładniutko zmienia w 1 z labeli. A mnie chodzi o to, żeby w tym drugim labelu pokazywały się dodawane wartości przedzielone kreską pionową - to jest znaczkiem Chr(124). Ma to na celu kontrolowanie, jakie wartości już dodałem.
PRZYKŁAD: dodałem 2; 3,11; 5,23
W labelu wynikowym widzę 10,44  a w tym drugim
powinno być; 2/3,11/5,23 - oczywiście poprzedzielane kreską pionową - ukośniki je tutaj zastępują, bo nie wiem jak w poście wpisać kreskę pionową. Szczerze mówiąc, ukośniki też mogły by być. Za pomoc dziękuję.

01-02-2005 15:17
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Może poprostu dodawać do Label2.Caption to co wpiszesz w TextBox

np.

Label1.Caption = Label1.Caption + "/" + Text1.Text

To dodawanie jest w tym przypadku traktowane jako łączenie dwóch stringów. Nie wiem czy to działa ale powinno - przynajmniej cię naprowadziłem (tak myślę hehe )

Pozdrawiam

[Post edytowany dnia 01-02-2005 15:27 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

01-02-2005 15:22
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003

ja do łączenia stringów używam &
np.
Label2.Caption = Label1.Caption & "/" & Text1.Text


_____________________________________________
TLHW Clan member

01-02-2005 17:15
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Już sobie poradziłem

Dzięki DJK ale sobie już poradziłem. Po prostu źle dopasowywałem zmienne.


Option Explicit
Dim a, wynik As Single
Dim b, ile As String

Private Sub cmdPa_Click()
a = txtPss
wynik = wynik + a
lblPas.Caption = wynik
b = a & Chr(47)
ile = ile & b
Label2.Caption = ile
txtPss = ""
txtPss.SetFocus
End Sub


Już działa OK

01-02-2005 17:24
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

też można użyć & - jak kto woli z tym że gdy używasz + to w razie niepoprawnych typów wywali błąd i wiesz że coś jest nie tak


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

01-02-2005 17:33
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
mam jeszcze jeden mały problemik

Wszystko działa bez zarzutu, ale....
Czy jest możliwe, aby w etykiecie nie rozbijało mi wpisu?
Wiadomo,że etykiecie ustawia się jakąś wielkość. Gdy pierwszy rząd wpisów dochodzi do końca wartości Width etykiety, to zdarza się, że wpis zostaje rozbity;
Przykład; 3,66/2,54/1,25/6,33/8,99/6
          ,66/5,11 itd.....
Co z tym począć?
Od razu powiem, że AutoSize ustawione na true nie pomaga, a pogarsza.

[Post edytowany dnia 01-02-2005 17:41 przez Tamgo]

01-02-2005 17:40
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Hmmm - nie bardzo rozumiem - przecież i tak wcześniej czy później musiałbyś zawinąć wiersz bo ci się nie zmieści linia na formie (albo na ekranie)


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

01-02-2005 19:06
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

DJK masz absolutnie rację. Tylko, czy zauważyłeś, że przyzwoity program nie "rwie" w połowie wyrazów czy wyrażeń? Przenosi je do kolejnego rzędu w całości. Przyjrzyj się temu przykładowi, pokazałem, że wyrażenie '6,66' zostało "porwane" na dwa kawałki. I o to w tym chodzi. Jak "zmusić" program do zawijania całych wyrazów czy wyrażeń?
Jeśli w edytorze nie mieści się w linii wyraz np: "program", to nie przenosi do następnego wiersza ani "ogram", ani "rogram" tylko całe słowo "program" - mam rację?
pozdrawiam

[Post edytowany dnia 01-02-2005 20:00 przez Tamgo]

01-02-2005 19:55
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Możesz zrobić coś takiego:

Powiedzmy, że w jednej linii może być maksymalnie 20 znaków. Za każdym razem gdy do Label1.Caption dodajesz nowy wynik np. "6,66" , sprawdzasz czy

Len(Label1.Caption) + Len("6,66" nie jest większa od 20 - jeżeli jest to

Label1.Caption = Label1.Caption + Chr$(13) + "6,66"

Oczywiście warunek 20 musisz zwiększac dwukrotnie + 1

Nie wiem jak to zadziała bo pisałem to bez sprawdzania ale myślę ze powinno dać efekty.

Dim X As Integer

Private Sub Command1_Click()

If Len(Label1.Caption + Text1.Text) > X Then
    Label1.Caption = Label1.Caption + Chr$(13) + Text1.Text
    X = X + 21
Else
    Label1.Caption = Label1.Caption & Text1.Text
End If
End Sub

Private Sub Form_Load()
X = 20
End Sub


[Post edytowany dnia 01-02-2005 22:32 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

01-02-2005 22:22
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
anonim




Typ: Nie zarejestrowany

Tamgo: Jeśli pytasz o coś an forum to dawaj jakąś sensowną nazwe tematowi a nie jakieś "Tu wcale proszę nie zaglądać" bo potem ktoś inny może mieć podobny proble i wątpie żeby znalazł odpowiedz, albo niech jakiś moderator zmieni nazwe...

01-02-2005 23:48
  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Moim zdaniem

Dla DJK
Dzięki, przećwiczę twoje rozwiązanie, ja również mam nadzieję, że zadziała - to wynika z pierwszego "rzutu okiem" na twój zapis.

Dla anonima
Zapewne masz wiele racji, jednak temat podany na "talerzu" powoduje niekiedy - podkreślam - niekiedy, że niektórzy go albo -  przepraszam za wyrażenie i bez urazy - zignorują, albo nie chcą się nim zająć. Zaś intrygujący zawsze wywołuje tę nutę ciekawości, co powoduje, że jednak "tam ktoś zajrzy". I proszę, nie bądź aż tak bardzo zasadniczy, nie irytuj się, życie i tak bywa nudne jak przysłowiowe "flaki z olejem", więc odrobina fantazji przynajmniej w pierwszej odsłonie czyni je trochę barwniejszym. Przyjmuję jednak krytykę i obiecuję, że "dla dobra" zmienię ten styl, który - w mojej ocenie - mimo wszystko nie szkodzi, na bardziej przystępny.
Pozdrawiam Tamgo

[Post edytowany dnia 02-02-2005 10:55 przez Tamgo]

02-02-2005 10:48
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

anonim: ale za to przyciąga o wiele lepiej wzrok . A te tematy i tak znikają po 1, 2 dniach.

DJK: ale mimo wszystko lepiej jest używać & - wtedy łatwiej zrozumieć kod (bo wiadomo, że łączymy Stringi, nie zmienne liczbowe). Poza tym użycie + może wręcz powodować nieprawidłowe działanie programu, gdy chcesz połączyć ze sobą dwie zmienne liczbowe, a przez użycie "+" zostaną one dodane. O tym, że spowalnia to program już nie wspomnę .


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

02-02-2005 10:54
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Kak kto woli

A co do połączenia dwóch zmiennych liczbowych:

Dim A,B As Integer

Każdy by pewnie napisał

Text1.Text = A & B

Tylko że wielu zapomina o funkcjach konwertujących np. CStr

Według mnie prawdłowy zapis powinien być taki

Text1.Text = CStr(A) + CStr(B) lub
Text1.Text = CStr(A) & CStr(B)


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

02-02-2005 12:19
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Dla mnie najlepszy zapis to:
Text1.Text = CStr(A) & CStr(B)
lub
Text1.Text = Str(A) & Str(B)

Ale to kwestia gustu...


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

02-02-2005 12:56
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dlatego napisałem jak kto woli


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

02-02-2005 13:27
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Tomaszu, a dlaczego w Twoim łańcuchu wyników wpisywanych do kontrolki Label nie może być spacji pomiędzy kolejnymi wynikami (przed lub po ukośniku) np.:

3,66/ 2,54/ 1,25/ 6,33/ 8,99
albo
3,66 /2,54 /1,25 /6,33 /8,99

wówczas "nie odrywałoby" Ci cyfr przy przenoszeniu do nowej linii ?


_____________________________________________
Karolina

02-02-2005 21:28
Pokaż profil karolinavb  Wyślij email do karolinavb   
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004

Karolino, nie ma to właściwie żadnego znaczenia. Wynika tak z faktu, że dane są liczbami całkowitymi i różnej długości ułamkami dziesiętnymi, z jednym lub dwoma miejscami po przecinku. Użytkownik wpisuje je na podstawie projektu architektonicznego, więc w każdym przypadku ich ilość i wielkość jest inna. Zatem ilość znaków w jednym wierszu jest losowa - nie do jednoznacznego określenia. Wyznaczona jest tylko max ilość znaków w wierszu. Określiłem ją (właściwość Width) w jednym wierszu na 50 znaków łącznie ze spacjami. To wystarcza na wpis średnio 10 wartości w wierszu.

Raz może to być:
12,33/2,33/1,9/2,0/9,5/16,22/5,44/7,22/9,11/1,55/  czyli 49 znaków

a innym razem:
1,77/8,22/5,1/4,5/7,52/4,65/4,33/5,55/9,12/1,5/ będzie 47 znaków
i w tym wypadku jest krytycznie, bo wpisując np: 5,11/ - czyli 5 znaków, jeśli nie będzie ograniczenia ostatniego wpisu w wierszu, dopisze mi
"5,1", a drugą część tego wyrażenia "1/" przeniesie do drugiego wiersza.
Popatrz post "Jeszcze raz ten nieszczęsny wpis w labela".

Kurde, gdybym tak wiedział troszkę więcej......
Każda podpowiedź jest dla mnie cenna, z góry więc dziękuję każdemu za fatygę.

[Post edytowany dnia 03-02-2005 23:28 przez Tamgo]

03-02-2005 09:56
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
Wszystkich odpowiedzi: 16 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1