cs_ibrahimakhalil
Messages postés28Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention11 mars 2011
-
24 nov. 2006 à 20:55
BELDJEBEL
Messages postés16Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 8 mars 2010
-
21 févr. 2010 à 16:01
BALDE THIERNO HAMIDOU ETUDIANT A L'UNIVERSITE DE CONAKRY EN INFORMATIQUE
Je suis sur un projet et je veux utiliser combobox pour creer une liste comme la feuille d'excel ou je peut mettre nom et prenoms date de naissance lieu pays mais
je ne parviens pas faire quelque chose de bien je demande l'aide
detaillée car je suis bébutant, et c'est mon prémier projet un peu
costaud puisque je doit faire un agenda ou je dois gerer les temps etc..
cs_ibrahimakhalil
Messages postés28Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention11 mars 2011 2 déc. 2006 à 20:20
je vous remercie beaucoup et
c'est serai ingrat de ma part de ne pas vous remercier, car ce que vous
savez pas c'est je suis en guinée et labas c'est n'est tous les jours
qu'on peut se connecter sur le web, donc priere de bien vouloir
m'excuser
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 24 nov. 2006 à 22:56
une autre solution :
Tu places sur une nouvelle fiche :
2 TEdit
1 TDateTimePicker
1 TButton
1 TComboBox
Type PMyRec = ^TMyRec; // Déclaration d'un type pointeur sur données Record
TMyRec = Record
FName: string; // Prénom LName: string; // Nom FDate: TDate; // Date de naissance end;
// Inscription des données dans TCombobox procedure TForm1.Button1Click(Sender: TObject);
var MyRecPtr: PMyRec;
begin New(MyRecPtr); // Nouveau pointeur sur données MyRecPtr^.FName : = Edit1.Text; // Mise à jour des données
MyRecPtr^.LName : = Edit2.Text;
MyRecPtr^.FDate := DateTimePicker1.Date;
// Enregistrement dans Combobox.Items.Object sous le nom LName
Combobox1.Items.AddObject(Edit2.Text, TObject(MyRecPtr));
end ;
// Lecture des données depuis TCombobox procedure TForm1.ComboBox1Change(Sender: TObject);
begin Edit1.Text : = PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FName;
Edit2.Text := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.LName;
DateTimePicker1.date := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FDate;
end ;
Tu remplis comme suit :
Edit1 pour le Prénom
Edit2 pour le Nom
DateTimePicker1 pour la date de naissance
puis tu cliques sur le button1 pour enregistrer les données dans le ComboBox1
tu répètes l'opérations deux fois au moins pour pouvoir tester
et ensuite tu cliques sur l'item de ton choix dans le ComboBox1 pour voir les données s'afficher dans les TEdit et le TDateTimePicker
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 25 nov. 2006 à 09:00
Certes, mon cher Caribensila, la prière de IBrahim est exaucuée mais j'ai bien peur qu'un cauchemar soit en train de naitre !
En effet, dans la solution proposée par Cirec, quid de la libération de mémoire ?
Voici une approche orientée objet et facilitant cette libération des objets créés :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class (TForm)
edFirstName: TEdit;
edLastName: TEdit;
btnAdd: TButton;
cbxUserData: TComboBox;
dtpBirthDate: TDateTimePicker;
procedure btnAddClick(Sender: TObject);
procedure cbxUserDataChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
{Déclaration d'un classe "helper" facilitant
la mémorisation des données dasn la liste déroulante}
TUserData = class
public
Firstname: string;
LastName: string;
BirthDate: TDate;
end;
procedure TForm1.btnAddClick(Sender: TObject);
var
UserData: TUserData;
begin
//Création d'un objet TUserData
UserData := TUserData.Create;
{On renseigne ses champs avec les valeurs saisies à l'écran}
UserData.Firstname := edFirstName.Text;
UserData.LastName := edLastName.Text;
UserData.BirthDate := dtpBirthDate.Date;
{Ajout de l'objet à la liste}
cbxUserData.Items.AddObject(edLastName.Text, UserData);
{L'item actif de la liste est celui qu'on vient d'ajouter}
cbxUserData.ItemIndex := cbxUserData.Items.Count - 1;
end ;
procedure TForm1.cbxUserDataChange(Sender: TObject);
var
UserData: TUserData;
begin
{On s'assure d'abord qu'un élément est sélectionné !}
if cbxUserData.ItemIndex <> -1then
begin
{On récupère l'élément TUserData actuellement sélectionné}
UserData : = cbxUserData.Items.Objects[cbxUserData.ItemIndex] as TUserData;
{On affiche les valeurs de l'élément TUserData actuellement sélectionné}
edFirstName.Text := UserData.Firstname;
edLastName.Text := UserData.LastName;
dtpBirthDate.Date := UserData.BirthDate;
end ;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
{NE PAS OUBLIER de libérer les objets pointés par la liste !!!
Ici, on détruit du dernier au premier :}
for i : = cbxUserData.Items.Count - 1 downto 0 do
cbxUserData.Items.Objects[i].Free;
end;
end.
C'est un peu plus propre.
Comme Ibrahim a dit qu'il était débutant, mieux vaut, à mon avis, ne pas l'orienter vers l'usage des pointeurs dès maintenant.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 25 nov. 2006 à 12:30
Bon alors si on se met a donner des codes complet ... lol
je n'ai jamais dit que le code que j'ai donné était complet mais vu les déclarations de Delphiprog ... je me sens obligé
mais d'un autre coté quand je donne un code complet on me dit que je ne devrais pas ... je suis trop gentil ... il faut qu'ils cherchent par eux même ...
Enfin ... voici le code :
Type PMyRec = ^TMyRec;
TMyRec = record
FName: string;
LName: string;
FDate: TDate;
end;
Var MonTab : Array Of PMyRec; // Déclaration supplémentaire
procedure TForm1.ComboBox1Change(Sender: TObject);
begin Edit1.Text : = PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FName;
Edit2.Text := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.LName;
DateTimePicker1.date := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FDate;
end ;
// Et pour finir la libération des prisonniers ... euh ... des pointeurs
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var I : Integer;
begin For I : = 0 To ComboBox1.Items.Count - 1 Do Dispose(PMyRec(Combobox1.Items.Objects[I]));
Finalize(MonTab);
end;
Voilà j'ai fait le ménage ...
Maintenent c'est propre !!! non ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 25 nov. 2006 à 13:06
Bon en fait j'ai posté un peut trop vite.
Voici la source sans code inutile :
Type PMyRec = ^TMyRec;
TMyRec = record
FName: string;
LName: string;
FDate: TDate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var MyRecPtr: PMyRec;
begin New(MyRecPtr);
MyRecPtr^.FName : = Edit1.Text;
MyRecPtr^.LName := Edit2.Text;
MyRecPtr^.FDate := DateTimePicker1.Date;
Combobox1.Items.AddObject(Edit1.Text, TObject(MyRecPtr));
end ;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin Edit1.Text : = PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FName;
Edit2.Text := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.LName;
DateTimePicker1.date := PMyRec(Combobox1.Items.Objects[ComboBox1.ItemIndex])^.FDate;
end ;
// en fait c'est la seul chose qui change avec le code de mon premier message
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var I : Integer;
begin For I : = 0 To ComboBox1.Items.Count - 1 Do Dispose(PMyRec(Combobox1.Items.Objects[I]));
end;
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 25 nov. 2006 à 15:40
@ Delphiprog
oui il est vrai que les pointeurs ne sont plus utilisables sous .Net ...
mais je pense pouvoir affirmer qu'il développe pour Win32 vu le titre donné a sa question :
"utilisation avancée du composant combobox sur delphi 5 "
@ Japee
je suis entièrement d'accord avec toi sur la présence de codes plus consistants sur le forum que dans les codes sources.
Et a ce propos il serait peut être intéressant de pouvoir mettre dans ses favoris (sur CS) des liens qui pointes sur des questions du forum afin de pouvoir retrouver facilement ces perles.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 27 nov. 2006 à 22:57
"Dans le cas présent et vu qu'ibrahimakhalil est débutant,
autant lui indiquer les bonnes façons de faire." a dit Delphiprog.
...Et les bonnes manières. Ca ne lui ferait que du bien pour son avenir, et y'a un manque certain.
T'en fais pas, Cirec! T'as tout notre respect.
L'important, c'est plus les réponses intelligentes que les questions...
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 27 nov. 2006 à 23:29
Oui il y a manque certain et même un certain manque ...
Il est vrai que le plus important sont les réponses mais c'est quand même frustrant de voir que le principal intéressé ne prend même pas la peine de se manifester !
En tous cas, merci pour ton soutien, j'en avais bien besoin
Je suis assez remonté ce soir ...
Eh oui ... ça m'arrive aussi
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 28 nov. 2006 à 00:18
Haut les coeurs, Cirec !
Je fais partie de ceux qui apprécient la compétence, la patience et la courtoisie qui caractérisent ta participation à la vie de notre communauté.
Si si, et je le dis haut et fort.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 28 nov. 2006 à 00:59
Moi, je comprends Cirec.
Encore une BDD pourrie en perspective, je crois.
"priere de bien vouloir m'aider" ressemble fort à une injonction.
J'aimerais bien savoir ce que ce mec est prêt à faire pour notre communauté, moi.
En tout cas, il ne semble pas avoir la moindre envie ni la moindre compétence pour le faire.
Moi, je comprends Cirec.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 3 déc. 2006 à 22:02
Euh...c'est moi qui ai accepté sa réponse pour bien marquer que nous l'excusions de son retard. J'aurais dû le préciser, c'est vrai.
Mes excuses les plus plates mon cher Cirec
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 3 déc. 2006 à 22:25
Et, pour ma part, toutes mes excuses à Ibrahim.
( Y'a des fois où on voudrait bien pouvoir retirer ses posts... )
Mais ce qui est écrit est écrit. Et c'est à moi d'apprendre les bonnes manières.
En tout cas, ta question a profité à beaucoup de personnes. Merci à Cirec et Delphiprog qui n'ont pas perdu leur temps.
cs_ibrahimakhalil
Messages postés28Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention11 mars 2011 4 déc. 2006 à 16:17
En fin j'ai utiliser un tstringGrid mais en me servant des instructions
données, mais à ce niveau je ne parviens jusqu'à présent me maîtriser
ce composant pour entrer,modifier supprimer etc,..., des données comme
dans un agenda ou dans un repertoire.
cs_ibrahimakhalil
Messages postés28Date d'inscriptionsamedi 29 avril 2006StatutMembreDernière intervention11 mars 2011 4 déc. 2006 à 16:21
j'ai envie de gerer les notes des étudiants d'un departement, classer
les admis par order de merite et generer automatiquement le relevé et
l'attestation, le certificat ou le diplome selon le cas précis pour
chaque étudiant
BELDJEBEL
Messages postés16Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 8 mars 20101 21 févr. 2010 à 16:01
Bonjour.
J'ai testé les deux méthodes proposées, par pointeurs et par object. Dans les deux cas ne remonte sur combobox que "edLastName.Text" alors qu'il y a que deux informations "Nom" et "Prénom" saisies, la troisième "date de naissance" étant piquée du "DateTimePicker1".
Dans ce cas quel est l'intérêt d'avoir trois informations et de n'en récupérer qu'une dans le combobox?
Merci de m'éclairer.
Cordialement à tous.
K.BELDJEBEL.