<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.techtic.pro/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.techtic.pro/feed.php">
        <title>TechTIC prog:lazarus:types</title>
        <description></description>
        <link>http://wiki.techtic.pro/</link>
        <image rdf:resource="http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico" />
       <dc:date>2026-05-09T14:41:47+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:array&amp;rev=1679332711&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:const&amp;rev=1621239295&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:enum&amp;rev=1726398959&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:handle&amp;rev=1584548550&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:integer&amp;rev=1585926858&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:object&amp;rev=1588416485&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:pointer&amp;rev=1687014574&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:record&amp;rev=1724150132&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tdatetime&amp;rev=1679238863&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:transtypage&amp;rev=1722182785&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tsize&amp;rev=1585849070&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:types&amp;rev=1683909190&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:variant&amp;rev=1683988028&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico">
        <title>TechTIC</title>
        <link>http://wiki.techtic.pro/</link>
        <url>http://wiki.techtic.pro/lib/exe/fetch.php?media=favicon.ico</url>
    </image>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:array&amp;rev=1679332711&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-20T18:18:31+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Array</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:array&amp;rev=1679332711&amp;do=diff</link>
        <description>Array

Array Static


   TArrayOfString =  array[0..19] of string; // Tableau de 20 strings



   TFormsProps = (fpWidth,fpHeight); // Type énuméré
   TFormsPropNames = array[fpWidth..fpHeight] of string; // Tableau ayant comme index un type énuméré</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:const&amp;rev=1621239295&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-17T10:14:55+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Constantes</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:const&amp;rev=1621239295&amp;do=diff</link>
        <description>Constantes

Exemples


