Bonjour je realise un client de chat celui ci fonctionne mais j ai un petit soucis qd j essaye de mettre une couleur personnalisable.
J'ai créer un Tframe avec ts les composants necessaires a mon PV (Prive).
Ce Tframe est inclus dynamiquement dans mon Tpagecontrol.
J'ai mis une procedure (code plus bas ) pour ouvrir ces PVs .
Avant la gestion de la couleur je me contenter de cacher le tabsheet du prive lorsque celui ci etait fermer mais l utilisation de la couleur me force a le detruire:
Pagecontrol ownerdraw=true et je reecris dans le canvas le caption de l onglet mais si je cache le tabsheet ca decale tout.
J' ai donc mis sur le bouton de fermeture du PV le code suivant :
Ce code me ferme bien le PV mais me genere une erreur 'violation d'acces' meme en essayant de la camoufler avec un try except;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 formchat.PageControlChat.Pages[formchat.PageControlChat.ActivePageIndex].Destroy; formchat.PageControlChat.ActivePageIndex:=4;
Ici j indique la procedure d'ouverture dynamique car je pense que le probleme peut venir de la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 procedure OuvrirPV(Pseudo,sexe:string; ActivePV: Boolean;nbpv2:integer); var NewPV: TTabSheet; NewPVFrame: TFrame1; begin NewPV := TTabSheet.Create(FormChat.PageControlChat); NewPV.PageControl := FormChat.PageControlChat; NewPv.PageIndex:=nbonglet+nbpv; NewPVFrame := TFrame1.Create(NewPV); NewPVFrame.Parent := NewPV; NewPVFrame.Align := alClient; NewPVFrame.EditSaisiePv.Clear; NewPVFrame.RxRichEditPv.Clear; NewPV.Caption := Pseudo; NewPVFrame.groupboxpv.Caption := 'Dialogue en prive avec '+pseudo; NewPvFRame.Labelnbpv.Caption:=inttostr(Nbpv2);; Setlength(PriveOuvert,Length(PriveOuvert)+1); PriveOuvert[Length(PriveOuvert)-1].Nom:=Pseudo; PriveOuvert[Length(PriveOuvert)-1].Pointeur:=addr(NewPVFrame.Edittemppv); PriveOuvert[Length(PriveOuvert)-1].sexe:=sexe; priveouvert[Length(PriveOuvert)-1].posrichpv:=0; PriveOuvert[Length(PriveOuvert)-1].Pointeur2:=addr(NewPVFrame.webbrowserpv); nbpv:=nbpv+1; formconnect.ClientSocket1.Socket.SendText('17'+#09+pseudo+#13#10); if ActivePV then begin FormChat.PageControlChat.ActivePageIndex := NewPV.PageIndex; FormChat.PageControlChat.Invalidate; exit; end else begin NewPV.Highlighted := True; FormChat.PageControlChat.Invalidate; exit; end; end;
Si quelqu un a une idee qui pourrait m aider a avancer ...
Merci
Unformatic
Partager