Topic: Checkbox and picture

Hello

I was testing one thing
display a picture when clicking on a checkbox

The scenario :
A base with many persons
An item indicates if a person is smoker or no smoker.

If checkbox Smoker is checked  ( Yes) -> a pipe is displayed (this is s smoker
If checkbox Nosmoker is checked (N) -> a symbo No Smoke is displayed.

Problem : when we choose one person among others, displaying of the picture is very random.
All is done by scripts.

Have you an idea about anomaly ?

Thanks

JB

Post's attachments

Attachment icon smokers.zip 8.55 kb, 504 downloads since 2015-02-27 

2 (edited by mathmathou 2015-02-28 04:50:27)

Re: Checkbox and picture

Hello,

With a name like yours, I bet you are french, so I'll take the chance and write in french.
If you are not, I'll translate to english smile


Tout d'abord, je ne suis qu'un amateur et aucunement membre de ce projet. Je me dérouille en PHP mais je découvre le Delphi alors...


J'ai regardé ton projet, et je pense que tu vas avoir du mal à accomplir ce que tu souhaites avec tes cases à cocher ET sans utiliser des conditions.


Ton script précise quoi faire si une case est cochée, mais pas quoi faire dans les autres cas.


Pour commencer, voici la liste des conditions à tester pour couvrir tous les cas possibles : tu as 2 cases à cocher avec 2 états possibles pour chacune, ce qui te donne un total de 4 combinaisons à tester :

  • fumer coché et non-fumer non coché

  • fumeur non coché et non-fumeur coché

  • fumeur non coché et non-fumeur non coché

  • fumeur cochéet non-fumeur coché


Pour te simplifier la vie, je mettrais des menus déroulants à la place des cases à cocher, en faisant un test sur le contenu (ComboBox.Text) plutôt que sur l'état de tes cases.


J'ai fais vite fait un petit projet pour toi mais pas le tiens (sinon ce n'est pas drôle hein ?) dans lequel on saisit des contacts en précisant leur sexe :

  • au moment de la saisie, sélectionner un genre dans le menu déroulant affiche l'image correspondante dans la fiche

  • ensuite, en double cliquant dans la grille (mode édition), les images s'adaptent au genre de la personne

  • j'ai aussi couvert le cas où le sexe n'est pas précisé, mais cela ne me fait toujours que 3 cas à tester, au lieu des 4 avec tes cases


Jette un oeil, en espérant que cela t'aide.


NOTE 1 : j'ai essayé de faire en sorte que l'image s'affiche à la simple sélection de la ligne dans la grille (simple clic au lieu de double), mais je me creuse encore la tête la dessus.


NOTE 2 : La version utilisée est la 1.49


A bientôt


Math

Post's attachments

Attachment icon picture_condition.zip 347.19 kb, 540 downloads since 2015-02-28 

I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor

Re: Checkbox and picture

Bonjour Mathmatou

Bien deviné !

Je suis bien français, qui plus est breton 100% pur chouchen !

Effectivement j'ai fait ce même programme avec des comboboxes au lieu des checkboxes et là
ça marche parfaitement.

Cette fois ci j'ai voulu tester le fonctionnement plus complexes des checkboxes.
Autrefois j'avais réalisé ce même programme en Delphi 7, au poil !
Mais depuis que je suis passé sous Windows 8, ce bon vieux Delphi 7 ne fonctionne plus.
Mais MVD est un super outils pour monter des applications bien chiadées.
J'adore ce programme

Merci encore de ton aide

JB

4 (edited by mathmathou 2015-02-28 07:36:48)

Re: Checkbox and picture

Ravi de te croiser ici smile


Depuis tout à l'heure, j'ai trouvé comment rafraîchir l'affichage des informations sur un simple clic dans la grille : il faut passer par une requête SQL qui récupère l'id de l'enregistrement sur lequel on a clique, et qui remplit les champs avec les résultats de la requête.


Une fiche comme celle-ci voit les infos (à droite) rafraîchies automatiquement quand on sélectionne (simple clic) une société dans la liste


http://i.imgur.com/aZsUjHv.png


Et le script associé :


//Procédure d'affichage des données de la société sélectionnée (simple clic) dans la fenêtre de droite
procedure Form1_TableGrid1_OnClick (Sender: string);

