begin process at 2010 02 09 22:24:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > MÉMORISE SIMPLEMENT LA POSITION ET LA TAILLE DE VOS FENÊTRES

MÉMORISE SIMPLEMENT LA POSITION ET LA TAILLE DE VOS FENÊTRES


 Information sur la source

Note :
Aucune note
Catégorie :Trucs & Astuces Classé sous :Mémoriser, Form, left, top, Position Niveau :Débutant Date de création :25/08/2008 Date de mise à jour :26/08/2008 16:52:06 Vu / téléchargé :3 147 / 143

Auteur : RURUInc

Ecrire un message privé
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

Utilisation simple :
- mettre ParametreFenetre.pas dans votre projet

Dans le Show de la form
procedure TForm3.formCreate(Sender: TObject);
begin
LirePositionFenetre(Self, 'Setting');
end;

Dans le Close de la form
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  EcrirePositionFenetre(Self, 'Setting');
end;

Source

  • unit ParametreFenetre;
  • (*************************************************
  • Author: BuzzLeclaire, France.
  • E-mail:
  • rainconnu@free.fr
  • Testé avec 7.
  • Cet unit peut librement être utilisé ou distribué.
  • 25.08.2008
  • ***************************************************)
  • interface
  • uses
  • Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  • StdCtrls, ExtCtrls, IniFiles;
  • Procedure LirePositionFenetre(Fenetre: TForm; NomFichier: String);
  • Procedure EcrirePositionFenetre(Fenetre: TForm; NomFichier: String);
  • implementation
  • {$R *.DFM}
  • Uses UPath;
  • // sur une idée de Cirec Patch par CSIDL
  • Const CSIDL_TEMPLATES = $15; // pour ne pas déclarer uses ShlObj
  • Procedure LirePositionFenetre(Fenetre: TForm; NomFichier: String);
  • Var
  • Fichier_Ini: TIniFile;
  • Begin
  • // Path[CISDL_TEMPLATES donne le chemin MesDoc de l'utilisateur courant
  • // On créer ou on lit le fichier
  • Fichier_Ini := TIniFile.Create(Path[CSIDL_TEMPLATES] + NomFichier + '.ini');
  • Try
  • if Fichier_Ini.SectionExists(Fenetre.Name) then
  • begin
  • // On récupère les données si il y en à
  • Fenetre.Left := Fichier_Ini.ReadInteger(Fenetre.Name, 'Left', 0);
  • Fenetre.Top := Fichier_Ini.ReadInteger(Fenetre.Name, 'Top', 0);
  • // si la fenêtre n'ai pas taillable Height, Width reste inchangé (sauf si on touche directement le ini
  • Fenetre.Height := Fichier_Ini.ReadInteger(Fenetre.Name, 'Height', 0);
  • Fenetre.Width := Fichier_Ini.ReadInteger(Fenetre.Name, 'Width', 0);
  • end;
  • Finally
  • Fichier_Ini.Free;
  • end;
  • end;
  • Procedure EcrirePositionFenetre(Fenetre: TForm; NomFichier: String);
  • Var
  • Fichier_Ini: TIniFile;
  • WindowPlacement : TWindowPlacement;
  • Begin
  • WindowPlacement.length:=SizeOf(WindowPlacement);
  • WindowPlacement.flags := 0;
  • WindowPlacement.showCmd := 1;
  • // récupération de l'emplacement ou se situe la fiche lorsque WindowState est en wsNormal
  • GetWindowPlacement(Fenetre.Handle,@WindowPlacement);
  • With Fichier_ini do
  • Begin
  • // Path[CISDL_TEMPLATES donne le chemin MesDoc de l'utilisateur courant
  • // On créer ou on lit le fichier
  • Fichier_Ini := TIniFile.Create(Path[CSIDL_TEMPLATES] + NomFichier + '.ini');
  • Try
  • // On alimente la section
  • WriteInteger(Fenetre.Name, 'Left', WindowPlacement.rcNormalPosition.Left);
  • WriteInteger(Fenetre.Name, 'Top', WindowPlacement.rcNormalPosition.Top);
  • WriteInteger(Fenetre.Name, 'Height', WindowPlacement.rcNormalPosition.Bottom - WindowPlacement.rcNormalPosition.Top);
  • WriteInteger(Fenetre.Name, 'Width', WindowPlacement.rcNormalPosition.Right - WindowPlacement.rcNormalPosition.Left);
  • Finally
  • Fichier_Ini.Free;
  • end;
  • end;
  • end;
  • end.
