Quelle est la couleur principale de l’ancien logo Delphi ? Programmation en Delphi

Composant Delphi CouleurDialogue(boîte de dialogue de sélection de couleur) se trouve sur l'onglet Dialogue Palettes de composants. Avec son aide, vous pouvez définir la couleur de n'importe quel composant visuel.

La sélection des couleurs s'effectue à l'aide de la boîte de dialogue ci-dessus. Initialement, la fenêtre se compose de la moitié gauche et nous pouvons sélectionner "Couleurs primaires". Si nécessaire, nous pouvons définir des « Couleurs supplémentaires ». Pour ce faire, cliquez sur le bouton « Définir la couleur » et la deuxième moitié droite de notre boîte de dialogue apparaîtra devant nous, dans laquelle, après avoir sélectionné la couleur qui nous intéresse visuellement, cliquez sur le bouton « Ajouter à l'ensemble ».

La couleur sélectionnée par l'utilisateur, propriété principale de ce composant, est déterminée par la propriété Couleur. La propriété Color peut être définie au stade de la conception dans l'inspecteur d'objets ou par programme.

À l'aide de la propriété CustomColors, vous pouvez définir les couleurs d'une palette supplémentaire. Les couleurs sont spécifiées par les lignes :

numéro de séquence de couleur = représentation hexadécimale de la couleur ;

le numéro de série de la couleur est ColorA (la première couleur) et ensuite SschdschkZ (la seizième couleur). Par exemple, la ligne

définira la première couleur et ce sera le gris.

Propriété Possibilités se compose de l’ensemble d’options suivant :

  • cdFullOpen - nous verrons immédiatement les deux panneaux lors de l'ouverture de la boîte de dialogue, comme dans l'image ci-dessus ;
  • cdPreventFullOpen - le bouton « Définir la couleur » sera inaccessible (grisé) et, par conséquent, nous ne pourrons pas appeler le panneau de droite pour déterminer la couleur ;
  • cdShowHelp - à droite, après le bouton Annuler, un bouton « Aide » apparaîtra dans la boîte de dialogue ;
  • sdSolidColor - demande d'utiliser la couleur unie la plus proche de celle sélectionnée, ce qui réduit la palette ;
  • cdAnyColor - capacité tcnm à sélectionner des couleurs non unies.

Initialement, toutes les options sont désactivées.

Par exemple, plaçons le composant Edit et le bouton Button sur le formulaire, ainsi que le composant ColorDialog lui-même, comme le montre la figure. En cliquant sur le bouton, nous appellerons la boîte de dialogue de sélection des couleurs et définirons la couleur d'arrière-plan du composant Edit.

Le gestionnaire de boutons ressemblera à ceci :

Procédure TForm1.Button1Click(Expéditeur : TObject); commencez si ColorDialog1.Execute alors edit1.Color:= ColorDialog1.Color; fin;

Résumé : nous avons fait connaissance avec le composant ColorDialog et son utilisation dans l'application.

Le sujet dont nous parlerons aujourd'hui concerne le travail avec la couleur RVB. Et malgré le fait qu'en pratique, vous devez rarement utiliser de telles connaissances (sauf si on vous demande d'écrire une sorte d'éditeur graphique), ces connaissances ne seront superflues pour personne. Nous examinerons plusieurs fonctions qui nous permettront de définir la couleur souhaitée, d'obtenir la couleur de n'importe quel pixel sur l'écran, d'enregistrer la valeur de couleur sous forme de texte et de la recharger, et également de voir comment convertir la couleur en HTML et OpenGL. format.

En général, il existe de nombreuses palettes de couleurs, mais si nous parlons d'un ordinateur, nous parlons très probablement de RVB. (Pour référence, la palette CKMY, utilisée lors de la sortie d'une image couleur vers une imprimante pour impression, est utilisée lors de l'impression. Ses couleurs principales sont le jaune, le bleu et le rouge ; le noir, également présent dans cette palette, joue un rôle auxiliaire et est un couleur de correction). Comme son nom l’indique, les couleurs principales de cette palette sont le rouge, le vert et le bleu. En mélangeant ces couleurs dans différentes proportions, on obtient d'autres couleurs et leurs nuances. Par exemple, pour obtenir du jaune, il faut prendre du rouge et du vert, et non du bleu. Chaque couleur peut avoir un degré de saturation différent - de 0 à 255 (soit 1 bit). 0 correspond à la saturation minimale, 255 correspond au maximum.

