Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Erklärung Durchlauf (https://www.delphipraxis.net/91238-erklaerung-durchlauf.html)

SaFu 2. Mai 2007 08:12


Erklärung Durchlauf
 
Hallo zusammen

hab mal ne Frage, mir hat jemand bei dem Programmcode geholfen verstehe vertehe schon was es macht aber nicht genau kann mir vielleicht jemand mal erklären wie genau der durchlauf der Items Funktioniert bzw. an welcher stelle der durchlauf neu anfängt.


danke schonmal




Delphi-Quellcode:
//===============Durchlauf der Bilder===========================================
procedure TForm4.Timer2Timer(Sender: TObject);
begin
  if FileListBox1.Items.Count > 0 then
   begin
     if index > FileListBox1.Items.count -1 then
      index:= 0; //index auf "O" setzen
        FileListbox1.Selected[index]:= true; //Aktuellen index makieren
          bild:= Lowercase(ExtractFileExt(Bilddat + FileListBox1.Items[index]));

      if (bild = '.jpg') then //Pfad + .jpg
        begin
          Image1.Picture.LoadFromFile(Bilddat + FileListBox1.Items[index]);// Laden der Bilder
          Form3.Image1.Picture:= Image1.Picture;// Kopieren der Bilder auf Form3
        end;

     inc(index); //Index +1
   end;
 end;

//============Durchlauf anhalten================================================
procedure TForm4.Button3Click(Sender: TObject);
begin
  Timer2.Enabled:= False;
end;

//============Durschlauf starten================================================
procedure TForm4.Button2Click(Sender: TObject);
begin
  Timer2.Enabled:= True;
  index:= 0; //Index auf "0" setzen
end;

marabu 2. Mai 2007 09:53

Re: Erklärung Durchlauf
 
Hallo Sascha,

es geht eigentlich nur darum den ItemIndex der FileListBox wieder auf 0 zu setzen, wenn der letzte Eintrag erreicht war. Vielleicht hilft dir eine andere Schreibweise:

Delphi-Quellcode:
type
  TDemoForm = class(TForm)
    Timer: TTimer;
    FileListBox: TFileListBox;
    Image: TImage;
    procedure TimerTimer(Sender: TObject);
  private
    procedure ShowImage(fn: TFileName);
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

procedure TDemoForm.ShowImage(fn: TFileName);
begin
  Image.Picture.LoadFromFile(fn);
  OtherForm.Image.Picture.Assign(Image.Picture);
end;

procedure TDemoForm.TimerTimer(Sender: TObject);
begin
  with FileListBox do
  begin
    ItemIndex := Succ(ItemIndex) mod Items.Count;
    ShowImage(Items[ItemIndex]);
  end;
end;
Freundliche Grüße

SaFu 2. Mai 2007 09:54

Re: Erklärung Durchlauf
 
Also eigentlich habe ich das Problem um das Struktogramm zu zeichnen kann es mir gerade nicht vorstellen wie ich das machen soll

SaFu 2. Mai 2007 10:24

Re: Erklärung Durchlauf
 
Also eigentlich weiss ich nicht genau was der code an dieser stelle macht und wieso

Delphi-Quellcode:
 if index > FileListBox1.Items.count -1 then
      index:= 0; //index auf "O" setzen
       

      inc(index); //Index +1 für was

Klaus01 2. Mai 2007 10:31

Re: Erklärung Durchlauf
 
Zitat:

Zitat von fuknersascha
Also eigentlich weiss ich nicht genau was der code an dieser stelle macht und wieso

Delphi-Quellcode:
 if index > FileListBox1.Items.count -1 then
      index:= 0; //index auf "O" setzen
       

      inc(index); //Index +1 für was

Wenn index größer ist als die Anzahl der Einträge in der Filelistbox
setze den index wieder an der Anfang (auf 0)
Ansonsten eröhe den Index um 1 um zu dem nächsten Eintrag der FileListbox zu gelangen.

Grüße
Klaus

SaFu 2. Mai 2007 11:36

Re: Erklärung Durchlauf
 
Danke beide Antworten haben mir geholfen habe es jetzt hinbekommen und die Funktion ist mir jetzt auch klar.

das mit dem timer war mir nicht so klar

Gruss Sascha


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz