AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generics richtig verstanden?

Ein Thema von EdAdvokat · begonnen am 11. Mai 2018 · letzter Beitrag vom 13. Mai 2018
 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#13

AW: Generics richtig verstanden?

  Alt 12. Mai 2018, 16:18
...auf die Schnelle.

Wichtige Methoden:
http://docwiki.embarcadero.com/Libra...ry.TryGetValue
http://docwiki.embarcadero.com/Libra...ry.ContainsKey

PS: Ich verstehe den Sinn hinter dem btnInhaltClick und btnKeyClick nicht. Was wolltest du erreichen?

Delphi-Quellcode:
unit uMain;

interface

uses
  Winapi.Windows, Winapi.Messages,
  System.SysUtils, System.Variants, System.Generics.Collections, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TSIPair = TPair<string, Integer>; // declares instantiated type
  TSSPair = TPair<string, string>; // declares with other data types
  TISPair = TPair<Integer, string>;
  TIIPair = TPair<Integer, Integer>;

  TCustomer = record
    PostCode: string;
  end;

  TForm1 = class(TForm)
    btn1: TButton;
    btnKey: TButton;
    edtKey: TEdit;
    btnInhalt: TButton;
    edtInhalt: TEdit;
    lblKey: TLabel;
    lblValue: TLabel;
    btnpostleitzahl: TButton;
    procedure btn1Click(Sender: TObject);
    procedure btnKeyClick(Sender: TObject);
    procedure btnInhaltClick(Sender: TObject);
    procedure btnpostleitzahlClick(Sender: TObject);
  private
    procedure Postleitzahlen;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.btnKeyClick(Sender: TObject);
var
  Key: TPair<string, Integer>;
  TSS: TSSPair; //typ parameter zuweisen bsp. string oder Integer
begin //string zugewiesen
  Key := TPair<string, Integer>.create;
  try
    Key.Key := edtKey.Text;
    lblKey.caption := Key.Key;
    TSS := TSsPair.create; //string zugewiesen
    TSS.Value := 'Dies ist ein Test';
    ShowMessage(TSS.Value);
    //ShowMessage(Key.Key);
  finally
    freeandNil(Key);
    FreeAndNil(TSS);
  end;
end;

procedure TForm1.btnInhaltClick(Sender: TObject);
var
  Inhalt: TPair<string, Integer>; //Integer zugewiesen
  TSI: TSIPair;
begin
  Inhalt := TPair<string, Integer>.create;
  try
    Inhalt.Value := StrToInt(edtInhalt.text);
    lblValue.caption := inttostr(Inhalt.Value);
    TSI := TSIPair.create; //Integer zugewiesen
    TSI.Value := 523;
    ShowMessage(inttostr(TSI.Value));
    //ShowMessage(inttostr(Inhalt.Value));
  finally
    FreeAndNil(Inhalt);
    FreeAndNil(TSI);
  end;

end;

procedure TForm1.btnpostleitzahlClick(Sender: TObject);
begin
  Postleitzahlen;
end;

procedure TForm1.Postleitzahlen;
var
  Postleitzahlen: TDictionary<string, string>;
begin
  Postleitzahlen := TDictionary<string, string>.Create;
  try
    Postleitzahlen.Add('53639', 'Königswinter');
    Postleitzahlen.Add('53117', 'Bonn1');
    Postleitzahlen.Add('53111', 'Bonn');

    ShowMessage('Die Postleitzahl für 53639 ist');
    ShowMessage(Postleitzahlen['53639']);
  finally
    FreeAndNil(Postleitzahlen);
  end;
end;

end.
Angehängte Dateien
Dateityp: pas uMain.pas (2,6 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz