Software Schnipsel

Delphi

Snippes


 
private void button3_Click(object senderEventArgs e)
{
	 if (artikelBindingSource.Count 0)
	  {
		  System.Data.DataRowView SelectedRowView;
		  RechnungDataSet.ArtikelRow SelectedRow;
		  SelectedRowView = 
		(System.Data.DataRowView)artikelBindingSource.Current;
		  SelectedRow = 
		(RechnungDataSet.ArtikelRow)SelectedRowView.Row;
		  frmArtikel_1Druck OrdersfrmArtikel_1Druck = new 
		frmArtikel_1Druck();
		OrdersfrmArtikel_1Druck.LoadArtikel_1Druck(SelectedRow.Artik
		elNr);
		  OrdersfrmArtikel_1Druck.Show();
		}
	}
public partial class Artikel Form
{
	 public Artikel()
	 {
		 InitializeComponent();
		}
	private void artikelBindingNavigatorSaveItem_Click(object 
	senderEventArgs e)
	{
		 this.Validate();
		 this.artikelBindingSource.EndEdit();
		 this.artikelTableAdapter.Update(this.rechnungDataSet.Artike
		l);
		}
	internal void LoadNeu()
	{
		 this.artikelTableAdapter.Fill(this.rechnungDataSet.Artikel)
		;
		 this.artikelBindingSource.AddNew();
		}
	 internal void LoadBearbeitenArtikel(int ArtikelNr)
	{
		this.artikelTableAdapter.FillByArtikelNr(this.rechnungDataSe
		t.ArtikelArtikelNr);
		}
	private void button3_Click(object senderEventArgs e)
	{
		if (artikelBindingSource.Count 0)
		{
			 System.Data.DataRowView SelectedRowView;
			 RechnungDataSet.ArtikelRow SelectedRow;
			 SelectedRowView = 
			(System.Data.DataRowView)artikelBindingSource.Current;
			 SelectedRow = 
			(RechnungDataSet.ArtikelRow)SelectedRowView.Row;
			 frmArtikel_1Druck OrdersfrmArtikel_1Druck = new 
			frmArtikel_1Druck();
			 OrdersfrmArtikel_1Druck.LoadArtikel_1Druck(SelectedRow.Arti
			kelNr);
			 OrdersfrmArtikel_1Druck.Show();
			}
		}
	public partial class Artikel Form
	{
		 public Artikel()
		{
			 InitializeComponent();
			}
		private void artikelBindingNavigatorSaveItem_Click(object 
		senderEventArgs e)
		{
			 this.Validate();
			 this.artikelBindingSource.EndEdit();
			 this.artikelTableAdapter.Update(this.rechnungDataSet.Artike
			l);
			}
		internal void LoadNeu()
		{
			 this.artikelTableAdapter.Fill(this.rechnungDataSet.Artikel)
			;
			 this.artikelBindingSource.AddNew();
			}
		internal void LoadBearbeitenArtikel(int ArtikelNr)
		{
			this.artikelTableAdapter.FillByArtikelNr(this.rechnungDataSe
			t.ArtikelArtikelNr);
			}   
		
		
		

 
private void button3_Click(object senderEventArgs e)
{
	if (artikelBindingSource.Count >
	 0)
	  {
		     System.Data.DataRowView SelectedRowView;
		     RechnungDataSet.ArtikelRow SelectedRow;
		     SelectedRowView (System.Data.DataRowView)artikelBindingSource.Current;
		     SelectedRow = (RechnungDataSet.ArtikelRow)SelectedRowView.Row;
		     frmArtikel_1Druck OrdersfrmArtikel_1Druck = new frmArtikel_1Druck();
		     OrdersfrmArtikel_1DruckLoadArtikel_1Druck(SelectedRow.ArtikelNr);
		     OrdersfrmArtikel_1Druck.Show();
		}
	}         




 
function GeneratePass(syllablesnumbersByte): string;
  function Replicate(Caracterstring;
 QuantInteger): string;
  var 
    IInteger;
  begin
    Result := '';
    for := 1 to Quant do
      Result := Result Caracter;
  end;
const
  conso: array [0..19of Char = ('b''c''d''f''g''h''j',
    'k''l''m''n''p''r''s''t''v''w''x''y''z');
  vocal: array [0..4of Char = ('a''e''i''o''u');
var
  iInteger;
  sisfLongint;
  nstring;
begin
  Result := '';
  Randomize;
  if syllables <> 0 then
    for := 1 to syllables do
    begin
      Result := Result conso[Random(19)];
      Result := Result vocal[Random(4)];
    end;
  if numbers 1 then Result := Result IntToStr(Random(9))
  else if numbers >= 2 then
  begin
    if numbers 9 then numbers := 9;
    si     := StrToInt('1' Replicate('0'numbers 1));
    sf     := StrToInt(Replicate('9'numbers));
    n      := FloatToStr(si Random(sf));
    Result := Result Copy(n0,numbers);
  end;
end;





 
function MailURLMayBeInvalid(const sstring): Boolean;
var
  iInteger;
  cstring;
begin // ' ', Ã¤, Ã¶, Ã¼, ÃŸ, [, ], (, ), : in EMail-Address
  Result := (Trim(s) = '') or (Pos(' 'AnsiLowerCase(s)) > 0) or
    (Pos('ä'AnsiLowerCase(s)) > 0) or (Pos('ö'AnsiLowerCase(s)) > 0) or
    (Pos('ü'AnsiLowerCase(s)) > 0) or (Pos('ß'AnsiLowerCase(s)) > 0) or
    (Pos('['AnsiLowerCase(s)) > 0) or (Pos(']'AnsiLowerCase(s)) > 0) or
    (Pos('('AnsiLowerCase(s)) > 0) or (Pos(')'AnsiLowerCase(s)) > 0) or
    (Pos(':'AnsiLowerCase(s)) > 0);
  if Result then Exit;
 // @ not in EMail-Address;
  i      := Pos('@'s);
  Result := (0) or (1) or (Length(s));
  if Result then Exit;
  Result := (Pos('@'Copy(s1Length(s) - 1)) > 0);
  if Result then Exit;
 // Domain <= 1
  c      := Copy(s1Length(s));
  Result := Length(c) <= 1;
  if Result then Exit;
  i      := Pos('.'c);
  Result := (0) or (1) or (Length(c));
end;





 
  private
    procedure OpenMedia(WaveFile string);
    function GetStatus(StatusRequested DWord) : longint;
    procedure CloseMedia;
{....}
var
  MyErrordwFlagsLongint;
  FDeviceID Word;
{....}
uses
  MMSystem;
{....}
procedure TForm1.OpenMedia(WaveFilestring);
var
  MyOpenParmsTMCI_Open_Parms;
begin
  with MyOpenParms do
  begin
    dwCallback       := Handle;
 // TForm1.Handle
    lpstrDeviceType  := PChar('WaveAudio');
    lpstrElementName := PChar(WaveFile);
  end;
 {with MyOpenParms}
  dwFlags := MCI_WAIT or MCI_OPEN_ELEMENT or MCI_OPEN_TYPE;
  MyError := mciSendCommand(0MCI_OPENdwFlagsLongint(@MyOpenParms));
  // one could use mciSendCommand(DevId, here to specify a particular device
  if MyError 0 then
    FDeviceID := MyOpenParms.wDeviceID
  else
    raise Exception.Create('Open Failed');
end;
function TForm1.GetStatus(StatusRequestedDWORD): Longint;
var
  MyStatusParmsTMCI_Status_Parms;
begin
  dwFlags := MCI_WAIT or MCI_STATUS_ITEM;
  with MyStatusParms do
  begin
    dwCallback := Handle;
    dwItem     := StatusRequested;
  end;
  MyError := mciSendCommand(FDeviceID,
    MCI_STATUS,
    MCI_WAIT or MCI_STATUS_ITEM,
    Longint(@MyStatusParms));
  if MyError 0 then
    Result := MyStatusParms.dwReturn
  else
    raise Exception.Create('Status call to get status of ' +
      IntToStr(StatusRequested) + ' Failed');
end;
procedure TForm1.CloseMedia;
var
  MyGenParmsTMCI_Generic_Parms;
begin
  if FDeviceID 0 then
  begin
    dwFlags := 0;
    MyGenParms.dwCallback := Handle;
 // TForm1.Handle
    MyError := mciSendCommand(FDeviceIDMCI_CLOSEdwFlagsLongint(@MyGenParms));
    if MyError 0 then
      FDeviceID := 0
    else
    begin
      raise Exception.Create('Close Failed');
    end;
  end;
end;
//Example:
//Beispiel:
procedure TForm1.Button1Click(SenderTObject);
begin
  if OpenDialog1.Execute then
  begin
    OpenMedia(OpenDialog1.FileName);
    with ListBox1.Items do
    begin
      Add('Average Bytes / Sec : ' IntToStr(GetStatus(MCI_WAVE_STATUS_AVGBYTESPERSEC)));
      Add('Bits / Sample : ' IntToStr(GetStatus(MCI_WAVE_STATUS_BITSPERSAMPLE)));
      Add('Samples / Sec : ' IntToStr(GetStatus(MCI_WAVE_STATUS_SAMPLESPERSEC)));
      Add('Channels : ' IntToStr(GetStatus(MCI_WAVE_STATUS_CHANNELS)));
    end;
    CloseMedia;
  end;
end;





 
function MakeColorFromStr(strstring): TColor;
  { ....
	}
  function MakeColorFromStr(strstring): TColor;
  var
    ixyCardinal;
  const
    Helligkeit 0;
 //Minimale Helligkeit der Farben (0..255) -->
  begin
    y := 1;
 //initialisieren
    for := 1 to Length(str) do
    begin
      x        := Ord(Str[i]);
      RandSeed := i;
      y        := Random(99);
    end;
    RandSeed := y;
    Result   := rgb(Random(255 Helligkeit) + Helligkeit,
      Random(255 Helligkeit) + Helligkeit,
      Random(255 Helligkeit) + Helligkeit);
  end;





 
unit uDate;
   // Unit Name
interface     // Schnittstelle nach außen
uses          // Gebrauchte Units
  WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms,
  DialogsStdCtrls;
type         // Klassendarstellung : Deklaration der benötigten Objekte
  TfrmMain = class(TForm)
    Button1TButton;
    Label1TLabel;
    Label2TLabel;
    procedure Button1Click(SenderTObject);
     // Klickereignis
  private           // Unitintern verwendete Objektmethoden und Eigenschaften
    { Private declarations
	}
  public            // Von aussen zu verwendende Methoden und Eigenschaften
    { Public declarations
	}
  end;
var                // Klassenvariable
  frmMainTfrmMain;
implementation    // Unitcode
{$R *.dfm}
procedure TfrmMain.Button1Click(SenderTObject);
        // Vom aktuellen Systemdatum wird das Ã¼bergebene Datum abgezogen
var
        MyDate          TDateTime;
     // Aufname benutzerdefiniertes Datum
        Difference      integer;
       // Ergebnis aus der Subtraktion
begin
        // Datum das abgezogen wird vom aktuellen Datum initialisieren
        // Das hier verwendete Datumsformat das vom aktuellen Datum abgezogen
        // wird ist : Jahr - Monat - Tag
        // Die Variable Date enthält das aktuelle Systemdatum
        // Ausgabe des aktuellen Datums durch Konvertierung Datum nach String
        // in Label2
        Label2.Caption := DateToStr(Date);
        Try
        // Rückgabe eines Datums-/Zeitwertes in die Variable MyDate
        MyDate:=EncodeDate(2004,3,1);
        // Auf Integerwert verkürzen und vom Systemdatum das benutzerdef.
        // Datum subtrahieren.
        Difference:=Trunc(Date-MyDate);
        // Ausgabe der Differenz zwischen Date - MyDate durch Stringkonvertierung
        // in Label1 anzeigen.
        Label1.Caption := IntToStr(Difference) + ' Tage Differenz zwischen 1.3.2004 und heute';
        Except
        //
        ShowMessage('Fehler...')
        end;
end;
end.





 
interface
uses                 // *** Extra : StrUtils
  WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms,
  DialogsStdCtrlsStrUtils;
type
  TForm1 = class(TForm)
    Button1TButton;
    Edit1TEdit;
    Edit2TEdit;
    Button2TButton;
    Edit3TEdit;
    Button3TButton;
    Edit4TEdit;
    Button4TButton;
    Edit5TEdit;
    Button5TButton;
    procedure Button1Click(SenderTObject);
    procedure FormCreate(SenderTObject);
    procedure Button2Click(SenderTObject);
    procedure Button3Click(SenderTObject);
    procedure Button4Click(SenderTObject);
    procedure Button5Click(SenderTObject);
  private
    { Private-Deklarationen
	}
  public
    { Public-Deklarationen
	}
  end;
var
  Form1TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(SenderTObject);
        (*
        LeftStr :
        Returns the substring of a specified length that appears at the start
        of a string.
        function LeftStr(const ATextstring;
 ACountInteger): string;
        LeftStr returns the leading characters of AText up to a length of ACount
        characters.
        *)
var
        rString;
begin
        r := LeftStr(Edit1.Text5);
        ShowMessage(r);
end;
procedure TForm1.FormCreate(SenderTObject);
begin
        //
        Edit1.Text := 'Hallo Welt';
        Edit2.Text := 'Hallo Welt';
        Edit3.Text := 'Hallo Welt';
        Edit4.Text := 'Hallo Welt';
        Edit5.Text := 'VB';
end;
procedure TForm1.Button2Click(SenderTObject);
        (*
        RightStr :
        Returns the substring of a specified length that appears at the end
        of a string.
        function RightStr(const ATextstring;
 ACountInteger): string;
        RightStr returns the trailing characters of AText up to a length of ACount
        characters.
        *)
var
        rString;
begin
        r := RightStr(Edit2.Text4);
        ShowMessage(r);
end;
procedure TForm1.Button3Click(SenderTObject);
        (*
        MidStr :
        Returns the substring of a specified length that appears at a specified
        position in a string.
        function MidStr(const ATextstring;
 const AStartACountInteger): string;
        MidStr returns a substring Count characters at AText[AStart]. It is identical
        to the Copy function when it is called with a string as the first parameter,
        and is provided primarily for familiarity to programmers who are familiar
        with Visual Basic.
        If AStart is larger than the length of ATextMidStr returns an empty string.
        If Count specifies more characters than are availableonly the characters
        from AText[AStartto the end of AText are returned.
        *)
var
        rString;
begin
        r := MidStr(Edit3.Text72);
        ShowMessage(r);
end;
procedure TForm1.Button4Click(SenderTObject);
        (*
        ReverseString :
        Returns the reverse of a specified string.
        function ReverseString(const ATextstring): string;
        ReverseString returns the string specified by AText with the characters
        in reverse order.
        *)
var
        rString;
begin
        r := ReverseString(Edit4.Text);
        ShowMessage(r);
end;
procedure TForm1.Button5Click(SenderTObject);
        (*
        DupeString :
        Returns the concatenation of a string with itself a specified number of
        repeats.
        function DupeString(const ATextstring;
 ACountInteger): string;
        DupeString returns a string containing ACount repeats of the string
        specified by AText.
        *)
var
        rString;
begin
        r := DupeString(Edit5.Text5);
        ShowMessage(r);
end;
end.





 
unit uListBoxRoutinen;
interface
uses
  WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms,
  DialogsStdCtrls;
type
    TForm1 = class(TForm)
    ListBox1TListBox;
    Edit1TEdit;
    Edit2TEdit;
    Edit3TEdit;
    Button1TButton;
    Button2TButton;
    Button3TButton;
    Edit4TEdit;
    Button4TButton;
    Button5TButton;
    Button6TButton;
    Edit5TEdit;
    procedure FormCreate(SenderTObject);
    procedure Button1Click(SenderTObject);
    procedure Button2Click(SenderTObject);
    procedure ListBox1Click(SenderTObject);
    procedure Button3Click(SenderTObject);
    procedure Button4Click(SenderTObject);
    procedure Button5Click(SenderTObject);
    procedure Button6Click(SenderTObject);
  private
    { Private-Deklarationen
	}
  public
    { Public-Deklarationen
	}
  end;
var
  Form1TForm1;
  nInteger;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(SenderTObject);
var
        nInteger;
begin
        for := 0 to 10 do
                ListBox1.Items.Add('Eintrag : ' IntToStr(n));
        Edit4.Text := 'Eintrag : 5';
end;
procedure TForm1.Button1Click(SenderTObject);
begin   // Item hinzufügen
        Inc(n1);
        with ListBox1 do
                Items.Append(IntToStr(n) + ' ' Edit1.Text);
end;
procedure TForm1.Button2Click(SenderTObject);
begin   // Definiertes Item ermitteln
        Edit2.Text := ListBox1.Items[5];
end;
procedure TForm1.ListBox1Click(SenderTObject);
var
        IndexInteger;
begin   // Definiertes Item auf Klick ermitteln
        Index := ListBox1.ItemIndex;
        Edit2.Text := ListBox1.Items[Index];
        // Indexwert ermitteln
        Index := ListBox1.ItemIndex;
        Edit3.Text := IntToStr(Index);
end;
procedure TForm1.Button3Click(SenderTObject);
var
        nInteger;
begin   // Item Suchen
        for := 0 to ListBox1.Items.Count do
                if ListBox1.Items[n] = Edit4.Text then
                        ShowMessage('Gefunden...');
end;
procedure TForm1.Button4Click(SenderTObject);
var
        CountInteger;
begin
        // Item Anzahl
        Count := ListBox1.Items.Count;
        Edit5.Text := IntToStr(Count);
end;
procedure TForm1.Button5Click(SenderTObject);
begin
        // ListBox löschen
        ListBox1.Clear;
end;
procedure TForm1.Button6Click(SenderTObject);
var
        nInteger;
begin   // Markiertes Item löschen
        for := ListBox1.Items.Count 1 downto 0 do
                if ListBox1.Selected[nthen ListBox1.Items.Delete(n);
end;
end.





 
unit uPrintRotatedText;
interface
uses
  WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms,
  DialogsStdCtrlsExtCtrls;
type
    TForm1 = class(TForm)
    procedure FormPaint(SenderTObject);
  private
    { Private-Deklarationen
	}
  public
    { Public-Deklarationen
	}
  end;
var
  Form1TForm1;
implementation
{$R *.dfm}
procedure RotateFont90DegreeLeft(OutCtrlTForm;
                                 FontNameString;
                                 FontSizeInteger;
                                 xInteger;
                                 yInteger;
                                 OutTextString;
                                 blBoldBoolean);
var
        tftTFont;
        tlfTLogFont;
begin
        with OutCtrl.Canvas do
        begin
                Font.Name := FontName;
                Font.Size := FontSize;
                tft := TFont.Create;
                tft.Assign(Font);
                GetObject(tft.HandleSizeOf(tlf), @tlf);
(*
lfEscapement:
Specifies the anglein tenths of degreesbetween the escapement vector and
the x-axis of the deviceThe escapement vector is parallel to the base line of
a row of text.
*)
                tlf.lfEscapement := 900;
(*
lfOrientation:
Specifies the anglein tenths of degreesbetween each character's base line
and the x-axis of the device.
*)
                tlf.lfOrientation := 900;
                if blBold then begin
                        tlf.lfWeight := FW_BLACK;
                end
                else
                        tlf.lfWeight := FW_THIN;
                tft.Handle := CreateFontIndirect(tlf);
                Font.Assign(tft);
                tft.Free;
                TextOut(x, y, OutText)
        end;
end;
procedure TForm1.FormPaint(Sender: TObject);
const
        OutText: String = 'Hallo Welt';
begin
        RotateFont90DegreeLeft(Form1, 'Arial', 30, 0, (Form1.Height - 30),
                               OutText, True);
end;
end.





 
procedure TForm1.Button1Click(SenderTObject);
begin  sndPlaySound(PChar('C:Datei.wav'),SND_SYNC);
end;





 
procedure TForm1.Button1Click(SenderTObject);
begin
  MediaPlayer1.FileName:='C:Download
sgrow.mpg';
  MediaPlayer1.open;
  MediaPlayer1.Display:=panel1;
  MediaPlayer1.DisplayRect:=Panel1.ClientRect;
  MediaPlayer1.Play;
end;





 
unit ID3;
interface
{$A+} { Honor packed
	}
{$Z1} { Byte storage for small enumerated types
	}
type
  ID3Genre = (
    id3gBluesid3gClassicRockid3gCountryid3gDanceid3gDisco,
    id3gFunkid3gGrungeid3gHipHopid3gJazzid3gMetalid3gNewAge,
    id3gOldiesid3gOtherid3gPopid3gRNBid3gRapid3gReggae,
    id3gRockid3gTechnoid3gIndustrialid3gAlternativeid3gSka,
    id3gDeathMetalid3gPranksid3gSoundtrackid3gEuroTechno,
    id3gAmbientid3gTripHopid3gVocalid3gJazzFunkid3gFusion,
    id3gTranceid3gClassicalid3gInstrumentalid3gAcidid3gHouse,
    id3gGameid3gSoundClipid3gGospelid3gNoiseid3gAlternRock,
    id3gBassid3gSoulid3gPunkid3gSpaceid3gMeditative,
    id3gInstrumentalPopid3gInstrumentalRockid3gEthnicid3gGothic,
    id3gDarkwaveid3gTechnoIndustrialid3gElectronicid3gPopFolk,
    id3gEurodanceid3gDreamid3gSouthernRockid3gComedyid3gCult,
    id3gGangstaid3gTop40id3gChristianRapid3gPopFunkid3gJungle,
    id3gNativeAmericanid3gCabaretid3gNewWaveid3gPsychadelic,
    id3gRaveid3gShowtunesid3gTrailerid3gLoFiid3gTribal,
    id3gAcidPunkid3gAcidJazzid3gPolkaid3gRetroid3gMusical,
    id3gRockNRollid3gHardRockid3gFolkid3gFolkRock,
    id3gNationalFolkid3gSwingid3gFastFusionid3gBebobid3gLatin,
    id3gRevivalid3gCelticid3gBluegrassid3gAvantgarde,
    id3gGothicRockid3gProgressiveRockid3gPsychedelicRock,
    id3gSymphonicRockid3gSlowRockid3gBigBandid3gChorus,
    id3gEasyListeningid3gAcousticid3gHumourid3gSpeech,
    id3gChansonid3gOperaid3gChamberMusicid3gSonataid3gSymphony,
    id3gBootyBassid3gPrimusid3gPornGrooveid3gSatireid3gSlowJam,
    id3gClubid3gTangoid3gSambaid3gFolkloreid3gBallad,
    id3gPowerBalladid3gRhythmicSoulid3gFreestyleid3gDuet,
    id3gPunkRockid3gDrumSoloid3gAcapellaid3gEuroHouse,
    id3gDanceHall
  );
  ID3Struct packed record
    Magic: array [0..2 of Char;
    Title: array [0..29of Char;
    Artist: array [0..29of Char;
    Album: array [0..29of Char;
    Year: array [0..3 of Char;
    Comment: array [0..29of Char;
    GenreID3Genre;
  end;
const
  ID3Magic 'TAG';
  ID3OffsetFromEnd 128;
  ID3UnknowGenre ID3Genre(255);
  ID3GenreName: array [ID3Genreof PChar = (
    'Blues''Classic Rock''Country''Dance''Disco''Funk''Grunge',
    'Hip-Hop''Jazz''Metal''New Age''Oldies''Other''Pop''R&B',
    'Rap''Reggae''Rock''Techno''Industrial''Alternative''Ska',
    'Death Metal''Pranks''Soundtrack''Euro-Techno''Ambient',
    'Trip-Hop''Vocal''Jazz+Funk''Fusion''Trance''Classical',
    'Instrumental''Acid''House''Game''Sound Clip''Gospel',
    'Noise''AlternRock''Bass''Soul''Punk''Space''Meditative',
    'Instrumental Pop''Instrumental Rock''Ethnic''Gothic',
    'Darkwave''Techno-Industrial''Electronic''Pop-Folk',
    'Eurodance''Dream',&nnbsp;'Southern Rock''Comedy''Cult''Gangsta',
    'Top 40''Christian Rap''Pop/Funk''Jungle''Native American',
    'Cabaret''New Wave''Psychadelic''Rave''Showtunes''Trailer',
    'Lo-Fi''Tribal''Acid Punk''Acid Jazz''Polka''Retro',
    'Musical''Rock & Roll''Hard Rock''Folk''Folk-Rock',
    'National Folk''Swing''Fast Fusion''Bebob''Latin''Revival',
    'Celtic''Bluegrass''Avantgarde''Gothic Rock''Progressive Rock',
    'Psychedelic Rock''Symphonic Rock''Slow Rock''Big Band',
    'Chorus''Easy Listening''Acoustic''Humour''Speech''Chanson',
    'Opera''Chamber Music''Sonata''Symphony''Booty Bass''Primus',
    'Porn Groove''Satire''Slow Jam''Club''Tango''Samba',
    'Folklore''Ballad''Power Ballad''Rhythmic Soul''Freestyle',
    'Duet''Punk Rock''Drum Solo''Acapella''Euro-House''Dance Hall'
    );
function GetMP3Infos(FN:string): id3struct;
implementation
function GetMP3Infos(FN:string): id3struct;
var
  Ffile of Byte;
  TagID3Struct;
  HasTagBoolean;
  GenreNamestring;
  NewFNstring;
const
  Tab #9;
begin
  AssignFile(Ffn);
  try
    Reset(F);
    try
      Seek(FFileSize(F) - ID3OffsetFromEnd);
      BlockRead(FTagSizeOf(Tag));
      HasTag := Tag.Magic ID3Magic;
      if not HasTag then
      begin
        FillChar(TagSizeof(Tag), ' ');
        Tag.Magic := ID3Magic;
        Tag.Genre := ID3UnknowGenre;
      end;
      CloseFile(f);
      Result:=Tag;
    except
    end;
  except
  end;
end;
end.





 
type
  TLottoResult = array of Integer;
  ...
implementation
function Lotto(ACountInteger;
 AMaxValueInteger): TLottoResult;
var
  ijinteger;
  numberinteger;
  newNumberFoundBoolean;
begin
  if ACount AMaxValue then
    raise EInvalidOp.Create('Man kann nicht mehr Elemente aus einer Menge ziehen, als vorhanden!');
  SetLength(ResultACount);
  for := 0 to high(Result) do
  begin
    repeat
      number := Random(AMaxValue) +1;
      newNumberFound := True;
      //prüfen ob die Zahl schon gezogen wurde
      for := 0 to i-do
      begin
        if (Result[j] = numberthen
        begin
          newNumberFound := False;
          break;
  // nicht nötig, macht das Ganze aber etwas schneller
        end;
      end;
      Result[i] := number;
    until newNumberFound;
 //Solange wiederholen, bis die Schleife durchgelaufen ist
  end;
end;
...
initialization
  Randomize;
------------------------
 Aufruf 
------------------------
procedure TForm1.Button1Click(SenderTObject);
var
  lottoResultTLottoResult;
  iinteger;
begin
  lottoResult := Lotto(649);
  Memo1.Clear;
  for := 0 to high(lottoResult) do   Memo1.Lines.Add(IntToStr(lottoResult[i]));
end;