Zmiana właściwości komponentu przez inny komponent

0

Witajcie,

Chciałbym zbudować prosty program który będzie opierał się na wyborze elementów z komponentu ComboBox, chciałbym aby po wyborze danego elementu z listy przycisk pod otworzył daną wybraną formę. (Itemy, formy, przycisk już mam) Chodzi mi o skojarzenie obu elementów.

procedure TFormaGlowna.ComboBox1Change(Sender: TObject);
begin
 if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'Warszawa' then
 
  //{Przycisk 'Więcej informacji' ma otworzyć FormaWarszawa, if... = 'łódź' __ten sam__ przycisk ma otworzyć FormaŁódź itd.}//

end;

Krótki scenariusz:

Mam program który będzie w formie informatora o różnych miastach w Polsce.

W komponencie GroupBox znajduje się lista Polskich miast.

Pod spodem znajduje się przycisk : Więcej informacji

Jak nie wybiorę żadnego miasta przycisk jest nieaktywny.

Po wyborze w GroupBoxie np. Warszawa - przycisk się uaktywnia (Enabled:= True;)

Po kliknięciu ma otworzyć formę w której mam informacje o warszawie.

Po zamknięciu formy z warszawą wybieram z GroupBoxa - Poznań

I po naciśnięciu przycisku Więcej informacji ma mi się wyświetlić forma z informacjami z Poznania ;)

I to tyle. Łatwiej tego już chyba nie opiszę :P Chodzi mi o to jak skonstruować kod który będzie zmieniał wyswietlaną formę po odpowiednim wybraniu elementu

0

ok, wybrnąłem sam, może na około ale działa:P
kluczem do sukcesu były fukncje nie w ComboBoxie tylko w tym przycisku "więcej informacji"

procedure TFormaGlowna.WiecejClick(Sender: TObject);
begin
  if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'Warszawa' then FormaWarszawa.ShowModal;
  if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'Poznań' then FormaPoznan.ShowModal;
  if ComboBox1.Items.Strings[ComboBox1.ItemIndex] = 'Krakow' then FormaKrakow.ShowModal;
end;
0

Do takich celów to lepiej użyć zbudowany plik XML wkompilowany w zasoby. W takim pliku można umieścić nie tylko gołe informacje, ale i na przykład ID zdjęcia miasta w zasobach i inne. Bo najzgrabniej stworzyć taki program w postaci pojedynczego pliku exe, który po UPXnięciu powinien być mniejszy i w miarę wygodny w użyciu. Przeanalizuj kod dołaczony do tego posta. U mnie dane prezentuje ListBox, ale nie problem to przecież przerobić na ComboBox czy coś innego. W ogóle do takich kombinacji powinno się użyć albo bazy danych albo właśnie takiej bazy plikowej, najprościej na początek będzie użyć XML. Mój program korzysta z prostego parsera autorstwa Spooka. Poza tym złym pomysłem jest tworzenie 1000 form dla miast. Lepiej zrobić jedną, która będzie zawierała miejsce na przykład na opis miasta czy dane o ludności albo inne możliwe od znalezienia na Wikipedii, miejsce na zdjęcia w TImage i tym podobne. Tak właśnie polecał bym to rozwiązać, bo 1000 if'ów to według mnie jakieś nieporozumienie ;/

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