[DELPHI][THGG] Lista kontaktów

0

Witam,
Mam już prawie wszystko w moim programie. Ale nie mogę sobie poradzić z listą kontaktów.
Więc jak zrobić listę kontaktów?
Jakiś url coś?

Pozdro.

Używam komponentu: THGG

0

wrzuć comboboxa a ikonki namaluj canvasem a opisy olej:P

0

skontaktuj się ze mną na gg to ci wyjaśnię wszystko. (gg.4032020)

0

Witam,
Poradziłem sobie z tym. Zajarzyłem jak to zrobić i działa.
A teraz inne pytanie...
Jak za pomocą IdFTP (z Indy) przesłać plik bezpośrednio między komputerami?

0

Mógł byś wrzucić kod do listy dla innych? :)
Co do indy to nie wiem :P

0

Ok podam wam kodzik ;)

  1. Na formę wstawiamy 2 komponenty ImageList (u mnie nazwa domyślna
    ImageList1) i ListView (nazwa domyślna u mnie to ListView1).
  2. Klikamy 2x na ImageList i dodajemy emikonki emitujące stan (kolejność
    niedostępny, dostępny, zaraz wracam). Dla tych którzy nie wiedzą skąd je
    wziąć wrzuciłem tutaj: http://www.dolarek.xorg.pl/img.rar
  3. Klikamy na komponent ListView i w LargeImage ustawiamy ImageList1.
  4. Kolejny etap to kliknięcie w komponent HGG. W zakładce Events wpisujemy w
    polach:
    OnUserChangeStatus, OnUsersGetFromServer i w OnUsersListChange taki kod (oczywiście między procedure... a end;):
var
  i: Integer;
  Item: TListItem;
begin
  ListView1.Clear;
  ListView1.Items.BeginUpdate;
  for i := 0 to HGG1.Users.Count - 1 do
  begin
    Item := ListView1.Items.Add;
    case HGG1.Users[i].Status of
      usNotAvailable: Item.ImageIndex := 0;
      usAvailable: Item.ImageIndex := 1;
      usBusy: Item.ImageIndex := 2;
    end;
    Item.Caption := HGG1.Users[i].Name;
    Item.SubItems.Add(IntToStr(HGG1.Users[i].GGNumber));
    Item.SubItems.Add(HGG1.Users[i].IP);
  end;
  ListView1.Items.EndUpdate;
  1. Sprawdzamy czy działa.
0

Coś mnie chyba nie działa :)

0

Potrzebuje info jak zrobic procedure do buttona zeby dodawal dane z numerem gg i nickiem do ListView?

procedure TForm1.Button6Click(Sender: TObject);

Bardzo tego potrzebuje, wielkie dzieki z góry ;]

0
Shootek001 napisał(a)

Potrzebuje info jak zrobic procedure do buttona zeby dodawal dane z numerem gg i nickiem do ListView?

procedure TForm1.Button6Click(Sender: TObject);

Bardzo tego potrzebuje, wielkie dzieki z góry ;]

ROTFL

A ta procedura wyżej to już nie do Buttona jest? :D

[EDIT]

Cokolwiek "zrobic procedure do buttona" znaczy...

0

Ok zle sie wyrazilem...

Chodzi mi o to zeby po wcisnieciu buttona, ktory juz ma przypisane

gg.AddUser(numer,'nazwa');

Chcę żeby wysylalo te dane do komponentu ListView i dodawalo nowy kontakt ;]

0

nudzilo mi sie i wyszlo takie cos:

var
  x: TListItems;
  b: TListItem;

begin
  x := TListItems.Create(ListView1);
  b := TListItem.Create(x);

  b.ListView.AddItem('jakis item', ListView1);
end;

;]

do listviewa dodaj tylko nazwe, zrob sobie 2 strinlisty i jak chcesz numer wyciagnac to porownuj stringliste z nazwami, jak sie bedzie zgadzac to bierzesz numer z stringlisty z numerami o tym samym indexie...

0

Giekaa, strasznie nieoptymalny i nieestetyczny ten kod...

0

yh.. pisalem to 15 sec -.- pewnie mozna to napisac lepiej, ale skoro dziala... ;]

PS. estetyczny to na pewno jest -.-

nieestetycznie wygladaloby mniejwiecej tak:

var x: tlistitems;
b: TListItem;
begin x:=tlistitems.create(ListView1); b:=tlistitem.create(x);
b.listview.additem('jakis item', listview1);
end;
0

GieKaA: chodziło mi o sposób, w jaki to robisz, a nie formatowanie kodu.

0
Coldpeer napisał(a)

GieKaA: chodziło mi o sposób, w jaki to robisz, a nie formatowanie kodu.

Muszę się zgodzić... Tworzenie całej listy przy każdej zmianie statusu... To jest baaardzo nieoptymalne rozwiązanie...

0

-.- mozna dac zmienne globalnie, a liste zrobc w oncreate formy, potem sie tylko dodaje, ew. zmienia wg potrzeb...

moze wyjasnie ;]

na poczatku deklarujemy zmienne: x, b oraz 2 stringlisty np. nazwy i adresy

mamy np.

[email protected] stasiek
[email protected] blabla
[email protected] mietek

to po prawej stronie to adresy, kolejno:

[email protected] to adresy[0]
[email protected] to adresy[1]

itd.. podobnie z nazwami

potem dodajemy wszystko do listviewa

czyli np.

for i := 0 to adresy.count-1 do b.ListView.AddItem(nazwy[i], ListView1);

i tyle...

jak status sie zmienia to np.

for i := 0 to adresy.count-1 do if adresy[i] = zmieniony_status then
begin
ListView1.Items.Item[i].Caption := 'tu sie zmienil status...';
end;

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