Accueil > Forum > > > > redimension d'un Timage
redimension d'un Timage
mercredi 9 février 2011 à 09:14:29 |
redimension d'un Timage

bebertmalvau
|
Bonjour j'ai un petit probleme de comprehension sur Timage ou Tpaintbox
je veux construir une sorte de regle avec un Tpanel comme support graphique et un Timage ou TpaintBox pour dessiner mes lettres/chiffres
mon probleme se trouve que lorsque je veux agmmenter ma regle mon graphique ne reagit pas comme je le souhaite dans le code ci-dessous
2 types de regles Horizontale et verticale
pour la verticale pas de problemes
pour l'horizontale je suis oblige de donner un chiffre constant à mes colonnes sinon il se passe n'importe quoi si quelqu'un voit l'erreur que je commet merci de me renseigner
J'ai essayer avec un Paintbox
et les methode Canvas.draw() ou Canvas.CopyRect
Code Delphi : procedure Tform1.conf_PregleH;
var H,col:integer; chaine:string; Graph,tmp:Tbitmap; rect1:trect;
begin
//declaration des graphiques
graph:=Tbitmap.Create;tmp:=Tbitmap.Create;
pbh.Width:=8000;//on etend un maximum le graphique pour l'ecriture
col:=length(listeh.Items.Strings[0]); //nbr de colonnes
col:=17;//si je l'enleve ça marche plus
Pbh.Width:=col*gcase ;
//pregleh.Width:=pbh.Width+2; //on redonne la bonne taille au support
//construction du graphique
for h:=0 to col do
begin
//si on est en dessous de 26 on affiche en lettre
if col<26 then chaine:=chr(65+h) else chaine :=inttostr(h+1);
graph:= set_gromain(chaine,gcase);//construction du carré
tmp.Height:=graph.Height ; //hauteur de tampon
rect1.Left:= h*gcase; rect1.Right:=rect1.Left+gcase;
rect1.Top:=0;rect1.Bottom:=gcase;
//ici je ne sais pas se qui se passe
Pbh.Canvas.CopyRect(rect1,graph.Canvas,graph.Canvas.ClipRect);
//pbh.Canvas.Draw((h*gcase),0,graph);//construction du tampon graphique
end; // Fin construction graphique
//redimension de la regle
Pbh.Height:=33;// hauteur du graphique
Pregleh.Height:=33;//hauteur du support
//coin support left/top
pregleh.Top:=pvoletg.Top-pregleh.Height; //position au dessus de la regle
PregleH.Width:=pbh.Width;//largeur du graphique
//position du graphique left/top
pregleh.Left:=pvoletg.Left;//position gauche de la regle
Pregleh.Top:=Pvoletg.Top- Pregleh.Height-5;
//position du graphique
pbh.Top:=2;pbh.Left:=grille.Left;
//pbh.Width:=grille.Width; //largeur du graphique
//copy des numeros sur la regle
//pbH.Canvas.CopyRect(pbh.Canvas.ClipRect,tmp.Canvas,tmp.Canvas.ClipRect);
tmp.Free;graph.Free; //liberation des tampons
end;// fin confi regleH
procedure Tform1.conf_Preglev;
var v,lig:integer; chaine:string; Graph,tmp:Tbitmap;
begin
//declaration des graphiques
graph:=Tbitmap.Create;
pbv.Height:=8000;//hauteur maximum du graphique
lig:=listeh.Count;//nombre de lignes
pbv.Left:=0;pbv.Top:=0;
preglev.Height:=lig*gcase;
for v:=0 to lig do
begin
chaine:=Chiffre_romain(v+1);
graph:=set_gromain(chaine,gcase);
pbv.Canvas.Draw(0,v*gcase,graph);
end;
Pbv.Width:=graph.Width;
preglev.Width:= graph.Width+4 ;
Preglev.Top:=PvoletG.Top;
Preglev.Left:=pvoletG.Left-preglev.Width-10;
Preglev.Height:=PvoletG.Height;
pbv.Top:=grille.Top;
Pbv.Height:=grille.Height;
Preglev.BringToFront;
end;
|
|
mercredi 9 février 2011 à 15:22:08 |
Re : redimension d'un Timage

bolbola
|
Salut,
Est ce que tu peux vérifier que listeh.Items.Strings[0] <> Nil?
Tu peux me donner plus de détails sur cette variable?
|
|
mercredi 9 février 2011 à 18:32:36 |
Re : redimension d'un Timage

bebertmalvau
|
Bonjour j'ai un petit probleme de comprehension  sur Timage ou Tpaintbox
je veux construir une sorte de regle avec un Tpanel comme support graphique et un Timage ou TpaintBox pour dessiner mes lettres/chiffres
mon probleme se trouve que lorsque
listeH est rempli des le debut du programme
le principe du programme est baser sur les mots croisés une grille avec des cases bolquees ou non la listes H represente la matrice lignes ont toutes la meme longeur la regleH doit representée les colonnes La liste V les lignes Horizontales .
mon probleme est que quand je met un chiffre jusq'a 80 col:=80
et je fait la boucle pour afficher le graphisme
tout va pour le mieux mais quan je rentre un nombre sorti d'un calcul non complexe
col:=longueur de ligne DIV Taillecase
l'affichage s'arrete a 20 mes case s'aggrandissent au moment que je redimensionne le Panel et le Timage. je sais pas pourquoi
alors que je fait a peut pres la meme avec
lig:=nombre de Items.count-1 de listeH
cela marche mis à part que je me sert de la hauteur et dans l'autre procedure je me sert de la largeur donc dans uncas je manipule les X
dans l'aitre les Y
|
|
mercredi 9 février 2011 à 22:23:43 |
Re : redimension d'un Timage