Après une petite introduction, passons à ce que nous aimons le plus, la programmation. Jetons 3 TrackBars sur le formulaire, en changeant la position des curseurs, nous modifierons la saturation de chaque couleur qui compose la palette RVB. Afin de convertir ces valeurs en une couleur de type TColor, nous allons le faire. utilisez la fonction RVB Avec la couleur résultante, nous peindrons le panneau qui joue le rôle dans notre boîtier de moniteur.

procédure TForm1.SetMomitorColor; commencer PanelMonitor.Color:= RGB(TrackRValue.Position, TrackGValue.Position, TrackBValue.Position); fin;

Je pense qu'il ressort clairement de l'exemple que les coefficients des couleurs rouge, verte et bleue sont transmis comme paramètres à la fonction RVB. Chaque changement de position du curseur appelle la procédure SetMomitorColor, afin que nous puissions voir un changement de couleur en douceur. Cependant, ce n'est pas la seule procédure provoquée par le mouvement du curseur.

La procédure MoveLabel (illustré ci-dessous), comme son nom l'indique, déplace l'étiquette de sorte que le centre de l'étiquette soit toujours exactement sous le curseur. Nous passons les composants eux-mêmes en tant que paramètres, ce qui rend la procédure universelle pour toutes les TrackBars. La ligne suivante définit la couleur du texte en fonction de la saturation des couleurs actuelle de la palette RVB, dont la TrackBar correspondante est responsable. couleur dans différents formats (nous y reviendrons plus tard) .

Représentation des couleurs dans divers formats. Au format HTML, la couleur peut être spécifiée de plusieurs manières. Par exemple, en utilisant la procédure RVB déjà familière. Mais vous pouvez aussi spécifier la couleur au format hexadécimal (de mon point de vue c'est beaucoup plus pratique), et cela ressemble à ceci : #RGB. Ici R, G, B sont les valeurs des couleurs correspondantes au format hexadécimal (par exemple, #FF0000 est rouge, #00FF00 est vert, #0000FF est rouge, respectivement). La couleur dans OpenGL est spécifiée dans la plage de 0 à 1 pour chaque composant de couleur, où 0 est la saturation minimale des couleurs (correspondant à 0 dans Delphi) et 1 est la saturation maximale des couleurs (correspondant à 255 dans Delphi).

Par conséquent, la valeur actuelle de chaque composant de couleur doit être divisée par 255. Delphi vous permet également de convertir une couleur de type TColor en chaîne à l'aide de la fonction ColorToString(Color: TColor) : string (vous pouvez reconvertir une chaîne en TColor en utilisant la fonction StringToColor(const S: string): TColor) .

Parlons maintenant de la façon de connaître la couleur du pixel qui nous intéresse sur l'écran.

La fonction GetPixel nous y aidera. Puisqu'il est impossible de déterminer les coordonnées d'un pixel « à l'œil nu », il est plus facile (et plus logique) d'obtenir la couleur du pixel qui se trouve sous le curseur de la souris. La fonction GetPixel renvoie une valeur de type TColor, et pour en extraire les valeurs de ses couleurs constitutives rouge, vert et bleu, vous devez utiliser respectivement les fonctions GetRValue, GetGValue et GetBValue.

L'exemple ci-dessous montrera comment ces fonctions fonctionnent.

Et une dernière chose. Pour modifier les modes de fonctionnement du programme (réglage manuel des couleurs / détection automatique des couleurs), déposez une CheckBox sur le formulaire, qui activera/désactivera la minuterie.


Demander le forfait 1s 8.3. Requêtes groupées pour les nuls. Méthodes Run() et RunBatch()

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :