Jak dostosować ilość buttonów do podanych wartości przez użytkownika?

Odpowiedz Nowy wątek
2018-12-17 01:15
0

Witam!

Może tytuł nie jest jasny, więc spróbuję wytłumaczyć:

Chcę napisać program wspomagający pracę na działce tj. wyświetla dane nt. poszczególnych roślin, szkodników, chorób roślin itd. To z czym mam jak na razie problem jest to, że wyobraźmy sobie to, że użytkownik przy uruchomieniu programu podaje informacje ile na ile ma metrów/arów działka (do dopracowania). Mój problem jest taki, że chcę by się pokazywała odpowiednia ilość buttonów przy wpisywaniu wielkości działki np.: 20 buttonów na 20 buttonów przy założeniu, że działa ma 2 ary itd. Jak to zrobić? BTW Każdy button ma być odpowiednikiem kawałka ziemi tj. będzie bardzo mały i przy jego kliknięciu wybiera się co jest zasiane/znajduje się w danym miejscu na działce. (chciałbym też dodać po bokach rozmiary działki w metrach). Czy jest to możliwe i jeśli tak to jak to rozwiązać. Z góry dzięki. Jak jakieś pytania to proszę pisać. Język to c# ofc w visualu.

Pozostało 580 znaków

2018-12-17 09:31
0

nie iść tą drogą - 400 przycisków to naprawdę jest zły pomysł. Zamiast tego użyć jakiegoś komponentu *Grid i go sobie pomalować samemu. BTW WinForms, WPF czy UWP


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-12-17 16:55
0

W sumie to nie wiem, które z tych trzech będzie najlepsze do tego? Jakieś sugestie, które wybrać? Co do grida jak Ty to widzisz (w sensie kod)?

Pozostało 580 znaków

2018-12-17 16:59
0

Pytanie jest inne - w czym (jeśli w ogóle jakieś posiadasz) masz już doświadczenie?

Oraz drugie - czy to ma być jednorazowy strzał na potrzeby własne, czy chcesz mocniej iść w programowanie? Bo jeśli chcesz tylko zrobić tą apkę i zapomnieć o temacie, to może RAD studio od Embarcadero? Mają wersję darmową C++Buildera, która na Twoje potrzeby całkowicie jest wystarczająca, a podejście RAD bardzo ułatwi Ci pracę.


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
przecież pytanie masz w dziale c# więc chyba język jest określony - abrakadaber 2018-12-17 20:40
@abrakadaber: masz rację, że kilkaset przycisków jest raczej słabym pomysłem. Dlatego można uznać, że OP nie do końca wie, co i jak chce zrobić. I po pierwsze - może nie do końca widzieć różnicę między C, C++ oraz C# (tak, jak niektórzy mylą np. Java i Javascript), a po drugie być może inne rozwiązanie będzie dla niego być lepszą opcją (to, że zadał pytanie w tym dziale nie oznacza, że MUSI wykonać to w danej technologii). - cerrato 2018-12-17 20:45

Pozostało 580 znaków

2018-12-17 17:01
0

Ogólnie to jest program na pracę inżynierską. W sumie z tych trzech najwięcej programowałem w WPF i WF (ale najlepiej wspominam czasy w WF), ale to było dawno temu i nieprawda. Moje studia tak kulały, że do tej pory nie wiem jaka jest różnica między tymi trzema wyborami (poziom nauczania, nie zaś moje lenistwo).

edytowany 1x, ostatnio: rocklee, 2018-12-17 17:03
Pokaż pozostałe 2 komentarze
A tak przy okazji, która wersja RAD? Przypatrzę się temu i spróbuje w razie czego tam (aczkolwiek w c++ mega dawno nie programowałem, w c# coś tam jeszcze umiem, bo nie programowałem od 2 lat). - rocklee 2018-12-17 17:18
Pobierz wersję najnowsza, teraz to chyba 10.3. Dasz radę :) - cerrato 2018-12-17 19:23
@cerrato: czemu na C++ Builder? Ja rozumiem rozne szalenstwa, ale czemu akuratnie to? - fasadin 2018-12-18 09:52
Jeśli robił "kiedyś coś" w C# to w C++ Builder się raczej pogubi - głównie przez n rodzajów castowania i k typów wskaźników. - vpiotr 2018-12-18 10:05
Niestety muszę zrobić to c# ;/ Jakieś pomysły co do rozwiązania mojego problemu? Może spróbuje to jaśniej wyjaśnić. Powiedzmy, że działka jest 200 m x 200 m. Każda "kanka (czy jak to w Waszych stronach się zwie" ma odzwierciedlać albo stałą wartość np.: 10 cm lub też ma mieć określoną stałą przez użytkownika. Próbowałem to rozwiązać za pomocą buttonów, ale stwierdziliście, że to nie ma sensu i Wam wierzę. Tylko co zamiast tego dać? W sensie jaki użyć komponent, który sam by tworzył n swoich kopii, gdzie przy każdej "kance" robi to samo tj. wyświetla okno, gdzie się wybiera. - rocklee 2018-12-19 05:13

