Probleme OnActivate

Tank01 Messages postés 106 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 10 novembre 2006 - 16 juin 2006 à 08:55
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 - 16 juin 2006 à 19:58
Bonjour,

J'ai un proleme des plus bénins en delphi !!

Je créer une application qui doit tout simplement utiliser des Texout afin d'écrir des textes sur un canvas de type TBitmap.
Le problème est que mon canvas se lance quand je compile, mais il est vide et rien ne s'y passe. Je sais d'avance que le problème ne viens pas de mes texout car mon programme fonctionnais très bien sur un canvas standart. J'ai juste vouler changer afin que cela se passe sur un canvas TBitmap. Je crois avoir trouvé la source du problème : J'ai mis deux Showmessage, un dans le
"TForm1.Activate();", ici rien ne se Passe :(:(
En revanche, j'ai mis un deuxième showmessage dans le TForm1.formcreate(Sender: TObject);, et la le message apparait.
Cela veut dire qu'on ne rentre jamais dans mon onActivate. Je tiens à préciser que ma procédure d'affichage des textes, se trouve dans le OnActivate.
Voici le début de mon code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StrUtils,
  StdCtrls,printers;

type
  TForm1 = class(TForm)
   // procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Activate();
    procedure FormDestroy(Sender: TObject);

  public

  end;

var
  Form1: TForm1;
  Bitmap1: TBitmap;
  ligne_to_read:string;
  value:char;
  position_x,position_y,index_esc,line_spacing,vmi,hmi,value_int:integer;
  font_spacing:boolean;
  procedure decrypte_file_and_affiche();//Procedure globale de décryptage ( ouverture du fichiern lecture ligne à ligne, recherche de sequences ESC decryptage et affichage ! attention : Procédure Mere !)
  procedure RechercheCommande(var v:string; var cmd:char);
  procedure decrypte_sequence_ETk();//decrypte la sequence ESC
  procedure decrypte_sequence_ETl();//decrypte la sequence ESC
  procedure decrypte_sequence_ETa();//decrypte la sequence ESC
  procedure decrypte_sequence_U();//decrypte la sequence ESC
  procedure decrypte_sequence_S();//decrypte la sequence ESC
  function Str_real_to_int(string_to_convert:string):integer;

implementation

{$R *.DFM}

procedure TForm1.Activate();
  begin
    showmessage('activate');
    decrypte_file_and_affiche();
  end;

procedure TForm1.formcreate(Sender: TObject);
  begin

    bitmap1:=TBitmap.Create;
    showmessage('form.create');
  end;

procedure TForm1.formDestroy(Sender: TObject);
  begin
    bitmap1.free;// libération des ressources utilisées
  end;

Voila je vous remercie d'avance, bonne journée à tous !

----( | TanK | )---- 

3 réponses

moldov Messages postés 165 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 10 novembre 2008
16 juin 2006 à 09:50
Salut,

Pour ton activate a tu selectionner la methode FormActivate de la form, car celle ci fonctionne.

A meme titre que la FormCreate tu a FormActivate et cette methode est exécuter après la FormCreate.

Je sais aps si j'ai bien répondu a ton probleme.
Merci

Bonne Prog
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 juin 2006 à 09:57
salut

apparament tu n'as pas fait appeller la procédure activate par la form


si tu essaies d'apppeler procedure TForm1.Activate(); par le onActivate
tu auras une erreur de compilation (d'ailleur cette procédure n'est pas
sélectionnable par l'inspecteur d'objet la bonne syntaxe est:


procedure TForm1.FormActivate(Sender: TObject);

begin

    showmessage('activate');


end;


@+

jlen
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
16 juin 2006 à 19:58
Salut,

Dans ton cas,  l'événement onShow de Form1 me parait plus indiqué que onActivate (qui est appelé chaque fois que la fiche devient active).

A +
Thierry
0
Rejoignez-nous