|
L'annulation permet d'annuler l'opération effectué juste
avant.
Il y a deux sortes d'annulation suivant le type de programme.
- Annulation graphique
- Annulation texte
L'annulation graphique est utilisé lorsque l'on se sert le
plus souvent du composant TImage.
L'annulation texte en Delphi est utilisé lorsque l'on se sert
du composant TMemo ou TRichEdit.
Pour effectuer une annulation
graphique en Delphi, on utilisera un bitmap.
Nous allons créer le bitmap puis sauvegarder le contenu du
bitmap.
procedure
TForm1.Button1Click(Sender
: TObject);
begin
Memo1.Undo;
end; |
|
Annulation dans un Memo |
[ 08-10-2001 ] |
Permet
d'annuler la dernière operation dans un memo.
Télécharger : [5
Ko] [
undomemo.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
Pour effectuer une annulation texte,
on va utiliser la fonction undo permettant d'annuler la dernière
opération.
Contrairement au composant TMemo, il n'y a pas de fonction undo avec
le composant TImage.
Voici quand même une astuce pour faire une annulation.
Nous avons besoin d'un bitmap.
public
{
Déclarations publiques }
bmpa : TBitmap;
end; |
|
Ensuite, il faut créer le bitmap
lors de la creation de la fiche et le liberer lors de sa destruction.
procedure
TForm1.FormDestroy(Sender: TObject);
begin
bmpa.Free; //Libère le bitmap
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bmpa:=TBitmap.Create; //Création
du bitmap
end;
|
|
Ensuite, il faut charger un fichier dans
le composant TImage.
procedure
TForm1.Ouvrir1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;
end; |
|
Pour visualiser l'annulation sur
une image, il faut que l'image soit modifier.
Ici, nous allons effectuer un effet grisatre sur l'image(vous pouvez faire
autre chose).
procedure
TForm1.Grisatre1Click(Sender: TObject);
Var Rouge,vert,bleu,moyenne: Byte;
px,py: Word;
couleur: Longint;
begin
Screen.Cursor := crHourglass; //Copie
image1 dans bmpa
bmpa.Assign(Image1.Picture.Bitmap);
Annuler1.Enabled:=True; //Annulation
est disponible
try
//Taches a effectuer
for Py:=0 to (Image1.Height-1) do
for Px:=0 to (Image1.Width-1) do
begin
Couleur:=ColorToRGB(Image1.Canvas.Pixels[px,py]);
Rouge:=0;
Vert:=0;
Bleu:=0;
Bleu:=Couleur div 65536;
Vert:=(Couleur-(Bleu*65536)) div 256;
Rouge:=(Couleur-(Bleu*65536))-(256*Vert); moyenne:=(Rouge+Vert+Bleu)
div 3; Image1.Canvas.Pixels[px,py]:=RGB(moyenne,moyenne,moyenne);
end;
finally
Screen.Cursor := crDefault;
end;
end; |
|
Voici l'astuces pour annuler l'effet grisatre(dans notre exemple).
procedure
TForm1.Annuler1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.Assign(bmpa); //Image
charge le bitmap
Annuler1.Enabled:=False; //Annulation
n'est plus disponible
end; |
|
Annulation graphique dans
une Image |
[ 08-10-2001 ] |
Permet
d'annuler la dernière operation dans une image.
Télécharger : [7
Ko] [
angraphi.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|