unit ParametreFenetre;
(*************************************************
Author: BuzzLeclaire, France.

E-mail:
rainconnu@free.fr

Testé avec 7.

Cet unit peut librement être utilisé ou distribué.

25.08.2008

***************************************************)


interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, IniFiles;

  Procedure LirePositionFenetre(Fenetre: TForm; NomFichier: String);
  Procedure EcrirePositionFenetre(Fenetre: TForm; NomFichier: String);

implementation

{$R *.DFM}
Uses UPath;

// sur une idée de Cirec Patch par CSIDL
Const CSIDL_TEMPLATES = $15; // pour ne pas déclarer uses ShlObj

Procedure LirePositionFenetre(Fenetre: TForm; NomFichier: String);
Var
Fichier_Ini: TIniFile;

Begin
  // Path[CISDL_TEMPLATES donne le chemin MesDoc de l'utilisateur courant
  // On créer ou on lit le fichier
  Fichier_Ini := TIniFile.Create(Path[CSIDL_TEMPLATES] + NomFichier + '.ini');
  Try
    if Fichier_Ini.SectionExists(Fenetre.Name) then
    begin
    // On récupère les données si il y en à
        Fenetre.Left := Fichier_Ini.ReadInteger(Fenetre.Name, 'Left', 0);
        Fenetre.Top := Fichier_Ini.ReadInteger(Fenetre.Name, 'Top', 0);

    // si la fenêtre n'ai pas taillable Height, Width reste inchangé (sauf si on touche directement le ini
        Fenetre.Height := Fichier_Ini.ReadInteger(Fenetre.Name, 'Height', 0);
        Fenetre.Width := Fichier_Ini.ReadInteger(Fenetre.Name, 'Width', 0);
    end;
  Finally
    Fichier_Ini.Free;
  end;
end;

Procedure EcrirePositionFenetre(Fenetre: TForm; NomFichier: String);
Var
  Fichier_Ini: TIniFile;
  WindowPlacement : TWindowPlacement;
Begin
  WindowPlacement.length:=SizeOf(WindowPlacement);
  WindowPlacement.flags := 0;
  WindowPlacement.showCmd := 1;
  // récupération de l'emplacement ou se situe la fiche lorsque WindowState est en wsNormal
  GetWindowPlacement(Fenetre.Handle,@WindowPlacement);
  With Fichier_ini do
  Begin
    // Path[CISDL_TEMPLATES donne le chemin MesDoc de l'utilisateur courant
    // On créer ou on lit le fichier
    Fichier_Ini := TIniFile.Create(Path[CSIDL_TEMPLATES] + NomFichier + '.ini');
    Try
    // On alimente la section
      WriteInteger(Fenetre.Name, 'Left', WindowPlacement.rcNormalPosition.Left);
      WriteInteger(Fenetre.Name, 'Top', WindowPlacement.rcNormalPosition.Top);
      WriteInteger(Fenetre.Name, 'Height', WindowPlacement.rcNormalPosition.Bottom - WindowPlacement.rcNormalPosition.Top);
      WriteInteger(Fenetre.Name, 'Width', WindowPlacement.rcNormalPosition.Right - WindowPlacement.rcNormalPosition.Left);
    Finally
      Fichier_Ini.Free;
    end;
  end;

end;

end.

 Conclusion