WhiteHippo
|
Bonsoir
En passant, je ne sais pas si c'est la source de ton problème, mais il faut faire attention quand on veut calculer la taille d'une chaine de caractères à afficher de façon graphique.
La hauteur est souvent la même pour chaque caractère, donc à priori pas trop de problèmes, mais en largeur, la taille d'un caractère peut diffèrer grandement avec un autre en fonction de la police utilisée (Par exemple la largeur d'un "l" et d'un "D" peut être très différente dans le cas d'une police à chasse non fixe...).
Il ne faut donc pas utiliser la longueur d'une chaine de caractères, mais la longueur en pixels qu'occupera cette même chaine. Pour se faire, on utilisera la méthode du TCanvas "TextWidth". Et pour la hauteur on utilisera de même "TextHeight".
Ceci garantira que si tu changes ta police de caractères pour une autre, ou si tu changes sa taille par exemple, que ton calcul de largeur et de hauteur restera correct.
Cordialement. "L'imagination est plus importante que le savoir." Albert Einstein
|
|
jeudi 10 février 2011 à 08:37:36 |
Re : redimension d'un Timage

bebertmalvau
|
Bonjour j'ai un petit probleme de comprehension  sur Timage ou Tpaintbox
je veux construir une sorte de regle avec un Tpanel comme support graphique et un Timage ou TpaintBox pour dessiner mes lettres/chiffres
mon probleme se trouve que lorsque
merci pour vos reponses
je crois que j'ai trouvé une parade
j'ai declaré mon graphique en Début de procedure
et cela marche (Graphique-->Timage)
l'ennui c'est je comprend toujour pas l'erreur que j'ai fait avant
merci encore
Ps j'ai constuit une Unite pour le calcul de chiffre Romain
Chiffre_romain(X) renvois X en chiffre romain sous forme de String;
Tab_romain() revois une Commatext pouvant etre utisée avec des composants à Items (ListBox,Combox)
listbox1.Items.Commatext:=Tab_romain() ;
et vous avez une liste de 169 Chiffres Romains
je mesui arreter a 169 mais continuer la liste est tres facile
si vous desirez recuperez l'unite contactez moi
|
|
mardi 22 février 2011 à 15:04:56 |
Re : redimension d'un Timage
|
mardi 22 février 2011 à 18:32:39 |
Re : redimension d'un Timage

bebertmalvau
|
merci pour les conseils
Pour les chiffres Romain je l'ai Construit sous Delphi 7 mais Facilemement réutilisable
La fonction Setromain est juste le result d'un case nombreentier of
La fonction TabRomain est le Result d'une boucle
renvoyant une Chaine à virgule
|
|
dimanche 15 mai 2011 à 15:50:13 |
Re : redimension d'un Timage
|
Cette discussion est classée dans : graph, graphique, width, top, pbh
Répondre à ce message
Sujets en rapport avec ce message
Excel -- graphique par OLE [ par Sylvain11 ]
Salut, je tente t'écrire un code qui me permettrait de récupérer sous excel deux arrays sous forme d'un graph xy. J'arrive à importer sous Excel mes d
Evenement au redimensionnement d'un composant graphique [ par orelien ]
Bonjour,J'ai créé un composant graphique héritant de la classe TWinControl sur lequel je souhaiterais ajouter des évènements lors de son redimensionne
Problème de compilation avec l'unité Graph (turbo pascal) [ par Keanjyto ]
Bonjour,je m'excuse d'avance, n'ayant pas trouvé de section dédiée au Turbo Pascal, j'ai déposé dans une section généraliste pour le Delphi.Voici mon
Evènement onDrawCell d'un StringGrid [ par madcap ]
Bonjour tous le monde, J'ai créé un panel qui contient différents éléments, StringGrid, boutons, label, etc... Ce panel je le crée à l'exécution, il
Graphique [ par Kkgserge ]
Bonjour a tous je veux realiser un graphique avec le resultat d'une requete, mais je ne sais comment faire. Merci pour le coup de main. [^^!2]
Comment imprimer un graphique produit avec TCHART [ par DETHIER ]
Sous DELPHI 7 j'ai une fenetre qui m'affiche un graphique produit avec un TChart Je souhaiterais savoir s'il est possible de l'imprimer directement en
Aide pour Variable lié à une image bitmap [ par Minmrst ]
Bonjours, Il s'agit de mon premier post[^^happy13] Je suis étudiant en BTS IG en première année, et pour apprendre les algorithmes et la programmatio
Pb graphique en mode TSE serveur 2003 (sans droit administrateur) [ par frio ]
Bonjour Nous sommes éditeur de logiciels et nous avons un problème chez un client. Serveur 2003 Utilisateur en mode TSE Application DELPHI 6 Le prob
Propriété Brush et FBrush d'un composant [ par Jean_Jean ]
Bonjour, [^^pirate] Salerpipopette de propriétés... En fait, je voudrais que lorsque je pose mon composant, il ait une dimension définie ainsi que s
OpenGL + Delphi 2007 [ par sisi231 ]
Bonjour, j'ai Delphi 2007 et le dernier driver de ma carte graphique d'installé seulement aucun des tutoriels comme celui-ci : http://eraquila.develop
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|