Comment le forum fonctionne-t-il ?

Signaler
Messages postés
4
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
4
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
9 mars 2007
-
J'ai posées des questions très élémentaites :comment poser un bitmap sur mon applicatio, comment imprimer le contenu d'une list box .
Je ne retrouve pas trace ce ces questions et bien sûr pas d'éventuelles réponses et je ne peux pas rechercher à partir de mon pseudo

8 réponses

Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
oups. j'ai oublié ça:

Tu peux voir tes message en regardant ta fiche:

mon compte | parametre | mon compte | voir ma fiche

A+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
4
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
9 mars 2007

Bon, avec l'aide de Delphi, j'ai essayé la source suivant :
procedure TForm1.FormCreate(Sender: TObject);


 var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('le_tapis.bmp');
    Form1.Canvas.Brush.Bitmap := Bitmap;
    Form1.Canvas.FillRect(Rect(0,0,256,256));
  finally
    Form1.Canvas.Brush.Bitmap := nil;
    Bitmap.Free;
  end;


end;


end.
Ca ne plante pas, le bitmap est sous le répertoire, mais il ne s'affiche pas.
Je précise que j'arrive à faire fonctionner mon microonde ET que j'ai programmé en turbo pascal un programme inachevé, certes, mais dont je tiens à votre disposition l'exe et même les sources si cela vous interesse.
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
@plrustic:

Il faut bien faire attention à ne dessiner sur la fiche QUE dans l'évènement OnPaint sous peine de ne rien voir s'afficher même si le code de dessin semble correct...

Essaye donc ceci et dis nous si ça fonctionne ou non ...
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Oui, Florenth t'a donné la solution.

J'ajouterai qu'il te faut déclarer Bitmap en variable globale, puisque tu vas le créer dans OnCreate de la Fiche et le détruire à la fin dans OnDestroy.

Donc ça devrait donner ça :

var Bitmap: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('le_tapis.bmp');
  except
    // ...
  end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Brush.Bitmap := Bitmap;
  Canvas.FillRect(Rect(0,0,256,256));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Bitmap.Free;
end;

Bonne prog'
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
Re,

mon objectif n'était pas de mettre en doute tes capactié de cuisiner ou de programmeur. Seulement de t'expliquer la raison probable de l'effacement de tes post. Tu m'en voit désolé si je t'ai vexé.

En fait, c'est très simple et facile à "trouver" en tatonnant. Alors, soyont plus explicite:

"poser un bitmap sur mon applic":
 avec un composant: TImage:

1. poser un composant Timage sur une form.
2. double cliquer sur le champ "picture" dans l'inspecteur d'objet
3. cliquer sur "charger"
4. choisir le fichier
5. OK, OK.

-> le bitmap est sur la form. Les données seront intégrée à l'exe. (pas besoin de fichier externe)
( aucune ligne de codé tapée)

(plus d'info dans l'aide. Index: "Image, composant")

TImage: regarde particulièrement les proprietés
- stretch
- autosize
- center
- Picture (TPicure.LoadFromFile, ...)

A+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
4
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
9 mars 2007

Bonjour.
C'est encore moi qui n'ait pas avancé d'un pouce.
Je continue à l'occasion d'errer dans l'aide de Delphi sans résultat appréciable.
Je n'ai pas encore trouvé dechamp "picture" dans un inspecteur d'objet. Le code suivant ne plante
pas à la compilation... mais n'affiche rien à l'execution :

unit Unit1;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;


type
  TForm1 = class(TForm)
  procedure TForm1.FormCreate(Sender: TObject);
  procedure TForm1.formpaint(Sender: TObject);
  procedure TForm1.FormDestroy(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }


  end;


var
  Form1: TForm1;


implementation


{$R *.dfm}


var Bitmap: TBitmap;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('le_tapis.bmp');
  except
    // ...
  end;
end;


procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Brush.Bitmap := Bitmap;
  Canvas.FillRect(Rect(0,0,256,256));
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
  Bitmap.Free;
end;


end.

Pourtant le bitmap 'le_tapis.bmp'est bien là sous le même répertoire et il est bien lu par Paint ou n'importe quel autre logiciel de lecture des .BMP, sauf Delphi.

Avec l'espoir d'enfin démarrer, je vous remercie d'avance
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
salut,

il y a plusieurs solutions pour "voir" un bitmap sur ta form:
A. le dessiner dans le Paint.
B. utiliser un compo pour l'afficher. (Timage)

Explication Solution B:
Pour le "poser sur ton applic", utilise un compo TImage. Si tu suite la marche a suivre donnée dans mon précédent post, tu verra ton image en moins d'une minutes sur ta form. (au design time et au run time)

Dans ton code, je vois que tu n'as PAS posé un composant TImage sur ta form. (pas 1.)

As-tu lue l'aide de TImage? TPicture?

Explication solution A:
Je vois dans ton code que tu essaie de dessiner toi même le bitmap dans le paint. Cela devrait fonctionner, mais cela n'est PAS la méthode que je t'avais expliquée. (c'est pour ça que tu ne voit pas le TPicture )

A titre d'exemple, pour dessiner le fond de  ma form en mosaic j'utilise ce code dans une de mes applic:

Formcreate
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('le_tapis.bmp');
    Canvas.Brush.Handle := CreatePatternBrush(Bitmap.Handle);
  except

paint:
Canvas.FillRect(ClientRect);

En espérant que cela fonctionne cette fois,

Loda

PS: évite les nom de var globale genre "Bitmap". préfère "WallPaperBitmap" ou
qqch du genre. (cela t'évitera des conflits de nom plus tard)

<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
4
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
9 mars 2007

Merci, cette fois j'ai avancé d'un poil : je vois mon bitmap.
Ca marche ...mais presque trop : je n'ai pas encore écrit une ligne de code !
Ce "tapis_bmp" représente un tapis de cartes et je voudrais (avec du code ) disposer autour les 52 bitmat qui sont les cartes d'un jeu de bridge et que j'ai par ailleurs.
Mais avant d'en ranger 52, je dois poser le premier sur ma form1 mettons l'as de pique à la place que j'ai choisie par programmation selon le joueur auquel il est distribué.
Comme tu le vois le chemin est encore bien long et tu peux te décourager...
Si tel n'est pas le cas,soit en remercié :
C'est l'adaptation à Delphi qui me pose le problème, pas le langage pascal.