Terminarz + tabela


(Pubfifa Eu) #1

Witam, mam zamiar stworzyć program, który po wklepaniu listy drużyn (16 żeby nie utrudniać) będzie generować terminarz, a po wpisaniu wyników będzie generować tabelę posortowaną względem ilości punktów (jak to zwykła ligowa tabela). Z zapisem drużyn oraz terminarzem sobie dam radę. Problem pojawia się przy tworzeniu tabeli. Program piszę w Visual Studio 2008 C++ i pojawia się pytanie - czy da się stworzyć tabelę, która by się automatycznie aktualizowała po wpisaniu wyników do terminarza?

W toolboxie jedyne przydatne do tego celu elementy jakie znalazłem to TableLayoutPanel oraz DataGridView, jednak nie mam pojęcia jak ich użyć...


([alex]) #2

Google nie gryzie.


(Pubfifa Eu) #3

Wydaję mi się, że datagridview to dość potężne narzędzie i takie proste go wykorzystanie jakiego ja potrzebuje nie będzie nigdzie opisane.


([alex]) #4

Oczywiście jest że dokładnie takiego wykorzystywania jak potrzebujesz raczej nie będzie. Patrząc na przykłady wykorzystywania możesz sam wnioskować czy potrzebujesz jakiegoś fragmentu czy nie. Każdą "automatyczną aktualizację tabeli" trzeba oprogramować, dopóki nie powstanie IDE z wbudowaną procedurą proroka lub telepatii.


(somekind) #5

TableLayoutPanel, jak sama nazwa wskazuje, to zabawka zupełnie do czego innego.

Na Twoim miejscu użyłbym DataGridView, a dane w niej aktualizował w odpowiedzi na wpisanie/edycję danych w terminarzu (nie łapię co dokładnie chcesz osiągnąć, ale nie wygląda to na skomplikowane pod względem programowym). Zresztą, być może można ustawić gdzieś jakieś autosortowanie w DGV, nie chce mi się teraz szukać w dokumentacji. A tak w ogóle - http://msdn.microsoft.com/en-us/library/e0ywh3cz.aspx


(Pubfifa Eu) #6

ja jestem bardzo, ale to bardzo początkujący, także dla mnie wszystko jest skomplikowane pod względem programowym...

czyli żeby użyć DGV muszę zapisywać dane w jednym miejscu - może to być struktura, czy raczej jakaś baza danych?


([alex]) #7

Można zapisywać tak jak chcesz, (struktura, tablica, string, plik, baza danych) albo niczego nie zapisywać generując dane dynamicznie. Grunt aby po zmianie "wyników", poprawnie od nowa wypełnić tego Grida.


(somekind) #8

To może lepiej wziąć się za coś prostszego na początek?

Programowanie to nie jest przeciąganie kontrolek z paska narzędzi na formatkę, to bardziej złożony problem.

Dane możesz trzymać w samych komórkach (Cells) DGV, odwołując się poprzez jego wiersze (Rows) i kolumny (Columns). Ale mądrzejszym rozwiązaniem będzie np. utworzenie obiektu DataTable - wirtualnego, umieszczonego w pamięci komputera odpowiednika bazodanowej tabeli. Taki DataTable możesz powiązać z DGV za pomocą właściwości DataGridView.DataSource. Ponadto możesz łatwo zapisywać i odczytywać do i z pliku XML za pomocą metod WriteXml i ReadXml.