jaki element do wyswietlania listy osob ????

dział ogólny

jaki element do wyswietlania listy osob ????

Nowy postprzez LukeCyc » niedziela, 7 września 2008, 13:57

Witam,

szybko i w skrocie opisze jaki mam problem. Generalnie poszukuje komponentu ktory rozwiazal by mi pewien specyficzny problem. Zamierzam utworzyc baze danych pracownikow firmy, wykorzystujac hierarchie klas okreslajacych pracownikow, dyrektorow, zastepcow itd. Nastepnie chodzi mi o to by w GUI po zaladowaniu takiej bazy danych z pliku wyswietlic podstawowe dane o kazdej osobie w bazie danych i teraz problem, tak wyswietlic, aby dalo sie konkretna pozycje zaznaczyc, by ja zmienic wpisujac w pola TEdit odpowiednie dane i wciskajac TButton z funkcja zmien.

Wymyslilem sobie tak ze w klasie baza danych bede przechowywal wektor wskaznikow do klasy bazowej mojej hierarchi osob, ta klasa bazowa (abstrakcyjna) zapewni interfejs ktory umozliwi zmiane personaliow kazdego rodzaju osoby w tej hierarchi. I teraz aby byla mozliwa realizacja tego przydal by mi sie taki komponent, ktory oprocz wyswietlenia kazdej osoby po kolei bedzie trzymal uchtyw do danej osoby, tak by po zaznaczeniu konkretnej pozycji na liscie dalo sie przy pomocy tego uchwytu (wskanika klasy bazwoej dla konkretnej osoby) dalo sie pozmieniac dane konkretnej osoby.

W takim razie moje pytanie jest nastepujace, czy jest jakis komponencik typu lista ktory zaprezentuje moj wektor osob w taki sposob, ze wyswietli informacje kazdego elementu(imie, nazwisko), malo tego bedzie sie dalo kliknac i zaznaczyc konkretny element, dostac uchwyt do msca w moim wektorze i dokonac konkretnych zmian na nim.

gdybym cos nie dokladnie wytlumaczyl osoby zainteresowane by udzielic mi pomocy prosze o pytania tutaj na maila badz na gg
cyrulo@gmail.com
2107813

pozdrawiam
Avatar użytkownika
LukeCyc
 
    NieznanyNieznana

Re: jaki element do wyswietlania listy osob ????

Nowy postprzez Cyfrowy Baron » czwartek, 25 września 2008, 11:37

Obawiam się, ze takich komponentów to raczej nie ma. Komponenty list oczywiście znajdują się w w C++ Builder i są to ListBox, ListVeiw itp.
Nie wszystko zrozumiałem z Twojego opisu, ale kiedyś tworzyłem na potrzeby pewnej małej firmy program do obsługi magazynu wydawania odzieży pracownikom.
W programie tym stworzyłem listę pracowników w ListBox, na tej liście znajdował się numer ewidencyjny pracownika oraz jego imię i nazwisko. Program tworzył dla każdego pracownika kartę ewidencyjną, był to odrębny plik czyli każdy pracownik miał swój plik (plik = karta ewidencyjna) i to w nim program przechowywał dane. Po wybraniu pracownika na liście plik był wczytywany do panelu umożliwiającego edytowanie karty ewidencyjnej.
Dlatego nie wydaje mi się, żeby konieczne było trzymanie uchwytu do karty personalnej każdego użytkownika. Wystarczy chyba stworzyć listę wyświetlaną w ListBox zawierającą Imię i Nazwisko danego użytkownika i drugą listę przechowywaną w pamięci zawierającą również imię i nazwisko danego pracownika, oraz nazwę pliku w którym te dane są przechowywane. Potem po wybraniu w ListBox pracownika, program sprawdzi sobie na tej drugiej liście jaka nazwa pliku jest przypisana do danego pracownika i wczyta odpowiedni plik.
To prosty i skuteczny mechanizm dla nieskomplikowanego programu i w Twoim przypadku powinien wystarczyć.
Jako drugą listę możesz wykorzystać klasę TStringList która może przechowywać dane w kluczu: nazwa=wartość, łatwo potem porównywać listy.

Opis podobnego mechanizmu znajdziesz w serwisie Cyfrowy Baron w dziale porady -> TStringList -> Tworzenie listy zawierającej nazwy i wartości przypisane do nazw.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: jaki element do wyswietlania listy osob ????

Nowy postprzez usermaw » sobota, 3 stycznia 2009, 21:22

Wlasnie, jak Baron przedmowca napisal, plik dla pracownika. Przejrzyste rozwiazanie i niezagmatwane.
Natomiast co do klas to proponuje hierarhie dziedziczenia:
kierownik dziedziczy po pracowniku(bo sam takze jest pracownikiem) + pole typowe dla kierownika - liczba pracownikow
Punktem wyjscia jest klasa bazowa pracownik. Po czym jedna przyslowiowa linijka kodu zapisujesz to binarnie do pliku, tzn wszystkie pola klasy.
Zapis binarny calej karty pracownika jest na tyle szybki, ze mozna spokojnie podmieniac zawartosc calego pliku ( z okienkiem "czy na pewno" ;-) ). Nie na niejawnych konwersji.

Wczytanie do edycji w jakims wielowierszowym komponencie jak StringGrig.

Rozwiazanie Barona i hierarhia klas da szybkie rozwiazanie i do tego na tyle uniwersalne, ze latwo cokolwiek rozbudowac.
Nawet, gdyby Twoj pomysl wypalil, bo czemu nie pokombinowac, to chyba wyszedl by kod na tyle hermetyczny i zalezne jedno od drugiego, ze modyfikacja stala by sie uciazliwa i zawila.
Jak bym to jakos tak zrobil.

pozdro :)
Avatar użytkownika
usermaw
Homos antropiczny
Homos antropiczny
 
Posty: 55
Dołączył(a): piątek, 2 stycznia 2009, 20:43
Podziękował : 2
Otrzymał podziękowań: 0
    NieznanyNieznana

Re: jaki element do wyswietlania listy osob ????

Nowy postprzez polymorphism » niedziela, 4 stycznia 2009, 13:31

Możesz jeszcze użyć TListView w trybie wirtualnym. Zaletą tego rozwiązania będzie to, że nie będziesz musiał duplikować danych, a to dość istotne, jeśli rekordów jest dużo.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 48 gości

cron