cybersky
Messages postés40Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention25 mai 2009
-
16 juil. 2007 à 20:21
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
18 juil. 2007 à 13:00
slt a tous
Voila mon probleme est que je voudrais que chaque client qui ce connecte sur ma base de donnée soit afficher dans une ttreeview et que tous les client puisse les voirs
je ne sais pas par ou commencer
merci pour vos conseils
Coordialement
PS si vous me presenter un code il sera incrementer dans mon soft et il sera en libre down sur ce site.
si vous me presenter un code il sera incrementer dans mon soft :Facon tres délicate d'exiger un code mais pas de demande de ce type sur CS .
je ne sais pas par ou commencer : Et si tu commencais par chercher
De facon exceptionnelle je vais répondre à ta requette : la prochaine fois on t'embrauche vivant .
Non testé et j'utilise un StringGrid car c'est plus joli:
procedure TAdmin_Form.LookFor_Activity_BtClick(Sender: TObject);
var
IndexUser:Cardinal;
UsersList:TStringList;
UsersFile:String;
begin
If (Bases_List_LitsBox.ItemIndex<0) then Exit ; //Listbox contenant les bases
UsersFile:=ExtractFilePath(ParamStr(0))+'Users.ini'; //Tout les utilisateurs sont initialement référencés dans un fichier Ini
UsersList:=TStringList.Create;
IniFile_Extract_Users(UsersFile,UsersList);
Users_StGd.RowCount:=UsersList.Count+1;
For IndexUser:=0 to (UsersList.Count-1) do
Begin
With Users_StGd do // Nom du stringgrid :
Users_StGd
Begin
Cells[0,IndexUser+1]:=DateToStr(Now);
Cells[1,IndexUser+1]:=TimeToStr(Now);
Cells[2,IndexUser+1]:=UsersList.Strings[IndexUser];
If User_In_Activity(Bases_List_LsBx.Items.Strings[Bases_List_LsBx.ItemIndex],UsersList.Strings[IndexUser]) then Cells[3,IndexUser+1]:='Connecté'
Else Cells[3,IndexUser+1]:='Non connecté';
End;
end;
UsersList.Free;
end;
procedure TAdmin_Form.Save_Activity_BtClick(Sender: TObject);
var
IndexUser:Cardinal;
Str:String;
List:TStringList;
begin
If not SaveDialog.execute then Exit;
SaveDialog.Filter:='Fichier texte|.txt';
List:=TStringList.Create;
For IndexUser:=0 to (Users_StGd.RowCount) do
Begin
With Users_StGd do
Begin
Str:=Cells[0,IndexUser];
Str:=Str+Cells[1,IndexUser];
Str:=Str+Cells[2,IndexUser];
Str:=Str+Cells[3,IndexUser];
List.Add(Str);
End;
End;
List.SaveToFile(SaveDialog.FileName);
List.Free;
end;
Function User_In_Activity(ABase,AUser:String):Boolean;
Var
IBDB:TIBDatabase;
IBDI:TIBDatabaseInfo;
List:TStringList;
UsersFile:String;
Index:Cardinal;
Begin
IBDB:=TIBDatabase.Create(nil);
IBDI:=TIBDatabaseInfo.Create(nil);
List:=TStringList.create;
USersFile:=ExtractFilePath(ParamStr(0))+'Users.ini';
With IBDB do
Begin
DatabaseName:=ABase;
SqlDialect:= 3;
Params.Add('USER '+StringReadIni(USersFile,'Root','User'));
Params.Add('PASSWORD '+Crypt(StringReadIni(USersFile,'Root','Password')));
Params.Add('PAGE_SIZE 4096');
Try
IBDB.Connected:=True;
Finally
If (IBDB.Connected) then
With IBDI do
If (UserNames.Count<>0) or (UserNames <> nil) then
For Index:=0 to (UserNames.Count-1) do
List.add(Usernames[Index]);
End;
End;
If (List.Count>-1) AND (List.IndexOf(AUser)>=0) then Result:=True
Else Result:=False;
List.Free;
IBDB.Free;
IBDI.Free;
End;
Pour renvoyer cette liste aux utilisateurs (je vois pas trop l'intéret mais bon) il suffit d'utiliser les composants TSockets comme pour un tchat.