c bien ce que je craignais, g qd meme un stack overflow! :(
-------------------------------
Réponse au message :
-------------------------------
j'utilise CreateParented pk sinon ca plante... pour le RiChedit au moins
C ca qui provoque le stack overflow? franchement... je comprend pas le rapport :/
je test
-------------------------------
Réponse au message :
-------------------------------
J'ai deux petites remarques, qui n'explique pas tout mais si tu pouvais essayer :
- Quand tu utilises Create(), passe toujours self quel que soit le composant. Car ceci désigne le propriétaire du composant et non son Parent. Il est préférerable que le propriétaire soit la fiche et non un autre composant. Il faut bien sur ensuite associer correctement le Parent, mais ça tu le fais bien.
- Pourquoi utilises-tu CreateParented ? le Parent que tu défini est bien un controle de la VCL. Il faut donc utiliser Create(Self) dand tous les cas.
---

Nono du Moulin

---
-------------------------------
Réponse au message :
-------------------------------
pour la creation dynamique? c super long, je cree chaque bouton a la main mais si tu veux...
TabPv := TTabSheet.Create(ChatControl1);
with TabPv Do
begin
Name := 'TabPV'+Id2;
Caption := Pseudo;
PageControl := ChatControl1;
PageIndex := Id;
Parent := ChatControl1;
end;
// haut du Pv : Read dialogue
ReadGroup := TGroupBox.CreateParented(TabPv.Handle);
with ReadGroup Do
begin
Name := 'PvReadBox'+Id2;
Caption := 'Un ptit PV avec '+Pseudo+' !';
Parent := TabPv;
Align := alClient;
Visible := True;
end; ChatControl1.ActivePage := TabPv;
RichPv := TRxRichEdit.CreateParented(ReadGroup.Handle);
with RichPv Do
begin
Name := 'PvRichEdit'+Id2;
Parent := ReadGroup;
Align := alClient;
PlainText := False;
AutoURLDetect := True;
HideSelection := False;
ScrollBars := ssVertical;
OnURLClick := RxRichEditURLClick;
Visible := True;
end;
// Fin Haut du pv
// Bas du pv : Write!
WriteGroup := TGroupBox.CreateParented(TabPv.Handle);
with WriteGroup Do
begin
Name := 'PvWriteBox'+Id2;
Caption := 'On veut parler?';
Parent := TabPv;
Align := alBottom;
Height := 70;
Visible := True;
end;
with TEdit.Create(Self) Do
begin
Name := 'PvEdit'+Id2;
Parent := WriteGroup;
Text := '';
HideSelection := False;
Anchors := [akLeft,akRight];
Left := 8;
Top := 15;
OnKeyPress := PvEditKeyControl;
Visible := True;
end;
with TSpeedButton.Create(Self) Do
begin
Name := 'PvBoldBtn'+Id2;
Parent := WriteGroup;
Caption := 'B';
AllowAllUp := True;
Font.Style := [fsBold];
Left := 300;
Top := 40;
Width := 25;
Height := 25;
Visible := True;
end;
with TSpeedButton.Create(Self) Do
begin
Name := 'PvItalicBtn'+Id2;
Parent := WriteGroup;
Caption := 'I';
AllowAllUp := True;
Font.Style := [fsItalic];
Left := 330;
Top := 40;
Width := 25;
Height := 25;
Visible := True;
end;
with TSpeedButton.Create(Self) Do
begin
Name := 'PvUnderlineBtn'+Id2;
Parent := WriteGroup;
Caption := 'S';
AllowAllUp := True;
Font.Style := [fsUnderline];
Left := 360;
Top := 40;
Width := 25;
Height := 25;
Visible := True;
end;
with TColorDialog.Create(Self) Do
begin
Name := 'PvColorDialog'+Id2;
Parent := WriteGroup;
end;
with TButton.Create(Self) Do
begin
Name := 'PvColorBtn'+Id2;
Parent := WriteGroup;
Caption := 'Couleur';
OnClick := PvChangeColor;
Visible := True;
end;
with TButtonControl.Create(Self) Do
begin
Name := 'PvByeBtn'+Id2;
Parent := WriteGroup;
Caption := 'Fermer';
OnClick := DelThisPv;
Visible := True;
end;
with TButtonControl.Create(Self) Do
begin
Name := 'PvSendBtn'+Id2;
Parent := WriteGroup;
Caption := 'Envoyer';
OnClick := SendTextInPv;
Visible := True;
end;
// Fin Bas de Pv
>>> Stack Overflow
Bon mais c t pas top de tt taper a la main (dc g changé surtt apres le stackoverflow)
apres y avait par le clipboard soit RegisterClass() ne faisait pas effet soit c t stackoverflow
-------------------------------
Réponse au message :
-------------------------------
Fabbin avait posé le problème il y a quelques jours il me semble... Je me souviens aussi qu'il avait trouvé la solution : il a utiliser le composant TFrame qui permet de contenir des composants et à chaque nouvelle instance d'un TFrame, tous les composants inclus sont aussi copiés.
Tu dis avoir des erreurs quand tu crées des composants dynamiquement, comment fais-tu pour les créer ? Car normalement ceci ne provoque pas d'erreur. Place ici ta procédure si tu le souhaites afin que l'on puisse y voir plus clair.
---

Nono du Moulin

---
-------------------------------
Réponse au message :
-------------------------------
Bonjour
je dev un chat en Delphi et je me confronte au probleme suivant : Je dois creer dynamiquement mes pvs selon un modele !!!
G essayer :
-de les creer manuellement > stack overflow
-d'avoir une form associée et de copier les composants => erreurs (si vous trouver une solutions...)
-de dupliquer avec le clipboard => register Class ne semble pas bien fonctionner (EClassError > Class XXX not found alors que je viens de faire un RegisterClass)
-enfin de creer un composant "Template" seulement je peux pas le creer ss l'inclure, si je l'inclure dans une autre form mais une fois la aussi, je dois pouvoir les copier sur le bon form...
Voila, ca fait 2-3 jours que je me tape la tete contre le mur

(c juste une image :) ouf) mais bon la j'en ai marre...
Si qqun peut m'aider
Merci d'avance
------------------------------------------
Visitez http://www.visiomaster.net :)