GetWindowPlacement

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 août 2008 16:22:05 :
J'ai changer l'appel de Form2 à Self J'ai ajouter des Try, finally J'ai ajouté des with do begin
25 août 2008 16:23:28 :
- J'ai changé les appel LirePositionFenetre(Form3, 'Setting'); en LirePositionFenetre(Self, 'Setting'); - J'ai ajouté With Do begin - J'ai ajouté des clause Try, Finally
25 août 2008 16:51:49 :
J'ai modifier tout le projet pour avoir des .pas cohérente et plus parlante.
25 août 2008 17:12:06 :
Correction Try trop Haut
25 août 2008 18:11:57 :
Alors pour mieux coller : - Il apparaissaient un probleme si on maximizais les fenetres maximizable. Alors j'ai pris le GetWindowPlacement.
26 août 2008 16:52:07 :
J'ai donc ajouter l'acces par le systeme de Cirec Fichier_Ini := TIniFile.Create(Path[CSIDL_TEMPLATES] + NomFichier + '.ini'); Ce qui sur mon poste envoir mon fichier setting à C:\Documents and Settings\RURUInc\Modèles

 Sources de la même categorie

Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES par Bacterius
Source avec Zip Source avec une capture IMAGE DANS UN TDBGRID par HAFTARIFOUAD
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U... par cirec
Source avec Zip Source avec une capture MESSAGEDLG PERSONNALISÉ par HAFTARIFOUAD
Source avec Zip Source avec une capture COMMENT DESSINER SUR UN TCANVAS LE TEXTE D'UNE FORMULE CHIMI... par pseudo3

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BACKUP RESTORE FIREBIRD OU INTERBASE par cantador
Source avec Zip Source avec une capture FORM TRÉS PERSONNEL (DESIGN) par matrix1
Source avec Zip Source avec une capture FENÊTRE UN PEU CUSTOMISÉE par rt15
Source avec Zip EXEMPLE D'EDITEUR DE FENÊTRE (CONTENANT DES COMPOSANTS) : I... par assemple
Source avec Zip Source avec une capture UN BITMAP SUR LA BARRE DE TITRE par asciidefond

Commentaires et avis

Commentaire de JulioDelphi le 25/08/2008 15:15:19 administrateur CS

Salut,
Un peu trop "simplement" !
Essaie avec des TRY/EXCEPT/FINALLY et utilise le mot clé WITH pour Fenetre et Fichier_ini.

Commentaire de windob le 25/08/2008 16:15:55

En plus, le code affiché doit-etre une version obsolete ou alors non terminée puisque tes méthodes sont censées prendre comme 2e argument, une String de nom du fichier ini.

Ici, tu définis encore le nom de fichier en dur dans lec ode.

Commentaire de cirec le 25/08/2008 16:19:14 administrateur CS

Salut,

effectivement beaucoup trop "simpliste" ...

regarde du coté de Get/SetWindowPlacement ... avec cette API tu tu récupèreras la taille et la positions mais aussi d'autres éléments comme l'état (Maximized, Minimized, Normal) ...

Et fais un peut de ménage dans ton Zip les fichiers *.ddp, *. dcu et le Desktop.ini peuvent êtres supprimés sans soucis ... et dans ton cas tu peux aussi supprimer le *.cfg et le *.dof qui ne sont pas utile à ce projet ;)

et profites en pour renommer tes composants et tes fiches "Form" et donne un nom à ton projet ...

Commentaire de RURUInc le 25/08/2008 16:54:00

Julio Delphi :
J'ai ajouté ta remarque

Windob :
Je m'étais planté de version. Merci

Cirec :
Je vais regardé les Get et Set de windows, que je connais pas.
J'ai vidé les fichiers.
J'ai renommé le projet.
Merci

Commentaire de JulioDelphi le 25/08/2008 16:54:50 administrateur CS

Les TRY sont trop haut :/

.create
try
...
except
.free

Commentaire de RURUInc le 25/08/2008 17:12:36

Merci j'ai corrigé.

Commentaire de Francky23012301 le 25/08/2008 17:27:09

Sans vouloir faire mon enquiquineur, quel est l'intéret de ce source ? Tu ne fais qu'enregistrer dans un fichier ini la valeur d'un integer (Form.Width par exemple).

Ce que tu fais avec une form on pourrait le faire avec un Label, un Edit, un Treeview enfin avec tout les composants qui puissent exister.

Meme si ca part d'un bon sentiment de ta part, a mon gout ca pollue plus qu'autre chose (désolé je veux pas etre dur mais bon). Meme en snippet ton source est trop limite pour etre publiable.

