Einzelnen Beitrag anzeigen

hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#68

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 17:28
Danke für den editierten Denkanstoß

Ist es jetzt richtig ?
Jetzt wird die Klasse direkt instanziiert bei FormCreate , ohne , dass ich auf den Button klicke.

Delphi-Quellcode:
unit Unit1;

interface

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

type

  Tperson = record
    Name:string;
    id:integer;
  end;


  
  Tschlange = class
  private
    next,max:integer;
    schlange : array [1..10] of tperson;
  public
    function einfuegen(x:tperson):boolean;
    constructor create;
  end;



  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
     FSchlange : Tschlange;
  public
    { Public declarations }
  end;




var
  Form1: TForm1;
  myschlange:Tschlange;
  myrec : Tperson;

implementation

{$R *.dfm}


constructor tschlange.create;
 begin
  next :=10;
  max := 10;
 end;

function tschlange.einfuegen(x: tperson):boolean;
var i:integer;
begin
  //hinter dem Array kann man nichts mehr einfügen
  Result := Next >0;
  if Result then
    begin

      //Daten an aktuelle Array-Position schreiben
      schlange[Next].Name := x.Name;
      schlange[Next].Id := x.id;
      //Position abziehen
      dec(Next);


    end
     else // wenn next = 0 ist
        begin
            for i:=9 downto 1 do
            schlange[i+1]:=schlange[i];
            showmessage('Fehler'); // Test , ob was gemacht wird , wenn next =0 ist
            end;



end;

procedure recordirgendwas;
 begin
 myschlange.einfuegen(myrec);
  myrec.Name := form1.edit1.text;
  myrec.id := strtoint(form1.edit2.text);
  end;



procedure TForm1.Button1Click(Sender: TObject);
begin
recordirgendwas;

showmessage(inttostr(myrec.id));

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Fschlange := Tschlange.create;
end;



end.
Felix
  Mit Zitat antworten Zitat