<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Langage</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Tout ce qui concerne le langage (POO, syntaxe, message d'erreur...)]]></description>
		<language>fr</language>
		<lastBuildDate>Fri, 17 Apr 2026 12:15:13 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Langage</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title><![CDATA[afficher l'aide contextuelle fin de ligne dans Tlistbox et Tcombobox]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183047&amp;goto=newpost</link>
			<pubDate>Sun, 05 Apr 2026 01:34:37 GMT</pubDate>
			<description><![CDATA[je voudrai afficher l'aide...]]></description>
			<content:encoded><![CDATA[<div>je voudrai afficher l'aide contextuelle pour visualiser le reste de chaques lignes dans un listbox et combobox<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p675421d1775352145/environnements-developpement/delphi/langage/afficher-laide-contextuelle-fin-ligne-tlistbox-tcombobox/pastisserie.jpg/" border="0" alt="Nom : pastisserie.jpg
Affichages : 190
Taille : 40,3 Ko"  style="float: CONFIG" /><br />
l'exemple zippé :<a href="https://www.developpez.net/forums/attachments/p675431d1775390690/environnements-developpement/delphi/langage/afficher-laide-contextuelle-fin-ligne-tlistbox-tcombobox/patisseries.zip/"  title="Nom : patisseries.zip
Affichages : 27
Taille : 213,0 Ko">patisseries.zip</a><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">unit</span> Unit1;
&nbsp;
<span style="color: #0000ff;">interface</span>
&nbsp;
<span style="color: #0000ff;">uses</span>
  Windows,
  Classes , SysUtils , Forms , Controls , Graphics , Dialogs , StdCtrls, Types,Messages;
<span style="color: #0000ff;">type</span>
  TForm1 = <span style="color: #0000ff;">class</span><span class="br0">&#40;</span>TForm<span class="br0">&#41;</span>
    ListBox: TListBox;
    ListCombo: TComboBox;
    Label1: TLabel;
    <span style="color: #0000ff;">procedure</span> FormCreate<span class="br0">&#40;</span>sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> ListBoxDrawItem<span class="br0">&#40;</span>Control: TWinControl; Index: <span style="color: #0080ff;">Integer</span>;   Rect: TRect; State: TOwnerDrawState<span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> ListBoxMeasureItem<span class="br0">&#40;</span>Control: TWinControl; Index: <span style="color: #0080ff;">Integer</span>; <span style="color: #0000ff;">var</span> Height: <span style="color: #0080ff;">Integer</span><span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> ListComboExit<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
    <span style="color: #0000ff;">procedure</span> ListComboEnter<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
  <span style="color: #0000ff;">private</span>
    <span style="color: #0000ff;">PROCEDURE</span> AppShowHint<span class="br0">&#40;</span><span style="color: #0000ff;">VAR</span> HintStr: <span style="color: #0080ff;">STRING</span>; <span style="color: #0000ff;">VAR</span> CanShow: <span style="color: #0080ff;">Boolean</span>; <span style="color: #0000ff;">VAR</span> HintInfo: THintInfo<span class="br0">&#41;</span>; <span style="color: #808080;">// gestion de l'aide (dans listtitre)</span>
    <span style="color: #0000ff;">procedure</span> ApplicationIdle<span class="br0">&#40;</span>sender: <span style="color: #0080ff;">TObject</span>; <span style="color: #0000ff;">var</span> Done: <span style="color: #0080ff;">boolean</span><span class="br0">&#41;</span>;
    <span style="color: #808080;">{ D&eacute;clarations priv&eacute;es }</span>
  <span style="color: #0000ff;">public</span>
    <span style="color: #808080;">{ D&eacute;clarations publiques }</span>
  <span style="color: #0000ff;">END</span>;
&nbsp;
&nbsp;
<span style="color: #0000ff;">var</span>
  Form1: TForm1;
  Comboboxexit:<span style="color: #0080ff;">Boolean</span>;
<span style="color: #0000ff;">implementation</span>
&nbsp;
<span style="color: #808080;">{$R *.dfm}</span>
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.ListBoxDrawItem<span class="br0">&#40;</span>Control: TWinControl; Index: <span style="color: #0080ff;">Integer</span>; Rect: TRect; State: TOwnerDrawState<span class="br0">&#41;</span>;
&nbsp;
<span style="color: #0000ff;">PROCEDURE</span> Drawcolored<span class="br0">&#40;</span>Canvas: Tcanvas; Atext: <span style="color: #0080ff;">STRING</span>; Rect: TRECT; STATE: Townerdrawstate;AColor,Bcolor:<span style="color: #0080ff;">Longint</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">BEGIN</span>
      <span style="color: #0000ff;">WITH</span> Canvas <span style="color: #0000ff;">DO</span>
      <span style="color: #0000ff;">BEGIN</span>
            <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>odSelected <span style="color: #0000ff;">in</span> State<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span>
            <span style="color: #0000ff;">BEGIN</span>
                  Font.Color  := Acolor;
                  Brush.Color := Bcolor;
            <span style="color: #0000ff;">END</span>
            <span style="color: #0000ff;">ELSE</span>
            <span style="color: #0000ff;">BEGIN</span>
                  Font.Color  := Bcolor;
                  Brush.Color := Acolor;
            <span style="color: #0000ff;">END</span>;
            Pen.Color := Acolor;
            Rectangle<span class="br0">&#40;</span>Rect<span class="br0">&#41;</span>;
            Brush.Style := bsClear;
            Fillrect<span class="br0">&#40;</span>rect<span class="br0">&#41;</span>;
            Textout<span class="br0">&#40;</span>Rect.Left + <span style="color: #cc66cc;">2</span> , Rect.Top, Atext<span class="br0">&#41;</span>;
      <span style="color: #0000ff;">END</span>;
<span style="color: #0000ff;">END</span>; <span style="color: #808080;">{Drawcolored}</span>
&nbsp;
<span style="color: #0000ff;">BEGIN</span>
      <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">Is</span>  Tlistbox<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> <span style="color: #0000ff;">WITH</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">As</span>  Tlistbox<span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span> Drawcolored<span class="br0">&#40;</span>Canvas,ITEMS<span class="br0">&#91;</span>Index<span class="br0">&#93;</span>,Rect,STATE,Color,Font.Color<span class="br0">&#41;</span>;
      <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">Is</span> Tcombobox<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> <span style="color: #0000ff;">WITH</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">As</span> Tcombobox<span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span> Drawcolored<span class="br0">&#40;</span>Canvas,ITEMS<span class="br0">&#91;</span>Index<span class="br0">&#93;</span>,Rect,STATE,Color,Font.Color<span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.ListBoxMeasureItem<span class="br0">&#40;</span>Control: TWinControl; Index: <span style="color: #0080ff;">Integer</span>;  <span style="color: #0000ff;">var</span> Height: <span style="color: #0080ff;">Integer</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">BEGIN</span>
      <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">IS</span> Tcombobox<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> Height := trunc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>Control <span style="color: #0000ff;">As</span> Tcombobox<span class="br0">&#41;</span>.Itemheight+<span style="color: #cc66cc;">2</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
      <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Control <span style="color: #0000ff;">IS</span> Tlistbox<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> Height := trunc<span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>Control <span style="color: #0000ff;">As</span> Tlistbox<span class="br0">&#41;</span>.Itemheight+<span style="color: #cc66cc;">2</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">END</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.ListComboExit<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>; <span style="color: #0000ff;">begin</span> Comboboxexit:=<span style="color: #0000ff;">true</span>; <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">procedure</span> TForm1.ListComboEnter<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>; <span style="color: #0000ff;">begin</span> Comboboxexit:=<span style="color: #0000ff;">false</span>; <span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #808080;">{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}</span>
<span style="color: #0000ff;">PROCEDURE</span> Tform1.Appshowhint<span class="br0">&#40;</span><span style="color: #0000ff;">VAR</span> Hintstr: <span style="color: #0080ff;">STRING</span>; <span style="color: #0000ff;">VAR</span> Canshow: <span style="color: #0080ff;">BOOLEAN</span>; <span style="color: #0000ff;">VAR</span> Hintinfo: Thintinfo<span class="br0">&#41;</span>;
<span style="color: #0000ff;">VAR</span>   Lstindex,Cpi,Maxlength,Listtitrewidth : <span style="color: #0080ff;">INTEGER</span>;
      lngtmp:<span style="color: #0080ff;">STRING</span>;
      ComboBoxpos: TRect;
      State: TOwnerDrawState;
&nbsp;
<span style="color: #0000ff;">PROCEDURE</span> hintcolored<span class="br0">&#40;</span>Canvas: Tcanvas;<span style="color: #0000ff;">VAR</span> Hintinfo: Thintinfo;Itemindex,Lstindex:<span style="color: #0080ff;">Integer</span>;lngtmp:<span style="color: #0080ff;">String</span>;AColor,Bcolor:<span style="color: #0080ff;">Longint</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">BEGIN</span>
      <span style="color: #0000ff;">WITH</span> Hintinfo <span style="color: #0000ff;">DO</span>
      <span style="color: #0000ff;">BEGIN</span>
            <span style="color: #0000ff;">IF</span> hintpos.X+Canvas.TEXTWIDTH<span class="br0">&#40;</span>lngtmp<span class="br0">&#41;</span>&gt;screen.DesktopWidth <span style="color: #0000ff;">THEN</span>
            <span style="color: #0000ff;">BEGIN</span>
                  Cpi:=<span style="color: #cc66cc;">0</span>;
                  <span style="color: #0000ff;">WHILE</span> <span class="br0">&#40;</span>hintpos.X+Canvas.TEXTWIDTH<span class="br0">&#40;</span>COPY<span class="br0">&#40;</span>lngtmp,<span style="color: #cc66cc;">1</span>,Cpi+<span style="color: #cc66cc;">1</span><span class="br0">&#41;</span><span class="br0">&#41;</span>&lt;screen.DesktopWidth<span class="br0">&#41;</span> <span style="color: #0000ff;">AND</span> <span class="br0">&#40;</span>CPI&lt;LENGTH<span class="br0">&#40;</span>lngtmp<span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span> INC<span class="br0">&#40;</span>Cpi<span class="br0">&#41;</span>;
                  lngtmp := COPY<span class="br0">&#40;</span>lngtmp,<span style="color: #cc66cc;">1</span>,CPI-<span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>;
            <span style="color: #0000ff;">END</span>;
            <span style="color: #0000ff;">IF</span> Cpi&gt;<span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">THEN</span>
            <span style="color: #0000ff;">BEGIN</span>
                  Hintstr:=lngtmp;
                  <span style="color: #0000ff;">IF</span> Itemindex = Lstindex <span style="color: #0000ff;">THEN</span>
                  <span style="color: #0000ff;">BEGIN</span>
                         Hintcolor:=Bcolor;
                         Screen.Hintfont.Color:= AColor;;
                  <span style="color: #0000ff;">END</span>
                  <span style="color: #0000ff;">ELSE</span>
                  <span style="color: #0000ff;">BEGIN</span>
                        Hintcolor:= AColor;
                        Screen.Hintfont.Color:= Bcolor;
                  <span style="color: #0000ff;">END</span>;
                  Reshowtimeout := <span style="color: #cc66cc;">500</span>;
                  Hidetimeout := <span style="color: #cc66cc;">2500</span>;
                  Canshow := <span style="color: #0000ff;">TRUE</span>;
            <span style="color: #0000ff;">END</span>;
     <span style="color: #0000ff;">END</span>;
<span style="color: #0000ff;">END</span>;
&nbsp;
<span style="color: #0000ff;">BEGIN</span>
      Canshow := <span style="color: #0000ff;">FALSE</span>;
      <span style="color: #0000ff;">WITH</span> Hintinfo <span style="color: #0000ff;">DO</span>
      <span style="color: #0000ff;">BEGIN</span>
            <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Hintcontrol <span style="color: #0000ff;">Is</span> TCombobox<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> <span style="color: #0000ff;">WITH</span> TCombobox<span class="br0">&#40;</span>Hintcontrol<span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span>
            <span style="color: #0000ff;">BEGIN</span>
                  GetWindowRect<span class="br0">&#40;</span>Handle, ComboBoxpos<span class="br0">&#41;</span>;
                  hintpos.Y:=ComboBoxpos.Top;
                  Listtitrewidth:=Width-GetSystemMetrics<span class="br0">&#40;</span>SM_CXFRAME<span class="br0">&#41;</span> - GetSystemMetrics<span class="br0">&#40;</span>SM_CXVSCROLL<span class="br0">&#41;</span>;
                  <span style="color: #0000ff;">IF</span> Canvas.TEXTWIDTH<span class="br0">&#40;</span>TEXT<span class="br0">&#41;</span> &gt; Listtitrewidth <span style="color: #0000ff;">THEN</span>
                  <span style="color: #0000ff;">BEGIN</span>
                        lngtmp := TEXT;
                        Maxlength := <span style="color: #cc66cc;">0</span>;
                        Cpi:=<span style="color: #cc66cc;">1</span>;
                        <span style="color: #0000ff;">WHILE</span> <span class="br0">&#40;</span>Canvas.TEXTWIDTH<span class="br0">&#40;</span>COPY<span class="br0">&#40;</span>lngtmp,<span style="color: #cc66cc;">1</span>,Cpi<span class="br0">&#41;</span><span class="br0">&#41;</span>&lt;=Listtitrewidth<span class="br0">&#41;</span> <span style="color: #0000ff;">AND</span> <span class="br0">&#40;</span>Cpi&lt;=LENGTH<span class="br0">&#40;</span>TEXT<span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span>
                        <span style="color: #0000ff;">BEGIN</span>
                              <span style="color: #0000ff;">IF</span> TEXT<span class="br0">&#91;</span>Cpi<span class="br0">&#93;</span>=<span style="color: #FF0000;">' '</span> <span style="color: #0000ff;">THEN</span> Maxlength:=Cpi;
                              INC<span class="br0">&#40;</span>Cpi<span class="br0">&#41;</span>;
                        <span style="color: #0000ff;">END</span>;
                        lngtmp := COPY<span class="br0">&#40;</span>TEXT,Maxlength+<span style="color: #cc66cc;">1</span>,LENGTH<span class="br0">&#40;</span>TEXT<span class="br0">&#41;</span><span class="br0">&#41;</span>;
                        hintpos.X:=ComboBoxpos.Left+<span style="color: #cc66cc;">2</span>+Canvas.TEXTWIDTH<span class="br0">&#40;</span>COPY<span class="br0">&#40;</span>TEXT,<span style="color: #cc66cc;">1</span>,Maxlength<span class="br0">&#41;</span><span class="br0">&#41;</span>;
                        hintcolored<span class="br0">&#40;</span>Canvas,Hintinfo,<span style="color: #cc66cc;">0</span>,<span style="color: #0080ff;">integer</span><span class="br0">&#40;</span>Comboboxexit<span class="br0">&#41;</span>,lngtmp,color,font.color<span class="br0">&#41;</span>;
                  <span style="color: #0000ff;">END</span>;<span style="color: #808080;">{}</span>
            <span style="color: #0000ff;">END</span>;
            <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span>Hintcontrol <span style="color: #0000ff;">Is</span> TLISTBOX<span class="br0">&#41;</span> <span style="color: #0000ff;">THEN</span> <span style="color: #0000ff;">WITH</span> TLISTBOX<span class="br0">&#40;</span>Hintcontrol<span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span>
            <span style="color: #0000ff;">BEGIN</span>
                  Lstindex := Itematpos<span class="br0">&#40;</span>Cursorpos, <span style="color: #0000ff;">TRUE</span><span class="br0">&#41;</span>;
                  <span style="color: #0000ff;">IF</span> Lstindex &gt; -<span style="color: #cc66cc;">1</span> <span style="color: #0000ff;">THEN</span>
                  <span style="color: #0000ff;">BEGIN</span> <span style="color: #808080;">// Listbox Item Under Mouse</span>
                        Listtitrewidth:=Width-GetSystemMetrics<span class="br0">&#40;</span>SM_CXFRAME<span class="br0">&#41;</span>;
                        <span style="color: #0000ff;">IF</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>Getwindowlong<span class="br0">&#40;</span>HANDLE, Gwl_Style<span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">AND</span> Ws_Vscroll<span class="br0">&#41;</span> &lt;&gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">THEN</span> Listtitrewidth:=Listtitrewidth - GetSystemMetrics<span class="br0">&#40;</span>SM_CXVSCROLL<span class="br0">&#41;</span>;
                        <span style="color: #0000ff;">IF</span> Canvas.TEXTWIDTH<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span><span class="br0">&#41;</span> &gt; Listtitrewidth <span style="color: #0000ff;">THEN</span>
                        <span style="color: #0000ff;">BEGIN</span>
                              Hintstr := ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span>;
                              Maxlength := <span style="color: #cc66cc;">0</span>;
                              Cpi:=<span style="color: #cc66cc;">1</span>;
                              <span style="color: #0000ff;">WHILE</span> <span class="br0">&#40;</span>Canvas.TEXTWIDTH<span class="br0">&#40;</span>COPY<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span>,<span style="color: #cc66cc;">1</span>,Cpi<span class="br0">&#41;</span><span class="br0">&#41;</span>&lt;=Listtitrewidth<span class="br0">&#41;</span> <span style="color: #0000ff;">AND</span> <span class="br0">&#40;</span>Cpi&lt;=LENGTH<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">DO</span>
                              <span style="color: #0000ff;">BEGIN</span>
                                    <span style="color: #0000ff;">IF</span> ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span><span class="br0">&#91;</span>Cpi<span class="br0">&#93;</span>=<span style="color: #FF0000;">' '</span> <span style="color: #0000ff;">THEN</span> Maxlength:=Cpi;
                                    INC<span class="br0">&#40;</span>Cpi<span class="br0">&#41;</span>;
                              <span style="color: #0000ff;">END</span>;<span style="color: #808080;">{}</span>
                              lngtmp := COPY<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span>,Maxlength+<span style="color: #cc66cc;">1</span>,LENGTH<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
                              <span style="color: #808080;">// positionnement du hint</span>
                              Hintpos := Clienttoscreen<span class="br0">&#40;</span>Point<span class="br0">&#40;</span>Canvas.TEXTWIDTH<span class="br0">&#40;</span>COPY<span class="br0">&#40;</span>ITEMS<span class="br0">&#91;</span>Lstindex<span class="br0">&#93;</span>,<span style="color: #cc66cc;">1</span>,Maxlength<span class="br0">&#41;</span><span class="br0">&#41;</span>-<span style="color: #cc66cc;">1</span>, Itemheight * <span class="br0">&#40;</span>Lstindex - Topindex<span class="br0">&#41;</span>-GetSystemMetrics<span class="br0">&#40;</span>SM_CYFRAME<span class="br0">&#41;</span>+<span style="color: #cc66cc;">4</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
                              hintcolored<span class="br0">&#40;</span>Canvas,Hintinfo,Itemindex,Lstindex,lngtmp,color,font.color<span class="br0">&#41;</span>;
                        <span style="color: #0000ff;">END</span>;
                  <span style="color: #0000ff;">END</span>;
            <span style="color: #0000ff;">END</span>;
      <span style="color: #0000ff;">END</span>;
<span style="color: #0000ff;">END</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.FormCreate<span class="br0">&#40;</span>SENDer: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
      Listbox.ItemIndex:=<span style="color: #cc66cc;">0</span>;
      ListCombo.ItemIndex:=<span style="color: #cc66cc;">0</span>;
      Comboboxexit:=<span style="color: #0000ff;">true</span>;
      Application.ShowHint := <span style="color: #0000ff;">True</span>;
      Application.OnIdle := ApplicationIdle;
      Application.OnShowHint := AppShowHint;
<span style="color: #0000ff;">END</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm1.ApplicationIdle<span class="br0">&#40;</span>sender: <span style="color: #0080ff;">TObject</span>; <span style="color: #0000ff;">var</span> Done: <span style="color: #0080ff;">boolean</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">var</span>
  pt: TPoint;
  wnd: HWND;
  lngtmp: <span style="color: #0000ff;">array</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>..<span style="color: #cc66cc;">128</span><span class="br0">&#93;</span> <span style="color: #0000ff;">of</span> <span style="color: #0080ff;">Char</span>;
  cpi: <span style="color: #0080ff;">Integer</span>;
&nbsp;
<span style="color: #0000ff;">begin</span>
  GetCursorPos<span class="br0">&#40;</span>pt<span class="br0">&#41;</span>;
  wnd := WindowFromPoint<span class="br0">&#40;</span>pt<span class="br0">&#41;</span>;
  <span style="color: #0000ff;">If</span> wnd &lt;&gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
    <span style="color: #0000ff;">begin</span>
      lngtmp<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span> := <span style="color: #cc66cc;">#0</span>;
      GetClassName<span class="br0">&#40;</span>wnd, lngtmp, SizeOf<span class="br0">&#40;</span>lngtmp<span class="br0">&#41;</span><span class="br0">&#41;</span>;
      <span style="color: #0000ff;">if</span> StrIComp<span class="br0">&#40;</span>lngtmp, <span style="color: #FF0000;">'ComboLBox'</span><span class="br0">&#41;</span> = <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
        <span style="color: #0000ff;">begin</span>
          Windows.ScreenToClient<span class="br0">&#40;</span>wnd, pt<span class="br0">&#41;</span>;
          cpi := SendMessage<span class="br0">&#40;</span>wnd, LB_ITEMFROMPOINT, <span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">Integer</span><span class="br0">&#40;</span>PointToSmallpoint<span class="br0">&#40;</span>pt<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
          <span style="color: #0000ff;">if</span> cpi &gt;= <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
            <span style="color: #0000ff;">begin</span>
              SendMessage<span class="br0">&#40;</span>wnd, LB_GETTEXT, cpi, <span style="color: #0080ff;">Integer</span><span class="br0">&#40;</span>@lngtmp<span class="br0">&#41;</span><span class="br0">&#41;</span>;
              Label1.Caption := lngtmp;
              exit;
            <span style="color: #0000ff;">end</span>;
        <span style="color: #0000ff;">end</span>;
    <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">END</span>.</pre></td></tr></table></code><hr />
</div>la fiche: <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">object</span> Form1: TForm1
  Left = <span style="color: #cc66cc;">541</span>
  Top = <span style="color: #cc66cc;">168</span>
  Hint = <span style="color: #FF0000;">'test'</span>
  BorderStyle = bsSingle
  Caption = <span style="color: #FF0000;">'Patisserie'</span>
  ClientHeight = <span style="color: #cc66cc;">297</span>
  ClientWidth = <span style="color: #cc66cc;">232</span>
  Color = <span style="color: #cc66cc;">8534605</span>
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -<span style="color: #cc66cc;">11</span>
  Font.Name = <span style="color: #FF0000;">'MS Sans Serif'</span>
  Font.Style = <span class="br0">&#91;</span><span class="br0">&#93;</span>
  OldCreateOrder = <span style="color: #0000ff;">False</span>
  Position = poScreenCenter
  ShowHint = <span style="color: #0000ff;">True</span>
  OnCreate = FormCreate
  PixelsPerInch = <span style="color: #cc66cc;">96</span>
  TextHeight = <span style="color: #cc66cc;">13</span>
  <span style="color: #0000ff;">object</span> Label1: TLabel
    Left = <span style="color: #cc66cc;">8</span>
    Top = <span style="color: #cc66cc;">248</span>
    Width = <span style="color: #cc66cc;">32</span>
    Height = <span style="color: #cc66cc;">13</span>
    Caption = <span style="color: #FF0000;">'Label1'</span>
  <span style="color: #0000ff;">end</span>
  <span style="color: #0000ff;">object</span> ListBox: TListBox
    Left = <span style="color: #cc66cc;">8</span>
    Top = <span style="color: #cc66cc;">24</span>
    Width = <span style="color: #cc66cc;">217</span>
    Height = <span style="color: #cc66cc;">208</span>
    Style = lbOwnerDrawFixed
    Color = <span style="color: #cc66cc;">12446463</span>
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clBlue
    Font.Height = -<span style="color: #cc66cc;">12</span>
    Font.Name = <span style="color: #FF0000;">'MS Sans Serif'</span>
    Font.Style = <span class="br0">&#91;</span><span class="br0">&#93;</span>
    ItemHeight = <span style="color: #cc66cc;">13</span>
    Items.Strings = <span class="br0">&#40;</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Le Paris-Brest'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  La Brioche'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Les Chouquettes'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Le Chou'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  L&#146;&Eacute;clair'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  La Charlotte aux fraises'</span><span class="br0">&#41;</span>
    ParentFont = <span style="color: #0000ff;">False</span>
    ParentShowHint = <span style="color: #0000ff;">False</span>
    ShowHint = <span style="color: #0000ff;">True</span>
    TabOrder = <span style="color: #cc66cc;">1</span>
    OnDrawItem = ListBoxDrawItem
    OnMeasureItem = ListBoxMeasureItem
  <span style="color: #0000ff;">end</span>
  <span style="color: #0000ff;">object</span> ListCombo: TComboBox
    Left = <span style="color: #cc66cc;">8</span>
    Top = <span style="color: #cc66cc;">2</span>
    Width = <span style="color: #cc66cc;">217</span>
    Height = <span style="color: #cc66cc;">19</span>
    Style = csOwnerDrawFixed
    Color = <span style="color: #cc66cc;">12446463</span>
    DropDownCount = <span style="color: #cc66cc;">13</span>
    Font.Charset = ANSI_CHARSET
    Font.Color = clRed
    Font.Height = -<span style="color: #cc66cc;">12</span>
    Font.Name = <span style="color: #FF0000;">'MS Sans Serif'</span>
    Font.Style = <span class="br0">&#91;</span><span class="br0">&#93;</span>
    ItemHeight = <span style="color: #cc66cc;">13</span>
    ParentFont = <span style="color: #0000ff;">False</span>
    ParentShowHint = <span style="color: #0000ff;">False</span>
    ShowHint = <span style="color: #0000ff;">True</span>
    TabOrder = <span style="color: #cc66cc;">0</span>
    OnDrawItem = ListBoxDrawItem
    OnEnter = ListComboEnter
    OnExit = ListComboExit
    OnMeasureItem = ListBoxMeasureItem
    Items.Strings = <span class="br0">&#40;</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Le Paris-Brest'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  La Brioche'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Les Chouquettes'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  Le Chou'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  L&#146;&Eacute;clair'</span>
      <span style="color: #FF0000;">'p&acirc;tisseries fran&ccedil;aises typiques :  La Charlotte aux fraises'</span><span class="br0">&#41;</span>
  <span style="color: #0000ff;">end</span>
<span style="color: #0000ff;">end</span></pre></td></tr></table></code><hr />
</div>cela fonctionne bien dans un listbox par contre je n'arrive pas a le faire dans le menu dérroulant du tcombobox <br />
il n'y a pas de :  Lstindex := Itematpos(Cursorpos, TRUE); dans Tcombobox<br />
ensuite je suis passé par 'ApplicationIdle' pour savoir quel item est affiché (Label1.Caption) mais je ne sais pas comment l'afficher dans l'aide contextuelle.<br />
<br />
merci de vos aides</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675421d1775352145/environnements-developpement/delphi/langage/afficher-laide-contextuelle-fin-ligne-tlistbox-tcombobox/pastisserie.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	
		<fieldset class="fieldset">
			<legend>Fichiers attachés</legend>
			<ul>
			<li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/zip.gif" alt="Type de fichier : zip" />
	<a href="https://www.developpez.net/forums/attachments/p675431d1775390690/environnements-developpement/delphi/langage/afficher-laide-contextuelle-fin-ligne-tlistbox-tcombobox/patisseries.zip/">patisseries.zip</a> 
(213,0 Ko)
</li>
			</ul>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>ZonZorg</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183047/environnements-developpement/delphi/langage/afficher-l-aide-contextuelle-fin-ligne-tlistbox-tcombobox/</guid>
		</item>
		<item>
			<title>fermeture de Fiche non modal</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182773&amp;goto=newpost</link>
			<pubDate>Fri, 20 Mar 2026 09:03:47 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
J'aurais besoin...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J'aurais besoin d'une précision sur les fermeture de Fiche non Modal:<br />
<br />
je ferme et libère la Form 2 de cette manière:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">procedure</span> TForm2.FormClose<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span>; <span style="color: #0000ff;">var</span> Action: TCloseAction<span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">if</span> Sender = Form2 <span style="color: #0000ff;">then</span> Action:=caFree;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">procedure</span> TForm2.FormDestroy<span class="br0">&#40;</span>Sender: <span style="color: #0080ff;">TObject</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">begin</span>
<span style="color: #0000ff;">if</span> Sender=Form2 <span style="color: #0000ff;">then</span> Form2:=<span style="color: #0000ff;">nil</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Est ce que le code dans FormDestroy est utile ?<br />
<br />
L'appel a été fait comme ceci depuis Form1<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
  form2:=Tform2.Create<span class="br0">&#40;</span><span style="color: #0000ff;">Self</span><span class="br0">&#41;</span>;
  <span style="color: #0000ff;">try</span>
  form2.Show;
  <span style="color: #0000ff;">except</span>
  FreeAndNil<span class="br0">&#40;</span>form2<span class="br0">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
<br />
Cordialement</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>looping</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182773/environnements-developpement/delphi/langage/fermeture-fiche-non-modal/</guid>
		</item>
		<item>
			<title><![CDATA[Equivalent d'un case avec String et même plus]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182657&amp;goto=newpost</link>
			<pubDate>Sun, 15 Mar 2026 20:38:35 GMT</pubDate>
			<description>Bonsoir, 
 
Petite réflexion...</description>
			<content:encoded><![CDATA[<div>Bonsoir,<br />
<br />
Petite réflexion du week-end concernant l'instruction case de Delphi qui n'autorise que des types ordinaux. Donc, ne fonctionne pas par exemple avec une string. Il existe plusieurs manières de contourner et de parvenir au résultat telles que ce qui est proposé dans la <a href="https://delphi.developpez.com/faq/?page=Chaines-de-caracteres#Comment-faire-un-Case-Of-avec-des-String" target="_blank">FAQ de Développez</a>.<br />
<br />
En Java par exemple, l'instruction Switch a évolué lors des versions récentes et en plus d'accepter les string, l'instruction switch peut renvoyer une valeur pour initialiser une variable. J'ai donc essayé de trouver une solution qui permette de faire l'équivalent d'un case mais avec n'importe quel type (et pas en ajoutant que la possibilité avec une string) et qui permette d'initialiser la valeur d'une variable.<br />
<br />
L'idée est simplement d'utiliser les TDictionary. Dans le projet exemple joint (compatible en l'état avec Delphi 13 car utilisation de l'opérateur ternaire mais facilement modifiable pour le rendre compatible avec Delphi 12 et 11), je présente 3 exemples basés sur le principe suivant.<br />
Exemple d'un case potentiel sur une variable de type string pour alimenter une variable de type integer :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">var</span> nb := <span style="color: #cc66cc;">0</span>;
<span style="color: #0000ff;">case</span> uneString <span style="color: #0000ff;">of</span>
  <span style="color: #FF0000;">'un'</span>: nb := <span style="color: #cc66cc;">1</span>;
  <span style="color: #FF0000;">'deux'</span>: nb := <span style="color: #cc66cc;">2</span>;
  <span style="color: #FF0000;">'trois'</span>: nb := <span style="color: #cc66cc;">3</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>On peut initialiser la variable nb de la manière suivante :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">// Initialiser un TDictionary </span>
<span style="color: #0000ff;">var</span> dSimple:= TDictionary &lt;<span style="color: #0080ff;">string</span>, integer&gt;.Create;
dSimple.add<span class="br0">&#40;</span><span style="color: #FF0000;">'un'</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>;
dSimple.add<span class="br0">&#40;</span><span style="color: #FF0000;">'deux'</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span>;
dSimple.add<span class="br0">&#40;</span><span style="color: #FF0000;">'trois'</span>, <span style="color: #cc66cc;">3</span><span class="br0">&#41;</span>;
&nbsp;
<span class="br0">&#91;</span>...<span class="br0">&#93;</span>
&nbsp;
<span style="color: #808080;">// Initialisation de la variable nb </span>
<span style="color: #0000ff;">var</span> aValue := <span style="color: #cc66cc;">0</span>;
<span style="color: #0000ff;">var</span> nb := <span style="color: #0000ff;">if</span> dSimple.TryGetValue<span class="br0">&#40;</span>cbeSimple.Text.ToLower, aValue<span class="br0">&#41;</span>
                     <span style="color: #0000ff;">then</span> aValue
                     <span style="color: #0000ff;">else</span> <span style="color: #cc66cc;">0</span>;</pre></td></tr></table></code><hr />
</div>Avantages : c'est donc l'équivalent d'un case sur une variable de type string, qui permet d'initialiser une variable et il serait même possible de rajouter dynamiquement des cas non prévus dans le code initial (on pourrait initialiser le TDictionary via une requête SQL, via lecture d'un fichier de paramétrage, via un appel d'API...).<br />
<br />
Les deux autres exemples du projet joint sont similaires mais pour lesquels le TDictionary est toujours constitué d'une clé de type string (mais n'importe quel autre type serait possible) et le type des valeurs est soit une procédure soit une fonction ce qui permet plus de souplesse (n'importe quel traitement est envisageable).<br />
<br />
Voilà, si ça peut servir à quelqu'un ;)<br />
<br />
Fichier Zip du projet exemple : <a href="https://www.developpez.net/forums/attachments/p674969d1773606508/environnements-developpement/delphi/langage/equivalent-d-case-string-meme-plus/case-tdictionary.zip/"  title="Nom : case-tdictionary.zip
Affichages : 28
Taille : 76,1 Ko">case-tdictionary.zip</a></div>


	<div style="padding:10px">

	

	

	

	
		<fieldset class="fieldset">
			<legend>Fichiers attachés</legend>
			<ul>
			<li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/zip.gif" alt="Type de fichier : zip" />
	<a href="https://www.developpez.net/forums/attachments/p674969d1773606508/environnements-developpement/delphi/langage/equivalent-d-case-string-meme-plus/case-tdictionary.zip/">case-tdictionary.zip</a> 
(76,1 Ko)
</li>
			</ul>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>gbegreg</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182657/environnements-developpement/delphi/langage/equivalent-d-case-string-meme-plus/</guid>
		</item>
		<item>
			<title><![CDATA[S'agit-il d'un nouveau bug de la classe TControl, ou est-il déjà connu de tous ?]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182189&amp;goto=newpost</link>
			<pubDate>Thu, 19 Feb 2026 05:56:49 GMT</pubDate>
			<description><![CDATA[S'agit-il d'un nouveau bug de...]]></description>
			<content:encoded><![CDATA[<div>S'agit-il d'un nouveau bug de la classe TControl, ou est-il déjà connu de tous*?<br />
<br />
Lorsqu'on utilise un objet comme TCustomPanel ou d'autres objets dérivés de TControl (en fait, presque tous), et qu'on tente d'effectuer un redimensionnement par effet miroir (où la propriété «*Width*» devient «*Left*» et inversement, et la propriété «*Height*» devient «*Top*» et inversement), le contrôle se bloque à certains moments lors du calcul. Pendant 16*instants (ou pixels), il reste figé, comme on peut le voir dans la vidéo*!<br />
<br />
Remarque*: lorsque la souris atteint une certaine valeur, le compteur régresse à des valeurs comprises entre +8, 0 et -8 (soit 16 + 1), avec un écart de 24. Ce cycle se répète pour d'autres valeurs, comme le montre l'image… qui démontre qu'il s'agit de multiples de 8, ce qui correspond aux bordures de la fenêtre, qui font, sauf erreur de ma part, 8*pixels.<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p674372d1771480588/environnements-developpement/delphi/langage/s-agit-d-nouveau-bug-classe-tcontrol-deja-connu/delphi_bug_em_tcontrol_resizing_in_effect_mirror.gif/" border="0" alt="Nom : Delphi_Bug_em_TControl_Resizing_in_Effect_Mirror.gif
Affichages : 94
Taille : 1,60 Mo"  style="float: CONFIG" /><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">unit</span> Unit1;
&nbsp;
<span style="color: #0000ff;">interface</span>
&nbsp;
<span style="color: #0000ff;">uses</span>
  System.SysUtils,
  System.Classes,
  Vcl.Controls,
  Vcl.StdCtrls,
  Vcl.ExtCtrls;
&nbsp;
<span style="color: #0000ff;">type</span>
  TMy_PNL_Teste = <span style="color: #0000ff;">class</span><span class="br0">&#40;</span> TCustomPanel <span class="br0">&#41;</span>
  <span style="color: #0000ff;">private</span>
    LCmp: TComponent;
  <span style="color: #0000ff;">protected</span>
    <span style="color: #0000ff;">procedure</span> Resize; <span style="color: #0000ff;">override</span>;
  <span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">implementation</span>
&nbsp;
<span style="color: #808080;">{ TMy_PNL_Teste }</span>
&nbsp;
<span style="color: #0000ff;">procedure</span> TMy_PNL_Teste.Resize;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">inherited</span>;
  LCmp := Parent.FindComponent<span class="br0">&#40;</span> <span style="color: #FF0000;">'Label1'</span> <span class="br0">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span> LCmp &lt;&gt; <span style="color: #0000ff;">nil</span> <span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
    TLabel<span class="br0">&#40;</span> LCmp <span class="br0">&#41;</span>.Caption := Format<span class="br0">&#40;</span> <span style="color: #FF0000;">'(%d, %d)'</span>, <span style="color: #808080;">//</span>
      <span class="br0">&#91;</span> Width, Height <span class="br0">&#93;</span> <span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">end</span>.</pre></td></tr></table></code><hr />
</div><div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">unit</span> umy_component_register;
&nbsp;
<span style="color: #0000ff;">interface</span>
&nbsp;
<span style="color: #0000ff;">uses</span>
  System.SysUtils,
  System.classes,
  <span style="color: #808080;">//</span>
  DesignIntf,
  DesignEditors;
&nbsp;
<span style="color: #0000ff;">procedure</span> <span style="color: #0000ff;">Register</span>;
&nbsp;
<span style="color: #0000ff;">implementation</span>
&nbsp;
<span style="color: #0000ff;">uses</span>
  Unit1;
&nbsp;
<span style="color: #0000ff;">procedure</span> <span style="color: #0000ff;">Register</span>;
<span style="color: #0000ff;">begin</span>
  RegisterComponents<span class="br0">&#40;</span> <span style="color: #FF0000;">'My Components'</span>, <span class="br0">&#91;</span> TMy_PNL_Teste <span class="br0">&#93;</span> <span class="br0">&#41;</span>;
<span style="color: #0000ff;">end</span>;
&nbsp;
<span style="color: #0000ff;">end</span>.</pre></td></tr></table></code><hr />
</div><br />
Je suppose que la méthode `DoConstrainedResize` est à l'origine de l'erreur de calcul. En effet, si vous observez attentivement, vous constaterez que lors du calcul de la largeur maximale, la largeur minimale n'est pas calculée*; autrement dit, la méthode vérifie si l'une est hors de l'intervalle, mais pas l'autre. Le même comportement est observé pour la hauteur. Je pense que c'est incorrect, car l'intervalle de valeurs devrait se situer entre la largeur minimale et la largeur maximale, et non pas seulement entre l'une des deux*!<br />
<br />
Cependant, comme `NewWidth` et `NewHeight` sont utilisées et modifiées par d'autres méthodes, l'origine exacte de l'erreur reste incertaine.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">procedure</span> TControl.DoConstrainedResize<span class="br0">&#40;</span><span style="color: #0000ff;">var</span> NewWidth, NewHeight: <span style="color: #0080ff;">Integer</span><span class="br0">&#41;</span>;  <span style="color: #808080;">// Vcl.Control.pas, line 7774, Delphi 13</span>
<span style="color: #0000ff;">var</span>
  MinWidth, MinHeight, MaxWidth, MaxHeight: <span style="color: #0080ff;">Integer</span>;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> Constraints.MinWidth &gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
    MinWidth := Constraints.MinWidth
  <span style="color: #0000ff;">else</span>
    MinWidth := <span style="color: #cc66cc;">0</span>;
  <span style="color: #0000ff;">if</span> Constraints.MinHeight &gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
    MinHeight := Constraints.MinHeight
  <span style="color: #0000ff;">else</span>
    MinHeight := <span style="color: #cc66cc;">0</span>;
  <span style="color: #0000ff;">if</span> Constraints.MaxWidth &gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
    MaxWidth := Constraints.MaxWidth
  <span style="color: #0000ff;">else</span>
    MaxWidth := <span style="color: #cc66cc;">0</span>;
  <span style="color: #0000ff;">if</span> Constraints.MaxHeight &gt; <span style="color: #cc66cc;">0</span> <span style="color: #0000ff;">then</span>
    MaxHeight := Constraints.MaxHeight
  <span style="color: #0000ff;">else</span>
    MaxHeight := <span style="color: #cc66cc;">0</span>;
&nbsp;
  <span style="color: #808080;">{ Allow override of constraints }</span>
  ConstrainedResize<span class="br0">&#40;</span>MinWidth, MinHeight, MaxWidth, MaxHeight<span class="br0">&#41;</span>;
&nbsp;
  <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>MaxWidth &gt; <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span> <span style="color: #0000ff;">and</span> <span class="br0">&#40;</span>NewWidth &gt; MaxWidth<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>       &lt;-------
    NewWidth := MaxWidth
  <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>MinWidth &gt; <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span> <span style="color: #0000ff;">and</span> <span class="br0">&#40;</span>NewWidth &lt; MinWidth<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
    NewWidth := MinWidth;
&nbsp;
  <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>MaxHeight &gt; <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span> <span style="color: #0000ff;">and</span> <span class="br0">&#40;</span>NewHeight &gt; MaxHeight<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>     &lt;-------
    NewHeight := MaxHeight
  <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>MinHeight &gt; <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span> <span style="color: #0000ff;">and</span> <span class="br0">&#40;</span>NewHeight &lt; MinHeight<span class="br0">&#41;</span> <span style="color: #0000ff;">then</span>
    NewHeight := MinHeight;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div></div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p674372d1771480588/environnements-developpement/delphi/langage/s-agit-d-nouveau-bug-classe-tcontrol-deja-connu/delphi_bug_em_tcontrol_resizing_in_effect_mirror.gif/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>emailx45</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182189/environnements-developpement/delphi/langage/s-agit-d-nouveau-bug-classe-tcontrol-deja-connu/</guid>
		</item>
		<item>
			<title><![CDATA[[D7] Violation d'accès]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181894&amp;goto=newpost</link>
			<pubDate>Tue, 03 Feb 2026 10:37:21 GMT</pubDate>
			<description>Bonjour à tous, 
 
je cherche...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous,<br />
<br />
je cherche à créer un TBitmap avec cette fonction :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">{ ========================================================================= }</span>
<span style="color: #0000ff;">Function</span> CreateNewBitmap<span class="br0">&#40;</span>Width,Height: <span style="color: #0080ff;">Word</span>; Color: TColor<span class="br0">&#41;</span> : TBitmap ;
<span style="color: #0000ff;">var</span>
 bmp : TBitmap;
<span style="color: #0000ff;">begin</span>
 bmp := TBitmap.Create;
 <span style="color: #0000ff;">try</span>
   bmp.PixelFormat := pf24bit;
   bmp.Width := Width;
   bmp.Height := Height;
   bmp.Canvas.Brush.Color := Color;
   bmp.Canvas.FillRect<span class="br0">&#40;</span>Rect<span class="br0">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, Width, Height<span class="br0">&#41;</span><span class="br0">&#41;</span>;
   Result.Assign<span class="br0">&#40;</span>Bmp<span class="br0">&#41;</span> ;                                          &lt;== Erreur ici
 <span style="color: #0000ff;">finally</span>
   bmp.Free;
 <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;
<span style="color: #808080;">{ ========================================================================= }</span></pre></td></tr></table></code><hr />
</div>J'ai une violation d'accès sur la ligne pointée surement parce ce que Result n'a pas été créé. Est ce que je dois faire un create sur le Bmp Result ?<br />
<br />
A+<br />
Charly</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>Charly910</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181894/environnements-developpement/delphi/langage/d7-violation-d-acces/</guid>
		</item>
		<item>
			<title>form et constraint</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181478&amp;goto=newpost</link>
			<pubDate>Wed, 14 Jan 2026 09:50:45 GMT</pubDate>
			<description>Bonjour, 
 
Un truc que je...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Un truc que je n'avais pas remarqué:<br />
<br />
Lorsque je réduis une &quot;form&quot; dans la barre des tache et que je la fais réapparaitre: je perds mes contraintes en hauteur.<br />
<br />
Voici les réglages utilisés:<br />
<img src="https://www.developpez.net/forums/attachments/p673251d1768384228/environnements-developpement/delphi/langage/form-constraint/size.jpg/" border="0" alt="Nom : size.jpg
Affichages : 143
Taille : 37,2 Ko"  style="float: CONFIG" /><br />
<br />
<br />
Lorsque j'ouvre la feuille la 1ère fois, pas de problème , mes contraintes sont respectées: je peux régler en hauteur de 650 à 905<br />
<br />
Par contre si je la réduis et que je la fais réapparaitre: les contraintes en hauteurs sont perdues: on peut étirer en hauteur sans contrainte ?<br />
<br />
Je suis en Delphi XE5<br />
<br />
Cordialement</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p673251d1768384228/environnements-developpement/delphi/langage/form-constraint/size.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>looping</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181478/environnements-developpement/delphi/langage/form-constraint/</guid>
		</item>
		<item>
			<title><![CDATA[Comment trouver ce qui provoque une Exception Débordement d'entier]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181396&amp;goto=newpost</link>
			<pubDate>Fri, 09 Jan 2026 07:31:39 GMT</pubDate>
			<description><![CDATA[Bonjour 
 
J'ai un gros...]]></description>
			<content:encoded><![CDATA[<div>Bonjour<br />
<br />
J'ai un gros programme assez complexe qui de temps en temps plante avec une exception débordement d'entier.<br />
Le problème c'est que je n'arrive pas à savoir où ce produit cette exception. De plus ça se produit plus ou moins aléatoirement du coup c'est très difficile à reproduire.<br />
En version de debug je m’arrête  sur la procedure _InternalRaiseAtExcept de l'unité system.<br />
Et si je poursuis le pas à pas je me retrouve dans l'unité principale de mon programme mais impossible d'examiner les variables pour voir laquelle a déclenché l'exception.<br />
Existe t'il un moyen de voir ce qui déclenche cette exception ou des outils d'analyse de code qui permettent de signaler les problèmes potentiel</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>Gouyon</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181396/environnements-developpement/delphi/langage/trouver-provoque-exception-debordement-d-entier/</guid>
		</item>
		<item>
			<title>Affichage champ vectoriel</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181360&amp;goto=newpost</link>
			<pubDate>Wed, 07 Jan 2026 12:57:43 GMT</pubDate>
			<description><![CDATA[J'ai un fichier de n lignes...]]></description>
			<content:encoded><![CDATA[<div>J'ai un fichier de n lignes et 6 colonnes.<br />
<br />
Chaque ligne continent Y, Y, Y, Vx, Vy, Vz où [X,Y,Z] représentent les coordonnées d'un point dans l'espace et [Vx, Vy, Vz] les coordonnées d'un vecteur en [X,Y,Z]<br />
<br />
On peut écrire cela V(X,Y,Z) = ( Vx, Vy, Vz)  ou f(P)=V         ceci pour n points (X,Y,Z)<br />
<br />
<br />
est-il possible de représenter ce champ vectoriel avec des outils de delphi (comme open-gl ou autre).<br />
D’ailleurs la réponses pourrait être hors delphi.<br />
<br />
Voir la &quot;longueur&quot; d'un vecteur en 3D+perspective étant quasi impossible, j'imagine pouvoir tracer un array de flèches ou cônes, tous de même norme, orienté dans la direction de V en chaque point P et coder la norme de V en chaque point par la couleur de l'objet qui le représente <br />
<br />
Merci pour vos suggestions.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>j.p.mignot</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181360/environnements-developpement/delphi/langage/affichage-champ-vectoriel/</guid>
		</item>
		<item>
			<title>Problème de compilation</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180493&amp;goto=newpost</link>
			<pubDate>Sun, 16 Nov 2025 20:14:51 GMT</pubDate>
			<description>Bonjour à tous, 
 
Je suis...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous,<br />
<br />
Je suis actuellement sous W10, Delphi RIO , Pack composants TMS. Aucune modification à l'environnement de dev n'a été apportée, ni mise à jour....<br />
<br />
J'ai seulement fait une recopie intégrale de ma structure de développement pour creer une nouvelle version.<br />
 <br />
<b>Voila mon problème.<br />
</b><br />
J'ai une DLL (parmi d'autres) que je compile sans erreur depuis plusieurs années, mais depuis quelques jours même si la compilation est correcte, les modifications que j'y apporte ne sont pas prises en compte dans la DLL compilée.<br />
<br />
<b>Voici mes observations:</b><br />
<br />
<ul><li style="">Quand je regarde dans le répertoire de destination des DLL de l'application, la date et l'heure de la compilation de la DLL sont correctes.</li><li style="">Le chemin de destination des DLL compilées est correct.</li><li style="">Le nom de l'hôte (pour son exécution) qui utilise la DLL est correct.</li><li style="">Quand je retire la DLL en question, l'application détecte bien son absence</li></ul><br />
Tous cela laisse penser que la DLL que je compile se trouve bien à l'endroit ou l'application doit la trouver.     <br />
<br />
<b>Remarque :</b> <br />
<br />
Ni les modifications dans le code, ni celles dans la fiche (par exemple ajout d'un composant) ne sont prises en compte.<br />
<br />
J'ai essayé de modifier deux autres DLL de cette application qui suit exactement le même processus de création des fiches, de dialogue ... , tous ce passe bien et parmi les 30 DLL qui sont associées à cette application, elle semble être la seule à faire cela.<br />
<br />
J'ai ouvert le source de la DLL dans l'éditeur Delphi et j'ai supprimé <b>Tous</b> les fichiers en rapport a cette DLL, et sauvegardé l'ensemble pour remplacer des fichiers qui serait corrompu...!<br />
<br />
Si je compile cette DLL dans une version précédente de l'application, elle prend en compte les modifications, et quand je déplace la DLL compilée dans la version actuelle de l'application le fonctionnement est conforme.<br />
<br />
Et la je suis a court d'idée, je n'arrive toujours pas a visualiser mes modifications, ni visuelle dans la fiche, ni fonctionnelle dans le code, quand je suis dans la structure de ma dernière version de l'application<br />
<br />
Des idées, des pistes ?<br />
<br />
Bonne soirée.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>petitcoucou31</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180493/environnements-developpement/delphi/langage/probleme-compilation/</guid>
		</item>
		<item>
			<title>Police système différente entre D7 et D10</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180491&amp;goto=newpost</link>
			<pubDate>Sun, 16 Nov 2025 19:05:05 GMT</pubDate>
			<description>Bonjour. Je viens de...</description>
			<content:encoded><![CDATA[<div>Bonjour. Je viens de découvrir que le même code pour lire la police système ne me retourne pas ma même valeur suivant que je compile sous D7 ou sous D10.2.<br />
Le code est le suivant :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">var</span> 
    dc:HDC;
    result:<span style="color: #0080ff;">integer</span>;
<span style="color: #0000ff;">begin</span>
    dc:=GetDC<span class="br0">&#40;</span><span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>;
    result:=GetDeviceCaps<span class="br0">&#40;</span>dc,LOGPIXELSX<span class="br0">&#41;</span>;
    ReleaseDC<span class="br0">&#40;</span><span style="color: #cc66cc;">0</span>,dc<span class="br0">&#41;</span>;
    ....
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Si mes paramètres d'affichage Windows (Windows10) sont à 100%, pas de souci, les deux compilations me renvoient result=96 (normal).<br />
Si je passe à 125% en paramètre d'affichage, la compilation D7 me renvoie toujours 96 (???) et la compilation D10 me renvoie 120 (normal).<br />
Une idée ?<br />
Gab</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>f6dqm1</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180491/environnements-developpement/delphi/langage/police-systeme-differente-entre-d7-d10/</guid>
		</item>
		<item>
			<title>mail avec jvmail</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2180061&amp;goto=newpost</link>
			<pubDate>Fri, 24 Oct 2025 07:51:55 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
Lorsque j'envoie...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Lorsque j'envoie un mail avec le compo &quot;jvmail&quot; , Outlook s'ouvre bien , et je peux envoyer mon mail.<br />
Par contre , Outlook passe au premier plan , et avant d'envoyer le mail,  je ne peux pas accéder à d'autre fenêtres, ou revenir à mon application: je dois absolument envoyer le mail.<br />
<br />
C'est un comportement que me reprochent souvent mes utilisateurs.<br />
Est ce qu'il y a moyen de rendre Outlook en arrière plan ?<br />
<br />
Cordialement</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>looping</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2180061/environnements-developpement/delphi/langage/mail-jvmail/</guid>
		</item>
		<item>
			<title>Numero build auto</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179692&amp;goto=newpost</link>
			<pubDate>Tue, 07 Oct 2025 08:54:53 GMT</pubDate>
			<description>Bonjour, 
 
Sur Delphi XE5,...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Sur Delphi XE5, j'ai activé l'incrémentation auto du numéro de build.<br />
Mais sans succès. Le chiffre ne change pas.<br />
<br />
D'après une page d'aide Embarcadero , il faut créer la variable d'environnement &quot;SAVEVRC&quot; et mettre sa valeur à TRUE.<br />
Ce que j'ai fait et le fichier *.vrc est bien crée dans le répertoire du projet.<br />
<br />
Mais le build ne s'incrémente toujours pas .... !<br />
Est ce qu'il manque quelque chose ?<br />
<br />
<br />
Cordialement</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>looping</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179692/environnements-developpement/delphi/langage/numero-build-auto/</guid>
		</item>
		<item>
			<title>bug sur enchainement de fenêtre</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179621&amp;goto=newpost</link>
			<pubDate>Thu, 02 Oct 2025 15:00:08 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
J'ai parfois un...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J'ai parfois un bug bloquant qui survient lorsque je navigue entre différentes fenêtres.<br />
<br />
Quand je sors du bug , l'interface Delphi (XE5) ouvre un nouvel onglet avec l'unité <b>VCL.menus</b> et ça pointe une erreur dans la routine suivante:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">function</span> TMenuItem.GetCount: <span style="color: #0080ff;">Integer</span>;
<span style="color: #0000ff;">begin</span>
  <span style="color: #0000ff;">if</span> FItems = <span style="color: #0000ff;">nil</span> <span style="color: #0000ff;">then</span> Result := <span style="color: #cc66cc;">0</span>
  <span style="color: #0000ff;">else</span> Result := FItems.Count;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Surement en rapport avec les menus ? Mais je vois pas ?<br />
<br />
<br />
Merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>looping</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179621/environnements-developpement/delphi/langage/bug-enchainement-fenetre/</guid>
		</item>
		<item>
			<title><![CDATA[Delphi Rad Studio 12 - obtenir le chemin absolu du fichier principal de mon projet à l'execution]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179517&amp;goto=newpost</link>
			<pubDate>Sat, 27 Sep 2025 17:32:44 GMT</pubDate>
			<description><![CDATA[Bonjour ! 
S'il vous plait,...]]></description>
			<content:encoded><![CDATA[<div>Bonjour !<br />
S'il vous plait, serait-il possible d'avoir le chemin complet de mon fichier projet (monprojet.dproj) pendant la phase d'execution de mon proramme.<br />
<br />
merci d'avance de vos réponses.<br />
cordialement,<br />
Dibak</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>dibak</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179517/environnements-developpement/delphi/langage/delphi-rad-studio-12-obtenir-chemin-absolu-fichier-principal-projet-l-execution/</guid>
		</item>
		<item>
			<title>B-Tree ou R/B-Tree avec clés en format string, basé sur disque ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179514&amp;goto=newpost</link>
			<pubDate>Sat, 27 Sep 2025 13:17:22 GMT</pubDate>
			<description>Bonjour, 
 
Je suis sous...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je suis sous Windows 11 avec Delphi 6 PE.<br />
<br />
Je cherche une implémentation d'un B-Tree ou d'un Red-Black-Tree en delphi avec des clés string, mais basé sur disque, pas en mémoire.<br />
J'ai bien trouvé un R/B-Tree opérationnel avec D6 PE, mais il est basé mémoire. <br />
<br />
Je parle bien d'une unité ou d'un composant implémentant un tel arbre, pas d'une base de données complète comme SQLite ou similaire.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f776/environnements-developpement/delphi/langage/">Langage</category>
			<dc:creator>KlausGunther</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179514/environnements-developpement/delphi/langage/b-tree-r-b-tree-cles-format-string-base-disque/</guid>
		</item>
	</channel>
</rss>
