Tech-Ecke / Delphi Inhalt / Variable

 

     Variable

 

 

   Typen (nur die wichtigsten):

Integer //Ganzzahl, keine Nachkommastellen von –2147483648 bis 214748364 / Größe: 4Byte
Single //Gleitkommazahl, Genauigkeit ≈ 3,403x1038  / 7-8 Dezimalstellen / Größe:4 Byte
Double //Gleitkommazahl, Genauigkeit  ≈ 1,798x10308  / 15-16 Dezimalstellen / Größe:8 Byte
Extended //Gleitkommazahl, Genauigkeit  ≈ 1,190·104932  / 19-20 Dezimalstellen / Größe:10 Byte
Cardinal // positiver Ganzzahlenwert / Größe: 4Byte
   
String //Zeichen und Zeichenkette
TStringList // ist eigentlich eine Komponente mehr Infos sieh hier
   
Boolean //Wahrheitswert, nur 'true' oder 'false'  / Größe: 1 Byte

 

   Deklarieren

   procedure...
    var
       
Zalhl1, Zahl2, Zahl3: integer;
        
Text1, Text2, Text3: string;
   
begin...
 

 

   Array-Variable (Feldvariable)

      var
       
TextA: array [0..3] of String
 // eindimensionales Array mit der Länge 4
     
  TextB: array [0..3, 0..3] of String  // mehrdimensionales Array mit der Länge 4
 

Dynamische Array

Eindimensional:

      var
       
TextA: array of String;
 .
 .
 .

SetLength(TextA, 20);  // eindimensionales Array mit der Länge 20

 

Mehrdimensional:

      var
       
TextA: array of array of String;
        n: Integer;
 .
 .
 .

SetLength(TextA, 3);  // festlegen der Länge in des ersten Feldes
for n := 1 to 3 do SetLength(TextA[n -1],3);  // festlegen der Länge des zweiten Feldes, muss für jedes Feld separat erfolgen !

 

 

   Record

Ein Record ist im Grunde eine eindimensionale Variable, bei der jedoch jedes einzelne Feld einen Anderen Variable-Typ enthalten kann. Recors werden unter type deklariert:

   MeinRecord = record    // siehe Globale Variable und Records für die Deklarationsposition im Quelltext
   
Zahl: Integer;
   
Text: String;
 end
;
 

Wert zuweisen und abfragen:

   MeinRecord.Zahl := 10;
 
MeinRecord.Text := 'Records sind toll';
 

 

   Globale Variablen und Records  (Variable von Form1 in Form2 nutzen)

   unit Unit1

 interface

 uses
    
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls;

type
       
MeinRecord = record    // hier stehen Records
          
Zahl: Integer;
        
  Text: String;
        end
;

 private
  
{ Private-Deklarationen }
public
  
{ Public-Deklarationen }      // hier stehen globale Variablen die für alle Units gelten
end;

var
Form1: TForm1; 
// hier stehen globale Variablen die nur für diese Unit gelten

implementation
...
uses...
     

// möchte man nun Variablen von Form1 in Form2 nutzen ist dies nur die halbe Miete, denn Unit2 muss dazu auch
//Unit1 nutzen können. Dazu bei geöffnetem Form2 im Hauptmenü auf - "Datei - Unit verwenden..." - gehen oder bei
// implementation - uses die entsprechende Unit eintragen, hier im Beispiel also Unit1
   
 

 

   Werte Zuweisen ( var S: String; Zahl: Integer;)

   Zahl := 5;
 Zahl := Zahl + 5;
 
   S := ('Text');
 S := S + ('Text');
 
   SArray[1] := ('Text1');
 
SArray[2] := ('Text2');

 ZArray[1] := 5;
 ZArray[2] := 10;
 

 

    Aufrunden  (Zahl: Integer;) - benötigt Math in uses!

   Zahl := ceil(10/3) // Zahl wird den Wert 4 enthalten
 

 

   Abrunden  (Zahl: Integer;) - benötigt Math in uses!

   Zahl := floor(10/3) // Zahl wird den Wert 3 enthalten
 

 

   Kaufmännisch Runden  (Zahl: Integer;)

   Zahl := round(10/3) // Zahl wird den Wert 3 enthalten
 

 

   Umwandeln von Variablen

IntToStr(Variable)     
//Integer zu String oder auch umgekehrt StrToInt
FloatToStr(Variable) 
//Extended 0. Real zu String oder umgekehrt StrToFloat
Integer zu Real        
// einfach zuweisen ZahlInt := ZahlReal
Real zu Integer        
//zahl1 := trunc(zahl1) Nachkommastellen abschneiden
                     
         //zahl2 := round(zahl2) Kaufmännisch Runden

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 22.12.2008]