begin process at 2012 05 25 18:59:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Mutimédia

 > 

Image & Vidéo

 > 

redimension d'un Timage


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

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

Membre Club

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

begueradj

c'est en quel langage ?
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

rt15

Membre Club Administrateur CodeS-SourceS
Bonjour,

A l'avenir, pour une question Delphi, merci de poster dans un thème Delphi, pas dans le bar.

[ Déplacé sur delphifr ]


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,998 sec (3)

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