Pozostało 580 znaków

2019-01-29 01:20
0

Dodałem załącznik, by przedstawić jaki chcę osiągnąć końcowy efekt tj. żeby minimapa pokazywała jaki typ został wybrany przez użytkownika np.: czy to jest ziemia, roślina, element typu płot itd. Nadal nie wiem jak to zaprogramować, by miało to ręce i nogi. Dodatkowo nie wiem jak zrobić, by program przycinał/rozszerzał obszar działki (przyjmijmy, że domyślnie jest 50 m x 50 m i użytkownik może to dowolnie zmienić). Jakieś pomysły/propozycje/sugestie/uwagi/pytania/podpowiedzi? Jak coś chcę to zrobić w C#, w winforms, bo tu najczęściej programowałem (choć mogą być pozostałe typy). Z góry dziękuję za odpowiedzi.

  • x.png (0 MB) - ściągnięć: 92

Pozostało 580 znaków

2019-01-29 08:21
2

Polecam w WPF, bardzo łatwo to zamodelować:

<Window x:Class="WpfApp5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp5"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">

    <ItemsControl ItemsSource="{Binding Fields}" >
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Content="{Binding No}" Background="{Binding Background}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid  Columns="{Binding Columns}" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>

</Window>
using System.Windows;
using System.Windows.Media;

namespace WpfApp5
{

    public class Field
    {
        public int No { get; set; }
        public Brush Background {get; set;} 
    }

    public partial class MainWindow : Window
    {     

        public int Columns { get; set; } = 7;
        public int Rows { get; set; } = 7;
        public Field[] Fields { get; set; }

        public MainWindow()
        {
            InitializeComponent();

            Fields = new Field[Rows * Columns];
            for (int i = 0; i < Fields.Length; i++)
            {
                Fields[i] = new Field();
                Fields[i].No = i + 1;
                byte blue = (byte)((255 - (i * 5)) % 256);
                byte green = (byte)(((i * 5)) % 256);
                Fields[i].Background = new SolidColorBrush(Color.FromArgb(255, 0, green, blue));

            }

            this.DataContext = this;
        }
    }
}

title


Java to taki C# tyle że z gorszą składnią.
edytowany 5x, ostatnio: neves, 2019-01-29 08:37

Pozostało 580 znaków

2019-01-29 17:59
0

Dziękuję za odpowiedź. A da się, żeby liczbę kolumn i wierszy brało z podanych 2 wartości podanych przez użytkownika?

Pozostało 580 znaków

2019-02-08 17:30
0

Czy jest możliwe zaprogramowanie tak kodu, że po wybraniu z listboxa jakieś "wartości" np.: kwiatek przenosił tą "wartość" do określonego przez użytkownika pola w gridview?

Pozostało 580 znaków

2019-02-08 18:43
0

Czy jest możliwe zaprogramowanie tak kodu, że po wybraniu z listboxa jakieś "wartości" np.: kwiatek przenosił tą "wartość" do określonego przez użytkownika pola w gridview?

Tak


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 1x, ostatnio: cerrato, 2019-02-08 18:44

Pozostało 580 znaków

2019-02-08 20:19
0

^A mógłbym poprosić o przykład takiego kodu?

Nie oczekuj od użytkowników, że napiszą za ciebie pracę inżynierską. Wrzuć kod ze swoich prób, a nie rozkładaj ręce na start i oczekuj na kod. Nie tędy droga. - Kokoniłaj 2019-02-08 20:26
^Czy ja rozkazuję rozpisać całą pracę inżynierską? :V Tylko potrzebowałbym kod akurat na to i na tylko to. - rocklee 2019-02-08 23:21
Jeśli masz jakieś prywatne repo to możesz mnie dodać - mam z tym sporo doświadczenia i chętnie na to zerknę i coś podpowiem. BTW - wszystko się da ;) - orchowskia 2019-02-10 12:35

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0