cs_SSB
Messages postés6Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention11 avril 2006
-
5 juil. 2005 à 01:57
cs_neko
Messages postés135Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention12 octobre 2006
-
6 juil. 2005 à 09:14
Bonjour à toutes et tous.
A partir de 2 petites sources, j'ai fait ce petit truc.
Le principe :
-On clique sur un TButton "Couleur", cela ouvre le TColorDialog, on choisit sa couleur et la couleur de fond du TEdit prend cette couleur.
La couleur choisit s'affiche dans le TLabel au format Couleur HTML (#FFFF00)
-On a un bouton "Enregistrer", et lorsque l'on clique dessus, cela met la valeur du TLabel (donc #FFFF00) dans un fichier INI.
-Maintenant, j'aimerais qu'à l'ouverture du programme (FormCreate), la couleur de fond du TEdit, soit celle qui a été enregistrée dans le fichier INI (A savoir #FFFF00), donc jaune.
Ca fait 2 jours que je galère et que j'ai essayé de multiples bidouilles mais sans résultats.
J'espère qu'une âme charitable passera dans le coin.
Voici le programme ci-dessous et j'espère qu'il y a suffisement d'explications.
C'est à la fin dans FormCreate que se situe le problème ;)
{------------------------------------------------}
{transformation d'un TColor en Couleur type HTML }
{------------------------------------------------}
function ColorToHtml(Color:TColor):String;
Var R,G,B : LongInt;
begin
B:=GetBValue(ColorToRGB(Color));
G:=GetGValue(ColorToRGB(Color));
R:=GetRValue(ColorToRGB(Color));
Result:='#'+IntToHex(R,2)+IntToHex(G,2)+IntToHex(B,2);
end;
// ----- Clic sur le 1er bouton pour choisir sa couleur à partir d un TColorDialog
procedure TForm1.Button_Var_01Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
// Ici on met la couleur de fond du TEdit par celle choisi dans le TColorDialog
Edit_Var_01.Color:=ColorDialog1.Color;
// Ici on met la valeur ex #FFFF00 dans un TLabel
LabelCouleurHtml_01.Caption:= ColorToHtml(Edit_Var_01.Color);
end;
end;
// ----- Enregistrement de la valeur du TLabel dans une fichier INI
procedure TForm1.EnregistrerClick(Sender: TObject);
Var FichierIni : TIniFile;
begin
FichierIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Monfichier.ini'); //Créée le fichier INI si il n'existe pas
FichierIni.WriteString('Test','Texte1',LabelCouleurHtml_01.Caption); //Ecrit dans le fichier INI, la valeur du TLabel ex: #FFFF00
FichierIni.Free; //Libère le fichier
end;
// ----- A l'ouverture du programme La couleur de fond du TEdit doit correspondre à la valeur se trouvant dans mon fichier INI
procedure TForm1.FormCreate(Sender: TObject);
Var FichierIni : TIniFile;
begin
FichierIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Monfichier.ini');
// Ci-dessous j'ai mis LabelCouleurHtml_01.Caption,parce que c'est la seule chose qui fonctionnait, mais après cela ne me sert pas à grand chose :(
LabelCouleurHtml_01.Caption:=FichierIni.ReadString('Test','Texte1','DELPHI'); //Lit dans le fichier INI la valeur ex: #FFFF00
Edit_Var_01.Color := ?????; // Je ne sais pas quoi mettre ICI pour qu'a l'ouverture la couleur de fond soit celle de mon fichier INI à savoir #FFFF00
// En mettant ça ci-dessous cela fonctionne mais cela ne m'intéresse pas ;)
Edit_Var_01.Color := $00FFFF00;
cs_neko
Messages postés135Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention12 octobre 20061 5 juil. 2005 à 09:13
Enregistre la couleur plutot que le texte
// ----- Enregistrement de la valeur du TColor dans une fichier INI
procedure TForm1.EnregistrerClick(Sender: TObject);
Var FichierIni : TIniFile;
begin
FichierIni:= TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Monfichier.ini'); //Créée le fichier INI si il n'existe pas
FichierIni. WriteInteger ('Test','Texte1',Edit_Var_01.Color); //Ecrit dans le fichier INI, la valeur de la couleur ( Le type TColor est en fait simplement un entier
FichierIni.Free; //Libère le fichier
end;
// ----- A l'ouverture du programme La couleur de fond du TEdit doit correspondre à la valeur se trouvant dans mon fichier INI
procedure TForm1.FormCreate(Sender: TObject);
Var FichierIni : TIniFile;
begin
FichierIni: =TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Monfichier.ini');
// Ci-dessous j'ai mis LabelCouleurHtml_01.Caption,parce que c'est la seule chose qui fonctionnait, mais après cela ne me sert pas à grand chose :(
Edit_Var_01.Color:= FichierIni. ReadInteger ('Test','Texte1',clWhite); //Lit dans le fichier INI la valeur ex: #FFFF00
cs_SSB
Messages postés6Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention11 avril 2006 5 juil. 2005 à 12:40
Salut Neko et Exyacc.
Merci tout d'abord de m'avoir répondu.
Etant débutant Exyacc, vous pensez
bien que je me suis de suite orienté vers la réponse de Neko, étant
donné qu'il m'avait déjà maché le boulot, je n'ai plus eu qu'à prendre
la paille pour tout aspirer ;).
Neko suite à votre réponse, j'ai d'abord été content (en voyant votre
réponse), déçu (en la mettant en pratique) et de nouveau content
(en bidouillant tout ça au pifomètre ;) ).
Maintenant tout fonctionne comme je voulais :))))
Sauf qu'il y avait quelques petites erreurs dans la source que vous m'avez donné.
Et là apparement cela fonctionne bien (après quelques essais).
Donc si vous repassez par ici, vous me confirmez, que ce que j'ai modifié au petit bonheur la chance, est correct????
Autre petite question.
Dans mon code d'origine, il y avait ceci avec DELPHI, à la fin
FichierIni.ReadString('Test','Texte1','DELPHI');
Et dans le votre il y a clWhite
FichierIni.ReadInteger('Test','Texte1',clWhite);
A quoi correspond cette dernière valeur?
En tout cas Merci Neko, d'avoir prit le temps de taper toutes ces
lignes de codes et de m'avoir donné la solution, sans vous je n'y
serait jamais arrivé (et je désespérais)... I'm haaaappppppyyyy comme
dirait l'autre ;)
cs_neko
Messages postés135Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention12 octobre 20061 6 juil. 2005 à 09:14
Oula, pas de vouvoiement lol
Bon, tes correction elle sont tout à fait bonnes ( j'avou que j'avais
pas testé le code d'où toutes les fautes d'inatention genre les point
virgules lol ) et donc je m'escuse de t'avoir donné un code qui
marchait a moité seulement, enfin tu a réussi a corriger c'est
l'important.
Ensuite pour ça:
FichierIni.ReadInteger('Test','Texte1',clWhite);
et bien c'est très simple puisque ça veux simplement dire que si la
valeur de Texte1 n'est pas trouvée ( lors de la première utilisation du
programme par exemple ) la fonction te renvoie clWhite ( donc la
couleur blanche ) c'est une valeur par defaut quoi.