Commentaire de JulioDelphi le 25/08/2008 17:33:05 administrateur CS

Oui, bon ça vole pas très haut, je ne dis pas que la durée de vie de la source sera longue non plus, mais là, si nos commentaires peuvent l'aider un minimum, ça sera ça de pris pour lui :]

Commentaire de nethacker le 25/08/2008 17:37:37

Très utile ! pour des gestionnaires de fenêtres !

Commentaire de Francky23012301 le 25/08/2008 18:01:01

Pas de blem Julio : il pensait bien faire, c'est plus maladroit qu'autre chose  .... ca arrive à tout le monde.

Si on veut enregistrer les caractéristiques d'une form, voila une procédure plus simple et plus générale :

Procedure Save_FormParam(AFile:String;AForm:TForm);
Var
  FS:TFileStream;
Begin
  FS:=TFileStream.Create(AFile,fmCreate);
       Try
        FS.WriteComponent(AForm);
      Finally
        FS.Free;
      End;
End;

{>>Procédure pour ouvrir un Mix dans un fichier Mix}
Procedure Open_FormParam(AFile:String;AForm:TForm);
Var
  FS:TFileStream;
Begin
  //On crée FS
  FS:=TFileStream.Create(AFile,fmOpenRead);
      Try
        FS.ReadComponent(AForm);
        AForm.Refresh;
      Finally
        FS.Free;
      End;
End;

Commentaire de RURUInc le 25/08/2008 18:16:04

Bonjour tout le monde.
Franky si ta form comporte 1500 composant je te raconte pas la lenteur à un moment ? non ?
Moi personnelement j'ai ma formprincipal qui peut comporter 1300 Panel.
Bref.

J'ai Amélioré mon progr pour faire appel au WindowsPlacement beaucoup plus précis si les fiche ne sont pas wsnormal.

Qu'en pensee vous ?

Commentaire de RURUInc le 25/08/2008 18:27:28

... (suite)
L'idée principal, c'était de garder uniquement la position de mes fenêtre car dans mon source que je suis entrain de faire, j'en avais pas mal.
Et puis encore une fois j'ai une formprincipal avec au minimum 200 PAnel au maximum 1500.
Je vais également ajouter l'enregistrement des colonnes (taille etc..) d'un DBGrid, car j'en est également besoin.

L'utilisation de GetWindowPlacement était obligatoire car sinon lorsqu'on agrandit la fenêtre avec le 'Agrandir' cela ne fonctionais plus lol.

Et puis grace à vos commentaires j'avance.

Commentaire de cantador le 25/08/2008 18:58:53

L'utilisation de GetWindowPlacement était obligatoire car sinon lorsqu'on agrandit la fenêtre avec le 'Agrandir' cela ne fonctionais plus lol.

Voilà enfin la bonne explication de ce source..

Commentaire de Francky23012301 le 25/08/2008 20:20:39

Désolé mais je ne suis pas d'accord avec toi pour différentes raisons

1)Un fichier Ini est limité à 64 Ko ce qui va te poser probleme.

2)Ton code est long alors que le mien est court : Donc tu te risques à plus de problemes, plus de beug.

3)Mon code est plus optimisé et je suis sur qu'en définitif l'utilisation des flux est plus rapide que l'écriture/lecture dans un fichier Ini.

4)La méthode que j'ai cité ne te limite pas uniquement à quelques propriétés : les couleurs, la visibilité, le alphablend ect ect sont pris en compte.

Enfin à toi de voir mais pour moi utiliser un fichier Ini pour enregistrer les parametres d'un composant, n'est pas la méthode la plus efficace

Commentaire de RURUInc le 25/08/2008 20:44:46

Mise à part notre différence :
Toi d'enregistre TOUT les composants d'une forme.
Si dans ma forme je créer dynamiquement des composants, cela peut devenir rapidement ingérable !! en plus si ses composants dynamiques doivent être détruit, là cela devient le gros bordel.

Pour le fichier ini il y aura largement de quoi enregistrer 1000 fenêtres étant donné que j'ai que 4 variable par clé. Et j'ai rarement vu des softs qui ont ce nombre de fenetre!!!

Pour le coter bug, il est facile d'utiliser la base de registre si tu préfère ou même un fichier xxxxxx.ini.txt
Mais au moins le Ini ou ini.txt tu peux l'ouvrir et taper en dur, si besoin.

Par rapport au titre de ma proposition :
[MÉMORISE SIMPLEMENT LA POSITION ET LA TAILLE DE VOS FENÊTRES]
Je crois que cela fonction non ?
je pense pas avoir écris
[enregistrement de tous les composants d'une fiche]

Pour Terminé :
J'aime proposé des astuces qui sont compréhensible pour tous et pas des propositions TOUT english où il te faut 3 jours pour un débutant pour comprendre tel ou tel fonction. C'est mon cas... lol

Finalement, j'ai avancé au fur et à mesure de vos remarques qui restaient dans l'esprit du titre.

Je te remercie beaucoup de tes commentaires.

Commentaire de cantador le 25/08/2008 21:54:06

@RURUInc :
la proposition d'API par cirec me semble plus adaptée.

Commentaire de RURUInc le 25/08/2008 23:54:23

C'est claire sans la remarque de Cirec je n'aurai pas remarqué se bug. Le passage des paramètres par GetWindowPlacement fonction trés bien.

Merci.

Commentaire de Loda le 26/08/2008 09:32:28

salut!

j'aime bien l'idée! cependant:

- tu ne peux pas écrire dans le dossier de l'application sous Vista. Il faut mettre ton ini dans ApplicationData.
Regardes l'excellent utilitaire de cirec:
http://www.delphifr.com/codes/UTILITAIRE-ACCEDEZ-FACILEMENT-REPERTOIRES-SYSTEME-PEUT-IMPORTE-LEURS_39080.aspx

- Aussi, mais c'est discutable, je mettrais le nom du fichier ini en "dur" (ie: une var global) et je passerais en paramètre le nom de la section. Ce qui te permettrais de sauver plusieurs fenêtres sans te baser sur le nom. (Je crée mes fenêtre dynamiquement, et j'utilise une var pour stocker la référence de la fenêtre. imagine un programme de download par exemple.) Après, tu peux toujours passer le nom en paramétrés... ou faire deux signatures de méthodes.

- c'est un détails, mais je ne voix pas l'intérêt de mettre la var FichierIni en global. par contre, je voie un problème potentiel de concurrence si une fenêtre est détruite lorsqu'une autre est crée...

- les .dcu ne sont pas nécessaire dans les zip de sources.

- si tu as réellement plus de mille composant sur une de tes forms, je te recommande de revoir le design. peut-être remplacer par un drop-down list ou un treeeview... Imagine le gars qui utilise le clavier pour déplacer le focus d'un compo à l'autre !


@Francky:

Désolé, mais je ne suis pas d'accord avec toi sur l'idée de garder *toute* les propriétés. En effet, typiquement, seul la position (et ev. taille) de la fenêtre vas changer d'une exécution à l'autre. De plus, habituellement, tu crée la form invisible et tu l'affiche plus tard. Mais elle serra visible lorsque tu la détruira.
Aussi, c'est rare que tu change la couleur, l'aplhablend, le nombre et positions des compos durant l'exécution. Et si c'est le cas, tu devrait sûrement les recrée de la même manière (cad avec un liens sur des données par exemple) Et dans ce cas, évidement, ce gestionnaire de fenêtre est dépassé (aussi ce n'est pas sont but).

le WriteComponent() reste une méthode génial et pratique (et trop peu utilisée) pour sauver l'état d'un compo, mais je ne pense pas qu'elle soit adapté pour ce problème.

Commentaire de RURUInc le 26/08/2008 12:14:15

Salut LODA :
- Je vais regarder l'utilitaire et je vais tentez de mis inspirez, c'est qu'on oubli trop peux NOTRE EXCELLENT WINDOWS VISTA.
- Je vais ajouter cette fonctionnalité Nom en dur ou choix du nom de la fenêtre.
- Si ta fenêtre est détruite mets la procédure d'écriture dans le ondestroy ?
- ok pour les dcu

- pour l'histoire de mes composants l'utilisateur n'a nul besoin d'entrée un l'intérieur, tout ce gere à la souris. Je suis entrain de faire un logiciel Planning (je sais qu'il y en à des tas, mais comme le mien AUCUN lolol) je fignole et j'arrive à l'impression maintenant.

Merci de tes commentaires.

Commentaire de RURUInc le 26/08/2008 16:56:38

J'ai fais quelque modif
1) Var Fichier_ini non public
2) Path du fichier avec le system de CIREC

Mais j'ai un probleme à la compilation il me fais bien mon exe qui marche bien. Mais j'ai quand même se message
ParametreFenetre.dfm : file no found
Bon je comprends le message, mais depuis que j'ai ajouté les UPath.pas et le .inc de cirec j'ai plus de fichier dfm. (je suis sur que vous connaissez ce genre de chose)

Commentaire de cirec le 26/08/2008 18:06:32 administrateur CS

oui il y a effectivement un problème ...
mais ce n'est en aucun cas dû à l'utilisation de mon code :p
ça ressemble plus à une erreur de ta part qu'autre chose ...

ParametreFenetre.DFM est un fichier inexistant et pour cause ParametreFenetre.PAS n'est pas une TForm !!!

Retire l'instruction {$R *.dfm} de l'unité "ParametreFenetre.PAS" et tout fonctionnera normalement

Commentaire de RURUInc le 26/08/2008 18:23:32

Tout a fait cirec, je ne remettais pas du tout en doute ton travail.
Effectivement comme un gros nigo j'avais copier coller direct et j'ai laissé se {$R *.dfm} mdr.

Merci.

Je continue pour la partie choix du nom des forms

Commentaire de RURUInc le 29/08/2008 09:52:54

Bonjour,

LODA je n'arrive pas à matérialiser ce que tu demandes.

Peux-tu où pouvez vous m'aider ?

Rappel de la demande de LODA :
- ....., je mettrais le nom du fichier ini en "dur" (ie: une var global) et je passerais en paramètre le nom de la section. Ce qui te permettrais de sauver plusieurs fenêtres sans te baser sur le nom. (Je crée mes fenêtre dynamiquement, ........ Après, tu peux toujours passer le nom en paramétrés... ou faire deux signatures de méthodes.

C'est faire les 2 signatures en même temps qui me pose problème.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pour que la form ne se cache pas sous barre de tache [ par cocowz ] Bonsoir,J'ai un truc c'est que quand je lance le projet... puis dans la form je peux choisir la position de ma form (en bas a gauche ou droite ou en h Roulette sur Timage [ par rivaud_renee ] J'ai posé un Timage sur un panel. Je déplace l"image sans problèmes ( voir code ci-après ); mais je souhaiterai également y faire un zoom ( plus et mo 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 Position Left maximum ? [ par jnmchl ] Bonsoir,Je place dynamiquement des boutons dans un scrollbox très très large ...Le problème c'est que à partir du moment ou le X càd le button.left dé probleme sur serpent [ par seb33000 ] salut, j ai un souci sur la progr de mon serpent, mon prof n a pas su m aider. j ai un message de violation a l execution. le serpent est un peu basic Position d'une fenêtre [ par catmldrd ] Bonjour, J'aimerais savoir la position de laform car je doit afficher une autre form dans la form principale;Si on déplace la forme principale alors MDI - Probléme de positionnement Left et Right [ par Spawnrider ] Bonjour, Je d&#233;veloppe une application utilisant des Forms MDI en Delphi 6. Je possede une MDI M&#233;re (Form Principale) et je souhaite cr&#23 Delphifr & Firefox.... [ par ELCouz ] Bonjour,Je ne sais pas si je suis le seul mais quand je copy/paste du code dune source jobtien plein de # ######## ...example (taken from http://www.d probleme avec dblookupcombobox? [ par abdousoft ] Salut j'ai une form contient un dblookupcombobox et qui contient une liste des codes des employers et une autre form avec un qrband de type </st Delphi vers C++ [ par Roulio52 ] Salut à tous !Je suis un petit débutant en C++,et je commence à créer un petit paint sous borland.J'ai un code DELPHI qui pourrait m'être super utile


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,811 sec (4)

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