Prosta wizualizacja w WinForms

Prosta wizualizacja w WinForms
Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

Witajcie,

Piszę program (treningowy), który ma na celu przygotowywać ciężarówkę do załadunku. To znaczy do tej pory zrobiłem formularz wprowadzania ładunków, który współpracuje mi dobrze z bazą danych SQL.
Chciałem teraz wykonać prostą wizualizację. Rozumiem przez to prostokąt, który odpowiada powierzchni ciężarówki i mniejsze prostokąty, które odpowiadają paletom. Chciałbym, żeby użytkownik mógł rozmieścić te palety na tej ciężarówce.
Moje pytanie brzmi, jakbyście się do tego zabrali? Jakieś wskazówki ?

edytowany 1x, ostatnio: somekind
HI
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 5 godzin
  • Postów:1857
0

Wydaje mi się że najprościej będzie użyć do tego DataGridView (z racji regularnych kształtów i ułożenia palet na samochodzie/naczepie). Odpowiednio odsłużysz zdarzenia myszy i kolorowanie i powinno działać.

edytowany 1x, ostatnio: hipekk
fasadin
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
1

http://stackoverflow.com/questions/10871565/how-to-make-winforms-usercontrol-fill-the-size-of-its-container

pobaw sie anchorem i dockiem.
Ja bym to zrobil tak, ze ustawilbym jakis domyslny kontener (ta ciezarowka). Za pomoca klikniecia przycisku mozna stworzyc nowy produkt i go zmniejszac / powiekszac. Gdy sie uda to po prostu przeciagnalbym go na contener zeby "zahaczyl" sie do glownego kontenera.

gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

Po pierwsze to byśmy się zabrali za słownik i sprawdzili co to jest "paletą" by wiedzieć czym odpowiadają te prostokąty ;).

Tak bardziej na serio to na formie umieściłbym kontrolkę "panel" (ciężarówka).
Na kontrolce "panel" umieścił kontrolki "label" z ustawioną właściwością autosize na false i odpowiednim "BackColor".
Reszta to już "mięso" - dodawanie/usuwanie programowe kontrolek, obsługa przemieszczania myszką itp.

Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

Dzięki. Zdziwiła mnie propozycja z DataGridView, który ja akurat wykorzystuje jako tabelę do wyświetlania wszystkich parametrów, danych towaru, który ma być załadowany.
Zaraz biorę się za próby :)

HI
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 5 godzin
  • Postów:1857
0

Powierzchnia ładunkowa to regularna powierzchnia, zakładając że ładujemy jeden typ palet (zazwyczaj Euro), użycie tabeli zwalnia nas z konieczności "pilnowania" rozmiarów pojedynczych kontrolek czy ich równego rozmieszczenia.
Oczywiście to luźna propozycja, a propozycje pozostałych są również użyteczne.

fasadin
i pozniej bedzie, ze jednak dojdzie nowy inny przedmiot do ladowania i Twoje rozwiazanie bedzie albo calkowicie do przepisania, albo bedziesz robic brzydkie naprawy
HI
To fakt, założyłem że ładujemy tylko palety.
gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

screenshot-20161220114618.png

Coś takiego chcesz uzyskać?

Użyte zostały PictureBoxy i Panel.

edytowany 2x, ostatnio: gg
Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

Coś w ten deseń chce uzyskać. U mnie już na starcie będzie kilka rodzajów palet o różnych wymiarach. Również będę chciał dopuścić różne wielkości naczep. Z tym, że to będzie kolejny etap. Chciałbym również by na palecie był jakiś label z informacją co to za towar, aby użytkownik mógł również ustalić kolejność ładowania i widział, która paleta, gdzie się znajduje. W załączniku wersja z excela.

gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

Palety to jakieś standardowe czy dowolność całkowita?

Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

Póki co mam bazę danych z dostępnymi 6 wariantami. W bazie jest jej waga, szerokość, długość no i ID oczywiście. Generalnie ten projekt to taka własna wizja artystyczna, na podstawie danych z pracy. Nie wiem czy na obecnym poziomie mnie nie przerasta, szczególnie ta część "inteligentnego rysowania". Z częścią "biurową" poradziłem sobie szybko (screen z tej części w załączniku).

FP
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 lat
  • Postów:132
0

Nie jestem pewien czy robiłbym to za pomoca "kontrolek" i drag and drop. Nie wiem.
Duzo zalezy od: 1)zalozen, 2)czasu jaki chcemy przeznaczyc.
Zaleczy czy placa od zadania czy od godzin :D :x
Moze juz lepiej wyeksponowac 2 panele i GDI+ albo cos nowszecgo z WPF.
A jezeli chcesz ladnie w 3d to nawet Dircetx (sdk dla .netu jest).

Jeden panel to magazyn skąd "lapiemy paczke", a na drugim jest samochod czy co tam masz (ew jeden poziom na przyczepie).

Poza tym dochodzi kwestia ...wysokosci :) Jezeli zalozenia mowia ze palety zawsze beda tej samej wysokosci to latwiej.
Ale, z zycia wiem...ze zalozenia sie zmieniaja ;)
Jestem pewien ze kazdy "pracujacy" to nie raz przezyl :)

Na koniec cos oczywistego: to czy cos sie miesci czy liczylbym na modelu a nie z prezentacji.

edytowany 1x, ostatnio: fprogrammer
Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

No tak...
Napisanie profesjonalnego programu, który będzie wizualizował w 3D i uwzględniał wysokość palet to dobry pomysł.
Spróbuje, chociaż zacznę bez 3D :)
Nie jestem programistą, ale chciałbym załapać pracę w tym zawodzie. Z tego co się dowiedziałem dobrze jest na takiej wstępnej rozmowie na Juniora, Juniora coś swojego pokazać. Taki program po wykończeniu by się nadawał ? Wiem, że nie wiecie jak on wygląda, pytam w kontekście poziomu trudności. Czy to jednak poziom przedszkola i droga daleka.
Pozdrawiam..

edytowany 1x, ostatnio: Luki91
Zobacz pozostałe 2 komentarze
gg
To dlatego "lekcje" dostajesz teraz ;).
somekind
I lepiej nie dostawać tej lekcji ode mnie. ;)
Luki91
Czyli jako analfabetę i tak mnie nie wezmą ? To po co ja te programy po godzinach piszę ?
gg
Spoko, krzywdy Ci nie zrobią z tego powodu, że nie wiesz kiedy "om" a kiedy "ą" - choć to w sumie obciach nawet dla programisty ;).
Azarien
@gg: bo wystarczy wymawiać -ą jak ą a nie jak om czy oł.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.