Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Visual C++ - Kontrolka label,kontenery

iwn1 04 Sie 2013 17:04 1803 16
  • #1 04 Sie 2013 17:04
    iwn1
    Poziom 6  

    Muszę napisać aplikację okienkową i napotkałam problem mianowicie - podpowiecie mi w jaki sposób ustawia się kontrolki label, żeby można było przeciągać je po formie? Dałoby się wrzucić je np. do jakiegoś kontenera i zrobić tak, żeby ustawiały się w nim losowo?

    0 16
  • #2 05 Sie 2013 14:19
    Kryspin92
    Poziom 10  

    Nie do końca rozumiem. Chcesz, aby label się pojawiał w losowym miejscu?

    0
  • #3 05 Sie 2013 14:37
    iwn1
    Poziom 6  

    Potrzebuję zrobić rozsypankę z wyrazów. Każdy wyraz to label lub button, które można przesuwać po formie. Czy losowo to w sumie sprawa drugorzędna, bo można "pomieszać" je ręcznie na formie, ale właśnie myślałam też żeby same mieszały się

    0
  • #4 05 Sie 2013 14:59
    wiesniak
    Poziom 31  

    Chcesz je przemieszczać ręcznie na etapie działania aplikacji, czy tylko chodzi Ci o losowe rozmieszczenie podczas uruchomienia (kliknięcia na przycisk, otworzenia formy, obojętnie jakiej akcji w programie)?
    Jeśli chcesz losować położenia, to moim zdaniem musiałbyś wszystkie labele generować z kodu i dodawać je na formę samodzielnie, a nie za pomocą designera.

    0
  • #5 05 Sie 2013 16:09
    Kryspin92
    Poziom 10  

    Mysle ze rozwiazaniem twojego problemu moze byc zdazenie na click ze label zmienia pozycje na pozycje myszki do nastepnego klikniecia

    Dodano po 1 [godziny] 7 [minuty]:

    wiesniak napisał:

    Jeśli chcesz losować położenia, to moim zdaniem musiałbyś wszystkie labele generować z kodu i dodawać je na formę samodzielnie, a nie za pomocą designera.

    błąd :) można przecież stworzyć na designerze wszystkie labele... a by je losowo porozmieszczać można albo stworzyć tablice wskaźników, albo do każdego labela wylosować pozycje w konstruktorze froma :)

    0
  • #6 05 Sie 2013 18:58
    wiesniak
    Poziom 31  

    No tak, nie wyraziłem się dość precyzyjnie. Można predefiniować kontrolki, ale to nas trochę ogranicza, bo zakładamy stałą ilość kontrolek. Skoro autor chce robić rozsypankę słowną, przyjąłem założenie, że będzie miał więcej niż jedno możliwe zdanie do ułożenia, a więc będzie różna ilość labeli.

    0
  • #7 06 Sie 2013 11:26
    iwn1
    Poziom 6  

    Tak dokładnie chodzi o to, że w momencie gdy uruchamiamy aplikację otrzymujemy rozsypankę z wyrazów(labeli) i po poprawnym ułożeniu zdania przechodzimy do następnej rozsypanki. Jednak te losowe ułożenie wyrazów przydałoby się wtedy, gdy chcemy cofnąć np do tej poprzedniej rozsypanki(aby wyrazy miały już inne ułożenie niż poprzednio). No ewentualnie, jeśli to stwarzałoby problem to można ręcznie ułożyć labele i wtedy ich pozycja będzie zawsze taka sama tylko zostałby problem przesuwania labeli po formie przez użytkownika

    Dodano po 21 [minuty]:

    Kryspin92 napisał:
    Mysle ze rozwiazaniem twojego problemu moze byc zdazenie na click ze label zmienia pozycje na pozycje myszki do nastepnego klikniecia


    błąd :) można przecież stworzyć na designerze wszystkie labele... a by je losowo porozmieszczać można albo stworzyć tablice wskaźników, albo do każdego labela wylosować pozycje w konstruktorze froma :)


    I to by mi pomogło. Dopiero zaczynam swoje przygody z Visualem(można powiedzieć,że nawet z programowaniem), więc idę poszukać info o tym zdarzeniu na click.
    A co do drugiego to chyba lepsze byłoby losowanie pozycji w konstruktorze forma?

    0
  • Pomocny post
    #8 06 Sie 2013 15:04
    Kryspin92
    Poziom 10  

    Losowanie oczywiście w konstruktorze :)
    jeśli nie chcesz się przejmować gdzie i jak rozmieszczą się te labele to wystarczy prosty kod:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Taka formułka pozwoli ci wylosować miejsce które będzie się mieściło w naszym Formie a jednocześnie cały label będzie widoczny (a nie pół)

    0
  • #9 07 Sie 2013 14:09
    iwn1
    Poziom 6  

    Kryspin92 napisał:
    Losowanie oczywiście w konstruktorze :)
    jeśli nie chcesz się przejmować gdzie i jak rozmieszczą się te labele to wystarczy prosty kod:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Taka formułka pozwoli ci wylosować miejsce które będzie się mieściło w naszym Formie a jednocześnie cały label będzie widoczny (a nie pół)


    A nie wymaga to jeszcze dodania #include <stdlib> ?

    0
  • #10 07 Sie 2013 14:54
    Kryspin92
    Poziom 10  

    Rzeczywiście musisz dodać bibliotekę ale chyba sa tylko <cstdlib> Dla c++ i <stdlib.h> z c
    Obie zadziałają. Ale jak piszemy w c++ To na całość. :) Dzięki temu oszczędzimy sobie błędów niewiadomo skąd :)

    0
  • #11 08 Sie 2013 11:39
    iwn1
    Poziom 6  

    Hmm..chyba jeszcze trzeba coś zmienić albo dodać bo nie idzie.3 błędy są. Tobie idzie?Czy nie sprawdzałes?

    0
  • #12 09 Sie 2013 00:48
    Kryspin92
    Poziom 10  

    Nie, bo z pamieci pisalem... pokaz jakie bledy i fragment kodu :) jesli nie zmieniales nic, to chyba nie ma srednikow :p

    0
  • #13 09 Sie 2013 11:05
    iwn1
    Poziom 6  

    1>c:\users\iwn\documents\visual studio 2010\projects\akdfd\akdfd\Form1.h(44): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data
    1>c:\users\iwn\documents\visual studio 2010\projects\akdfd\akdfd\Form1.h(45): error C2059: syntax error : '->'

    Dodałam średniki.

    0
  • #14 09 Sie 2013 11:35
    Kryspin92
    Poziom 10  

    Aaaaa niewiem jak to sie stalo :p po label1/label2 jest pojedyncza strzalka :p

    0
  • #15 09 Sie 2013 13:27
    iwn1
    Poziom 6  

    Teraz jest ok, wielkie dzięki ; )
    A takim sposobem nie uda się już wrzucić np labeli do panelu i żeby były tylko w nim losowo rozmieszczane?

    0
  • #16 09 Sie 2013 13:36
    Kryspin92
    Poziom 10  

    Uda ci się tylko że przenoszenie podczas gdy będziesz chciał wynieść z panela label to wraz z jego granicą twój label zniknie a raczej pojawi się na niewidocznej części kontenera. wystarczy wszystkie labele wrzucić do kontenera a w losowaniu każde "this" zamienić na nazwę kontenera/panelu

    0
  • #17 09 Sie 2013 14:52
    iwn1
    Poziom 6  

    Dzięki;] Temat można zamknąć

    0