|
|
1.1 ! root 1: //--------------------------------------------------------------------------- ! 2: ! 3: #include "sbbs.h" ! 4: #include <vcl.h> ! 5: #pragma hdrstop ! 6: ! 7: #include "UserListFormUnit.h" ! 8: #include "MainFormUnit.h" ! 9: #include "userdat.h" ! 10: //--------------------------------------------------------------------------- ! 11: #pragma package(smart_init) ! 12: #pragma resource "*.dfm" ! 13: TUserListForm *UserListForm; ! 14: //--------------------------------------------------------------------------- ! 15: __fastcall TUserListForm::TUserListForm(TComponent* Owner) ! 16: : TForm(Owner) ! 17: { ! 18: } ! 19: //--------------------------------------------------------------------------- ! 20: void __fastcall TUserListForm::FormShow(TObject *Sender) ! 21: { ! 22: char str[128]; ! 23: int i,last; ! 24: user_t user; ! 25: TListItem* Item; ! 26: ! 27: ColumnToSort=0; ! 28: SortBackwards=false; ! 29: Screen->Cursor=crAppStart; ! 30: ! 31: last=lastuser(&MainForm->cfg); ! 32: ListView->AllocBy=last; ! 33: ! 34: ListView->Items->BeginUpdate(); ! 35: for(i=0;i<last;i++) { ! 36: user.number=i+1; ! 37: if(getuserdat(&MainForm->cfg,&user)!=0) ! 38: continue; ! 39: if(user.misc&DELETED) ! 40: continue; ! 41: Item=ListView->Items->Add(); ! 42: Item->Caption=AnsiString(i+1); ! 43: Item->SubItems->Add(user.alias); ! 44: Item->SubItems->Add(user.name); ! 45: Item->SubItems->Add(user.level); ! 46: Item->SubItems->Add((int)getage(&MainForm->cfg,user.birth)); ! 47: if(user.sex<=' ' || user.sex&0x80) /* garbage? */ ! 48: str[0]=0; ! 49: else ! 50: sprintf(str,"%c",user.sex); ! 51: Item->SubItems->Add(str); ! 52: Item->SubItems->Add(user.location); ! 53: Item->SubItems->Add(user.modem); ! 54: Item->SubItems->Add(user.note); ! 55: Item->SubItems->Add(user.comp); ! 56: Item->SubItems->Add(user.phone); ! 57: Item->SubItems->Add(user.netmail); ! 58: Item->SubItems->Add(user.logons); ! 59: Item->SubItems->Add(unixtodstr(&MainForm->cfg,user.firston,str)); ! 60: Item->SubItems->Add(unixtodstr(&MainForm->cfg,user.laston,str)); ! 61: } ! 62: ListView->Items->EndUpdate(); ! 63: ! 64: Screen->Cursor=crDefault; ! 65: } ! 66: //--------------------------------------------------------------------------- ! 67: void __fastcall TUserListForm::ListViewColumnClick(TObject *Sender, ! 68: TListColumn *Column) ! 69: { ! 70: if(Column->Index == ColumnToSort) ! 71: SortBackwards=!SortBackwards; ! 72: else ! 73: SortBackwards=false; ! 74: ColumnToSort = Column->Index; ! 75: ((TCustomListView *)Sender)->AlphaSort(); ! 76: } ! 77: //--------------------------------------------------------------------------- ! 78: void __fastcall TUserListForm::ListViewCompare(TObject *Sender, ! 79: TListItem *Item1, TListItem *Item2, int Data, int &Compare) ! 80: { ! 81: /* Decimal compare */ ! 82: if (ColumnToSort == 0 || ColumnToSort==3 || ColumnToSort==4 ! 83: || ColumnToSort == 12 /* logons */ ! 84: || ColumnToSort == 13 /* First On */ ! 85: || ColumnToSort == 14 /* Last On */ ! 86: ) { ! 87: int num1, num2; ! 88: ! 89: if(ColumnToSort==0) { ! 90: num1=Item1->Caption.ToIntDef(0); ! 91: num2=Item2->Caption.ToIntDef(0); ! 92: } else if(ColumnToSort>12) { /* Date */ ! 93: int ix = ColumnToSort - 1; ! 94: num1=dstrtounix(&MainForm->cfg ! 95: ,Item1->SubItems->Strings[ix].c_str()); ! 96: num2=dstrtounix(&MainForm->cfg ! 97: ,Item2->SubItems->Strings[ix].c_str()); ! 98: } else { ! 99: int ix = ColumnToSort - 1; ! 100: num1=Item1->SubItems->Strings[ix].ToIntDef(0); ! 101: num2=Item2->SubItems->Strings[ix].ToIntDef(0); ! 102: } ! 103: if(SortBackwards) ! 104: Compare=(num2-num1); ! 105: else ! 106: Compare=(num1-num2); ! 107: } else { ! 108: int ix = ColumnToSort - 1; ! 109: if(SortBackwards) ! 110: Compare = CompareText(Item2->SubItems->Strings[ix] ! 111: ,Item1->SubItems->Strings[ix]); ! 112: else ! 113: Compare = CompareText(Item1->SubItems->Strings[ix] ! 114: ,Item2->SubItems->Strings[ix]); ! 115: } ! 116: } ! 117: //--------------------------------------------------------------------------- ! 118: void __fastcall TUserListForm::FormClose(TObject *Sender, ! 119: TCloseAction &Action) ! 120: { ! 121: ListView->Items->BeginUpdate(); ! 122: ListView->Items->Clear(); ! 123: ListView->Items->EndUpdate(); ! 124: } ! 125: //--------------------------------------------------------------------------- ! 126: ! 127: ! 128: ! 129: ! 130: void __fastcall TUserListForm::EditUserPopupClick(TObject *Sender) ! 131: { ! 132: char str[256]; ! 133: ! 134: if(ListView->Selected==NULL) ! 135: return; ! 136: sprintf(str,"%sUSEREDIT %s %s" ! 137: ,MainForm->cfg.exec_dir,MainForm->cfg.data_dir ! 138: ,ListView->Selected->Caption.c_str()); ! 139: WinExec(str,SW_SHOWNORMAL); ! 140: } ! 141: //--------------------------------------------------------------------------- ! 142:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.