var    sID: string;
begin

    begin
        sID := Form1.TableGrid1.sqlValue; // id de l'enregistrement à afficher
        Form1.ed_company_name.Text:= SQLExecute('SELECT company_name FROM company WHERE id='+sID); // get company_name
        Form1.ed_company_adr1.Text:= SQLExecute('SELECT company_adr1 FROM company WHERE id='+sID); // get company_adr1
        Form1.ed_company_adr2.Text:= SQLExecute('SELECT company_adr2 FROM company WHERE id='+sID); // get company_adr2
        Form1.ed_company_pobox.Text:= SQLExecute('SELECT company_pobox FROM company WHERE id='+sID); // get company_pobox
        Form1.ed_company_pc.Text:= SQLExecute('SELECT company_pc FROM company WHERE id='+sID); // get company_pc
        Form1.ed_company_town.Text:= SQLExecute('SELECT company_town FROM company WHERE id='+sID); // get company_town
        Form1.ed_company_country.Text:= SQLExecute('SELECT company_country FROM company WHERE id='+sID); // get company_country
        Form1.ed_company_phone.Text:= SQLExecute('SELECT company_phone FROM company WHERE id='+sID); // get company_phone
        Form1.ed_company_fax.Text:= SQLExecute('SELECT company_fax FROM company WHERE id='+sID); // get company_fax
        Form1.ed_company_website.Text:= SQLExecute('SELECT company_website FROM company WHERE id='+sID); // get company_website
        Form1.ed_company_type.Text:= SQLExecute('SELECT company_type.type_name FROM company_type INNER JOIN company ON company_type.id='+sID); // get company_type
        Form1.ed_company_note.Text:= SQLExecute('SELECT company_note FROM company WHERE id='+sID); // get company_note
        Form1.label_nb_contact.Caption:= SQLExecute('SELECT COUNT (*) FROM contact WHERE id_company='+sID); //get number of contact for the company

    end;
end;
I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor

Re: Checkbox and picture

Re salut Mathmatou

Ton code est parfait, ça roule au poil
Je l'ai même réduit en utilisant la conditon CASE ... OF
Mais l'utilisation de la case à cocher me trottine dans la tête

Merci encore !


Hello Mathmatou
Your code is OK, it works fine
I've even reduced it by using condition CASE ... OF
But the use of the checkbox scampers me in the head

Thanks again

JB

Re: Checkbox and picture

jean.brezhonek wrote:

Je l'ai même réduit en utilisant la conditon CASE ... OF

Là tu aiguises ma curiosité, mais tu as du oublier le petit détail suivant :

procedure Form1_Connaissance_Language (Sender: string);
var code: string;
    begin
        code := Form1.ComboBox1.Text;
        if (code) := 'PHP' then
        begin
        Form1.Edit1.Text:= 'Se débrouille pas mal';
        end;
        if (code) := 'Delphi' then
        begin
        Form1.Edit1.Text:= 'Grand débutant';
        end;
    end;

Je ne te ferai pas l'affront de traduire smile

I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor

Re: Checkbox and picture

Hello Mathmatou

En Delphi l'analyse séquentielle IF ... THEN convient bien lorsqu'il y a trois ou quatre analyses à faire.
L'instruction CASE ...OF convient mieux  lorsqu'il y a de nombreuses alternatives.

Cordialement

JB


In Delphi the sequential analysis IF... THEN suits well when there is two or three analysis to be made.
The instruction CASE... OF suits better when there is numerous alternatives.

Cordially

JB

Re: Checkbox and picture

Bonjour Jean,


Je me suis un peu creusé la tête sur ton problème : actualiser l'image en fonction de la ligne sélectionnée dans la grille, en tenant compte des deux cases à cocher. Je suis comme toi, j'aime les défis, et en phase de découverte d'un langage, c'est encore plus amusant.


J'ai trouvé une solution à ton problème que je te soumets en pièce jointe. J'ai rajouté une image supplémentaire et une zone image, mais rien n'empêche de conserver celle que tu avais définie. Bien entendu, ce n'est que mon approche, je suis sur que tu peux optimiser (CASE ... OF ?).


Tu verras, j'ai commenté le code à mort, ça devrait être facile à suivre.


Bonne journée


Amicalement


Mathias

Post's attachments

Attachment icon smokers.zip 344.49 kb, 581 downloads since 2015-03-02 

I'm a very good housekeeper !
Each time I get a divorce, I keep the house

Zaza Gabor