Const
  MonthStart = 0 ; // could be 1 and
  MonthEnd   = 11; // 12 if desired
  DayStart   = 0 ; // same,could be 1 and
  DayEnd     = 6;  // 7
  DayNameCh: array [DayStart .. DayEnd] of char =(
        'S','M','T','W','H','F','A');
  DayNameShort: array [DayStart .. DayEnd] of string=
    ( 'Sun','Mon','Tue','Wed','Thu',
      'Fri','Sat' ) ;
  DayNameLong: array DayStart .. DayEnd] of 
    string = ( 'Sunday', 'Monday','Tuesday','Wednesday',
               'Thursday', '…</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:enum&amp;rev=1726398959&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-15T13:15:59+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Enumération et Set Of</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:enum&amp;rev=1726398959&amp;do=diff</link>
        <description>Enumération et Set Of

Enumération

Ressources sur les énumérations:

	*   &lt;https://wiki.lazarus.freepascal.org/Enumerated_types&gt;

Déclaration d'une énumération


type
  MonthType = (January, February, March, April,
              May, June, July, August, September,
              October, November, December);
              
// exemple d'utilisation
var
  Month : MonthType;
 ...
  Month := January;  // Equivalent a Month := TMonthType(0);</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:handle&amp;rev=1584548550&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-18T17:22:30+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Handle</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:handle&amp;rev=1584548550&amp;do=diff</link>
        <description>Handle

Les Handles de type THandle défini dans l'unité sysutils (il me semble)

Astuces

Recuperer le Handle de l'application courante


AppHandle := GetCurrentProcess;


appel la function GetCurrentProcess:HANDLE; external 'kernel32' name 'GetCurrentProcess';</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:integer&amp;rev=1585926858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-03T17:14:18+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Integer / int64</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:integer&amp;rev=1585926858&amp;do=diff</link>
        <description>Integer / int64

Manips

connaitre le plus grand int64


vI64 = high(int64);</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:object&amp;rev=1588416485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-05-02T12:48:05+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Objects</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:object&amp;rev=1588416485&amp;do=diff</link>
        <description>Objects


   TMonObject = class(TParent)
   private
   protected
   public
      constructor Create; 
      destructor Destroy; override;  //Doit etre OVERRIDE sinon il n'est pas executé
   end;



Informations sur l'Objet


 // Nom de la classe
  Writeln('UnObjet est de la classe : ',UnObjet.ClassName);

   // Teste si l'instance hérite d'une classe particulière
  If UnObjet.InheritsFrom(TComponent) then
   Writeln('UnObjet hérite de TComponent.');

    // La classe parente, l'ancêtre
  Writeln…</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:pointer&amp;rev=1687014574&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-17T17:09:34+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Pointers</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:pointer&amp;rev=1687014574&amp;do=diff</link>
        <description>Pointers

A Noter

Remplir une variable de 0


  ZeroMemory(@vVar,SizeOf(vVar));


Length et SizeOf

Souvent dans les appels aux Api Windows on utilise un Buffer.

sous la forme adresse/longueur comme :


APIWindows(AHandle, pchar(vBuffer), length(vBuffer));</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:record&amp;rev=1724150132&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-20T12:35:32+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Record</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:record&amp;rev=1724150132&amp;do=diff</link>
        <description>Record

De base


Type
 TPoint  =  record
       x : Longint; 
       y : Longint;
 end;


Packed

Free Pascal soutient également un packed record, c'est-à-dire un enregistrement où tous les éléments sont alignés sur un octet. 

Par conséquent, les deux déclarations suivantes sont équivalentes :</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tdatetime&amp;rev=1679238863&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-19T16:14:23+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TDateTime</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tdatetime&amp;rev=1679238863&amp;do=diff</link>
        <description>TDateTime

Caractères de Formatage

Diverses routines de formatage de la date et de l'heure acceptent une chaîne de formatage pour formater la date et/ou l'heure.

Les caractères suivants peuvent être utilisés pour contrôler le formatage de la date et de l'heure :</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:transtypage&amp;rev=1722182785&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-28T18:06:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Transtypage</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:transtypage&amp;rev=1722182785&amp;do=diff</link>
        <description>Transtypage

Utiliser AS ou TMaClasse(xxxx)

Transtypage de la forme : TObject(MonObject)

	*  Typecast sans vérification : Convertit directement `MonObject` en `TObject` sans vérifier son type réel.
	*  Pas de vérification à l'exécution : A Utiliser lorsque vous êtes certain que `MonObject` est un `TObject`.</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tsize&amp;rev=1585849070&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-02T19:37:50+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TSize</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:tsize&amp;rev=1585849070&amp;do=diff</link>
        <description>TSize

TSizes en constante


const
   C_CHAR_INFLATE: TSize = (cx: 10; cy: 10);


Operation avec les TSizes

Ajout


// avec FNewSize, vSize1 : TSize
FNewSize := FNewSize+vSize1;
// ou
FnewSize:=FNewSize.Add(vSize1);</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:types&amp;rev=1683909190&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-12T18:33:10+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Les Types</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:types&amp;rev=1683909190&amp;do=diff</link>
        <description>Les Types

Sources

	*  &lt;https://www.freepascal.org/docs-html/prog/progse32.html#x198-2030008.2&gt;

Types Pascal natifs

	*  Pointers
	*  Objects
	*  Constantes
	*  Variant
	*  Record
	*  Integer / int64
	*  Array
	*  set
	*  Enumération et Set Of

Autre

	*  Handle
	*  TSize

Types valides
 Type          Taille             Min                             Max                Signé  Byte   1 Octet / 8 bits     0</description>
    </item>
    <item rdf:about="http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:variant&amp;rev=1683988028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-13T16:27:08+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Variant</title>
        <link>http://wiki.techtic.pro/doku.php?id=prog:lazarus:types:variant&amp;rev=1683988028&amp;do=diff</link>
        <description>Variant

A Savoir



Les VarTypes


   varEmpty = 0;
   varNull = 1;
   varSmallInt = 2;
   varInteger = 3;
   varSingle = 4;
   varDouble = 5;
   varDate = 7;
   varCurrency = 6;
   varOleStr = 8;
   varDispatch = 9;
   varError = 10;
   varBoolean = 11;
   varVariant = 12;
   varUnknown = 13;
   varDecimal = 14;
   varShortInt = 16;
   varByte = 17;
   varWord = 18;
   varLongWord = 19;
   varInt64 = 20;
   varQWord = 21;
   varRecord = 36;
   { Compiler-specific variant types (not known to CO…</description>
    </item>
</rdf:RDF>
