Strona 1 z 1

Proste pytania laika

Nowy postNapisane: środa, 16 lipca 2008, 13:47
przez Laik
Jako że dawno temu programowałem to co nie co zapomniałem :P I teraz mam kilka pytanek:

1. Jak zrobić aby program sam skopiował się do auto startu?
2. Jak sprawdzić czy na liście znajduje się jakaś pozycja? (wiem jak zaznaczyć ale sprawdzić nie umiem)

Na razie tylko tyle pozdrawiam

Re: Proste pytania laika

Nowy postNapisane: środa, 16 lipca 2008, 14:16
przez Cyfrowy Baron
W autostarcie nie umieszcza się programów, lecz skróty do tych programów.
Zakładam, że chodzi tobie o uruchomienie programu razem razem z systemem. najlepiej jest dodać wpis do rejestru do klucza:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Umieszczasz tam nazwę klucza będącą wartością typu 'wartość ciągu' i podajesz ścieżkę do programu:

► patrz serwis: Cyfrowy Baron dział: teoria | obsługa rejestru.




Drugiego pytania nie zrozumiałem.

Re: Proste pytania laika

Nowy postNapisane: środa, 16 lipca 2008, 14:29
przez Laik
W 2 pytaniu pytałem jak sprawdzić czy dana pozycja znajduje się na liście. Przykład:
Mam listę imion : Barbara, Eugenia, Jacek, Marcin i teraz chcę sprawdzić kodem czy np Barbara znajduje się na liście i wykonać dalej procedurę. Oczywiście za pomocą ListBox

Re: Proste pytania laika

Nowy postNapisane: środa, 16 lipca 2008, 16:15
przez Cyfrowy Baron
► patrz serwis: Cyfrowy Baron dział: porady | ListBox | Wyszukiwanie elementu listy poprzez podanie jego nazwy.

Re: Proste pytania laika

Nowy postNapisane: środa, 16 lipca 2008, 21:08
przez Laik
Tak tylko że ten kod jak juz w pierwszym poście pisałem zaznacza mi jeśli coś znajduje się na liście. Chciałbym aby program automatycznie sprawdził czy jest i wykonał funkcję. Poniżej przedstawiam kodzik jak to mniej więcej będzie:
Kod: Zaznacz cały
if(ZnalezionoPozycje) WykonajCzynność();
else NieRóbNic():

Re: Proste pytania laika

Nowy postNapisane: czwartek, 17 lipca 2008, 10:12
przez Cyfrowy Baron
Przecież znajduje się tam gotowe rozwiązanie:
Kod: Zaznacz cały
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int index = ListBox1->Perform(LB_FINDSTRING, -1,(LPARAM)Edit1->Text.c_str());

  if(index != -1) ListBox1->ItemIndex = index;
}


Nie bardzo wiem czego w tym nie rozumiesz. Funkcja Perform zwraca zawsze numer linii w której znajduje się poszukiwany tekst, a jeżeli tekstu nie znajdzie to zwraca wartość -1, czyli w Twoim przypadku może to wyglądać tak:
Kod: Zaznacz cały
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   int index = ListBox1->Perform(LB_FINDSTRING, -1,(LPARAM)Edit1->Text.c_str());
    //lub: ListBox1->Perform(LB_SELECTSTRING, -1,(LPARAM)"treść poszukiwanego elementu");
   if(index != -1)
   {
     ShowMessage("Pozycja znajduje się na liście");
   }
   else
   {
     ShowMessage("Brak pozycji na liście");
   }
}

Re: Proste pytania laika

Nowy postNapisane: czwartek, 17 lipca 2008, 11:10
przez Laik
Dzięki. O to właśnie mi chodziło - pozdrawiam