Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bilderanzahl ermitteln (https://www.delphipraxis.net/64448-bilderanzahl-ermitteln.html)

BoB89 3. Mär 2006 19:07


Bilderanzahl ermitteln
 
Hi
Ich möchte eine Diashow mit delphi erstellen. bis jetzt funktioniert es auch ganz gut. das einzige problem das ich habe, ist, das ich nicht weiß, wie ich es hinbekomme, dass der Benutzer eine unbestimmte anzahl an Bildern Einfügen kann.
mit einer Festgelegten anzahl weiß ichs, dann müsste er nur noch die bilder so umbennen, wie sie bei mir im quelltext stehen. aber wie kriege ich das hin, das er selber eine bestimmte anzahl eingeben kann, und das sich dann meine CASE OF anweisung umschreibt, oder muss ich das vollkommen anders lösen, als mein ansatz
Coder
Hier mal ein stück des Quelltextes:
Delphi-Quellcode:
unit oberflaeche;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button_rueck: TButton;
    Button_vor: TButton;
    Button_ende: TButton;
    Timer1: TTimer;
    ScrollBar1: TScrollBar;
    Label_sek: TLabel;
    Button1: TButton;
    Label_ge: TLabel;
    Edit1: TEdit;
    Timer2: TTimer;
    Button_manuel: TButton;
    Edit_bilder: TEdit;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button_manuelClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure ScrollBar1Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button_rueckClick(Sender: TObject);
    procedure Button_endeClick(Sender: TObject);
    procedure Button_vorClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  v_bildnummer:integer = 0;    //Beim Starten des Programmes wird kein Bild angezeigt
  v_bildmax:integer = 4;       //Anzahl der Bilder insgesamt
implementation

{$R *.dfm}

procedure p_bildzeigen;         //Procedur zue Anzeige des aktuellen Bildes
  var v_datname:string;           //Variable zur Ausgabe der Bilddatei

    begin
      v_datname:=' ';            //Initialisierung der lokalen Variable

      case v_bildnummer of       //zur Bildnummer wird die entsprechende Bilddatei zugeordnet
      1: v_datname:='b01.jpg';
      2: v_datname:='b02.jpg';
      3: v_datname:='b03.jpg';
      4: v_datname:='b04.jpg';
      end;

      if v_datname <> ' ' then        // laden das Bildes in den Arbeitspeicher
       form1.image1.Picture.loadfromfile (v_datname);

    end;
procedure TForm1.Button_vorClick(Sender: TObject);
begin
   if v_bildnummer < v_bildmax
   then v_bildnummer := v_bildnummer +1    //Bild geht ein Bild weiter
   else v_bildnummer := 1;                //Nach dem letzten bild gehts wieder von vorne los
   p_bildzeigen;
end;

procedure TForm1.Button_endeClick(Sender: TObject);
begin
   close;
end;

procedure TForm1.Button_rueckClick(Sender: TObject);
begin
if v_bildnummer >1
then v_bildnummer := v_bildnummer - 1
else v_bildnummer := v_bildmax;
p_bildzeigen;
end;
ich bitte um hilfe, ich bin schon vollkommen verwirrt
Question....ich weiß schon nicht mehr, was ich schreibe. Jedenfalls ist dieses Beispiel auf 4 Bilder beschränkt.Es tut mir auch leid, das ich hier soviel quelltext reinposte, aber ich weiß nicht genau, was ihr alles braucht(hab noczh nicht alles gepostet, das mit dem automatisch kram müsste ich weggelassen haben).

[edit=Sharky]Delphi-Tags gesetzt und fehlerhafte HTML-Links entfernt. Mfg, Sharky[/edit]

Flare 3. Mär 2006 19:24

Re: Bilderanzahl ermitteln
 
Am besten ist es, wenn du dir dafür eine Liste anlegst. Ich weiß jetzt nicht ob eine Liste aus Pointern besser ist als eine aus einem Objekt, ich benutze immer das Objekt und mache es unsichtbar.

In der Liste kannst du alle Dateinamen für die Diashow einfügen, einen Index setzen und den bei jedem Klick auf weiter erhöhen und bei Zurück eben erniedrigen. Dann zeigst du das aktuelle Bild an, wo gerade der Index steht. Falls der Index über die Größe der Liste gehen sollte, setzt du ihn einfach wieder auf 0 zurück.

Ich weiß jetzt nicht ob es das ist was du suchst, hoffe aber mindestens dass ich dir irgendwie helfen konnte.

Flare

DP-Maintenance 3. Mär 2006 19:27

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist nichts für die Code-Library...

turboPASCAL 3. Mär 2006 19:35

Re: Bilderanzahl ermitteln
 
Willkommen in der DP.

Nunja, der Code ist ja soweit ok, aber es fehlt halt die Flexibilität.
Verwende eine Listbox, der fügst du dann per Opendialog diene Bilderdateien hinzu.
Die Anzahl der Einträge kannst du dann mit Listbox.Items.Count ermitteln und das anschlies
end zB. mit einer Zählervariable den Dateinamen aus der Liste ermitteln und in einem Image anzeigen.

Um die Bilder (deren Dateinamen) auch beim nächsten Programmstart zur verfügung zu haben kannst du einfach die Eigenschaft Listbox.Items.SaveToFile(...) benutzen um die Einträge in der Listbox in eine Datei zu speichern oder mit Listbox.Items.LoadFromFile(...) wieder zu laden.

PS.:
- Smilys werden durch einfaches Anklicken in den Text eingefügt.
- Wenn du deinen Quellcode in Delphi-Tag's ( Tastenkombi. Alt + d ) setzt schaut das besser aus.

BoB89 4. Mär 2006 17:44

Re: Bilderanzahl ermitteln
 
Vielen dank für die beiden antworten, ich werde mich gleich dran setzen und das ausprobieren, auch danke für die foren tipps :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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