begin process at 2010 02 10 13:29:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Problème avec les TMemo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec les TMemo

vendredi 2 juillet 2004 à 11:28:32 | Problème avec les TMemo

sebmime

Bonjour,
Mon application permet de créer des petites zones de texte (des TMEMO) qui sont affichées sur une TFORM.
je créé donc mes TMemo avec des "create".
Le problème est que l'application plante lorsque je veux supprimer un TMEMO qui est en dehors de la zone d'affichage de la TFORM.
Pour le supprimer je fais : monMemo.free.
Ceci fonctionne néanmoins lorsque la zone de texte (le TMEMO) est dans la zone d'affichage de la TFORM.

Quelqu'un sait-il comment résoudre ce pb?

Merci
samedi 3 juillet 2004 à 08:32:05 | Re : Problème avec les TMemo

Delphiprog

Administrateur CodeS-SourceS
Le problème ne peut pas provenir du fait que le TMemo soit en dehors de la surface cliente de la fiche.
Cela est surement lié au fait que tu essaies de détruire un objet que tu as déjà détruit avant.
Comment stockes-tu les références des TMemo créés dynamiquement ?
Ou alors, comment procèdes-tu pour détruire ces différents TMemo ?
May Delphi be with you
lundi 6 septembre 2004 à 17:27:44 | Re : Problème avec les TMemo

sebmime

Nan nan je pense pas que çà vienne de çà puisque le problème existe même quand je ne détruit pas les TMemo.

Je les stocke dans un tableau. Ils sont créés dynamiquement.

Tout fonctionne parfaitement comme je le veux sauf que quand je déplace un TMemo par dessus un autre, celui de dessous est affiché et il n'est pas caché par celui du dessus. C'est une question de priorité d'affichage je pense. Mais je sais pas comment le résoudre.

Merci
lundi 6 septembre 2004 à 19:16:33 | Re : Problème avec les TMemo

Delphiprog

Administrateur CodeS-SourceS
Si ça se produit quand tu détruis tes TMemo et aussi quand tu ne les détruis pas, c'est que le problème doit venir d'ailleurs.

Va falloir que tu fournisses ton code si tu veux qu'on t'aide.
May Delphi be with you
mardi 7 septembre 2004 à 09:51:53 | Re : Problème avec les TMemo

sebmime

OK,

J'ai un record qui contient mon TMemo (et d'autres choses mais je simplifie) :
Composant_etape = record
texte_associe : TMemo;
end;
//////////////////////////
La fonction utilisé pour initialiser un Composant_etape est :
function creerEtape : Composant_etape;
var
etape : Composant_etape;
begin
etape.texte_associe := TMemo.create(forme);
result := etape;
end;
//////////////////////////
La fonction utilisé pour afficher un Composant_etape est :
procedure afficherEtape(etape : Composant_etape; form : Form);
begin
etape.texte_associe.Parent := form;
....
end;
//////////////////////////
Je stocke mes Composant_etape dans un tableau :
Etape_array : Array [1..nombreEtapeMax] of Composant_etape;


Ensuite, dans ma TForm, je crée un Composant_etape lorsque je clique sur la TForm :
procedure TmainFRAME_editeur_grafcet.FormMouseDown (Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Etape_array[NbEtapes] := creerEtape;
end;
////////////////////////////
Le Composant_etape est enfin dessiner avec la methode PAINT :
procedure TmainFRAME_editeur_grafcet.FormPaint(Sender: TObject);
var
i : integer;
begin
for i := 1 to NbEtapes do
begin
afficherEtape(Etape_array[i], mainFRAME_editeur_grafcet);
end;
end;

mainFRAME_editeur_grafcet est la TForm.


Voila je crois que j'ai tout mis. J'ai simplifié un peu le code donc c'est normal si des fonctions paraissent inutiles, elles sont simplifiées.
Sinon, j'ai utilisé des Record pour une question de simplification.Idem j'ai simplifié les Composant_etape, ils sont plus complexes que çà. Mais tout ce que j'ai simplifié n'intervient pas pour mon problème.

Voila, donc le problème est que lorsque j'affiche plusieurs Composant_etape et que ceux-ci se superposent, le dernier affiché ne masque pas toujours ceux qui sont dessous. L'ordre d'affichage me semble aléatoire et donc j'ai aucun controle et c'est çà qui me pose problème.


Merci




mardi 7 septembre 2004 à 21:09:39 | Re : Problème avec les TMemo

Delphiprog

Administrateur CodeS-SourceS
Serait-il possible de connaitre dans quelle procédure/fonction tu décrémentes ton compteur NbEtapes ?

Je suppose, mais tu vas nous le confirmer, que tu incrémentes cette variable dans creerEtape.

Quand tu dis que tu simplifies en utilisant des structures de type Record, tu ne me convainc pas du tout.

Il y a des solutions plus élégantes et plus sûres, à mon humble avis, comme ce code : utiliser les TObjectList.

Mais c'est ton choix et je le respecte.
May Delphi be with you
mercredi 8 septembre 2004 à 09:54:37 | Re : Problème avec les TMemo

sebmime

C'est çà j'incremente NbEtapes dans la fonction creerEtape.
Mais je rappelle (meme si le choix des record n'est pas le meilleur) que tout fonctionne parfaitement.
Le seul problème est lorsque 2 TMemo se superposent. Je ne sais pas comment masquer celui du dessous par celui du dessus.

Est-ce que tu aurais un exemple de code ou on affiche 2 TMemo sur un canvas en controlant l'ordre d'affichage.

Merci
mercredi 8 septembre 2004 à 22:49:36 | Re : Problème avec les TMemo

Delphiprog

Administrateur CodeS-SourceS
Je n'ai rien de plus à ajouter à la réponse faite par Loulibier.
En effet, BringToFront permet de "gérer" l'ordre Z en faisant repasser au premier plan un composant visuel.
May Delphi be with you


Cette discussion est classée dans : problème, application, tform, zone, tmemo


Répondre à ce message

Sujets en rapport avec ce message

Create Form explication [ par Bruto ] Salut,voila comme je débute en Delphi ( migration VB oblige ), je rencontre qq prob's.Explication ( ce que je voudrais ) :Mon programme se lance et pa Problème DDE [ par ccb9902 ] J'ai une form en Delphi 4 avec un DDEClientConv me permettant de faire un liaison DDE et de lancer des macros vers une application VB3 (que je ne peux Problème ODBC et procédure stockée [ par xklibur ] hello world,ben voila mon problème. Je fait une application qui utilise des procédure stockée sur un serveur microsoft sql server 7.Dans mon applicati Problème d'icone de l'application [ par Adelain ] J'ai un ptit problème qd j'essaie de modifier l'icone de mon appli Delphi 5: je recois le mesag d'erreur "Image îcone incorrecte". Pourtant l'icone qu PROGRAMME A MODULE [ par LeGuepard ] Bonjour,J'ai imaginé un logiciel à modules interchangeables qui fonctionnerait comme suite :Un module A qui est en fait un Form avec différents compos Problème avec ClientSocket et ServerSocket [ par Peaches ] Bonjour, j'ai un problème avec mes deux application (l'une client et l'autre serveur) a savoir que quand le serveur est lancé sur mon ordinateur le cl ShellListView ??? [ par ni69 ] Bonjour,J'ai un autre problème (toujours avec une ShellListView... il faut croire qu'elles comportent quelques bizarreries ! )Quand je lance un raccou fermer une form [ par Adidas2 ] Salut à tous,J'explique mon problème :Je lance une application grâce à mon propre programme seulement l'application fraichement lancée ouvre une fenêt Problème d'alias ? [ par ALAIN3F ] Bonjour, je suis débutant et je pense que la solution est très simple! J'ai fait une application qui utilise 2 bases paradox, j'ai tout mis dans un mê problème avec OLE [ par OrsE ] Salut tout le monde! Voilà j'affiche un document word dans un tolecontainer, ça marche sans soucis. Je crée l'objet dans le container en faisant Cre


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales