Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit Struktur einer If then (https://www.delphipraxis.net/99617-problem-mit-struktur-einer-if-then.html)

alleinherrscher 15. Sep 2007 14:48

Re: Problem mit Struktur einer If then
 
Lass dir mal in einer Messagebox die Filenames und die bitmap.width ausgeben. Vielleicht stimmt da was nicht...ansonsten sehe ich grade den fehler nicht.


Damit du das ganze in eine endlosschleife bekommst, würde ich die FOR schleife in eine extra Prozedur schreiben z.B. procedure EinDurchgang. Und dann rufst du die immer wieder auf.

Noch ein Tipp, damit dir das Programm nicht "einfriert". Ersetze das Sleep(8000) besser durch:

Delphi-Quellcode:

procedure WaitSomeTime(milsec:integer);
var Start, Ende:integer;
begin

Start:=GetTickCount;
Ende:=Start;

while (Ende-Start)<milsec do
 begin
  application.processmessages;
  sleep(50);
  Ende:=GetTickCount;
 end;

end;
Dann würde das ganze so aussehen:

Delphi-Quellcode:
procedure TForm3.FormShow(Sender: TObject);
var
  ImageFile: string;
  n, i: integer;
begin
    n:= Form1.Memo1.Lines.Count-1;

    for i:=0 to n do
      begin
   
        ShowMessage(inttostr(i) + '< i to n >' + inttostr(n));
   
       //----------------------------------------------------------------------
        if i mod 5 = 0 then
          ImageFile:=ExtractFilePath(Application.ExeName)+'HZImage.bmp'
        else
          ImageFile:=ExtractFilePath(Application.ExeName)+'TempImage.bmp';


        //----------------------------------------------------------------------
            JpegToBmp(Form1.Edit1.Text + Form1.Memo1.Lines[i]);
            FadeIn(ImageFile);
            WaitSomeTime(8000);
            Fadeout(ImageFile);
      end;
end;
Aber das ändert wahrscheinlich nichts an deinem Endlos Problem

christian_u 15. Sep 2007 15:03

Re: Problem mit Struktur einer If then
 
Also ich glaub nicht das da irgendwas hängenbleibt wenn dein Bild 800 pixel breit ist wird die Schleife nur 800x durchlaufen, da mit dem debugger durchsteppen zu wollen ist quatsch.

Weiterhin war deine Idee mit dem Timer vom Anfang recht gut anders lässts sichs eigentlich nur mit threads lösen wenn dein Programm reaktionsfähig bleiben soll und das ist sicher etwas overkill für dich als Anfänger.

var
ImageFile: string;

procedure Timerproc(Sender : TObject);
begin
if Imagefile <> '' then
Fadeout(ImageFile);
if PicCount >= Form1.Memo1.Lines.Count-1 then
PicCount := 0
else
Inc(PicCount);

if (PicCount mod 5) = 0 then
ImageFile := ExtractFilePath(Application.ExeName)+'HZImage.bmp'
else
ImageFile := ExtractFilePath(Application.ExeName)+'TempImage.bm p';
JpegToBmp(Form1.Edit1.Text + Form1.Memo1.Lines[PicCount]);
FadeIn(ImageFile);
end;

So müsste es eigentlich klappen,

alleinherrscher 15. Sep 2007 15:07

Re: Problem mit Struktur einer If then
 
@christian_u: genau dein Quelltext steht schon in Beitrag #6 ;) Die schleife gibt keinen Overkill wenn du das sleep ein bisschen geschickt machst :) eigentlich sollten beide varianten funktionieren!

@ sexmagic wenn du willst guck ich mir den quellcode mal komplett an

sexmagic 15. Sep 2007 15:20

Re: Problem mit Struktur einer If then
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für das Angebot, das nehme ich sehr gerne an.

Allerdings habe ich jetzt die Schleifenvariante wieder raus genommen weil ich damit absolut nicht klargekommen bin, hab jetzt wieder die Timervariante drin.

Im Anhand ist das Projekt, ich hab einfach mal alles reingepackt da ich nicht genau weiss welche Daten man benötigt ;)

EDIT:
Achja bitte nicht lachen wenn etwas nicht ganz konform ist aber ich geb mein bestes ;)

alleinherrscher 15. Sep 2007 15:30

Re: Problem mit Struktur einer If then
 
Das is doch schonmal richtig gut!!! Coole sache...ich guck mal durch...

alleinherrscher 15. Sep 2007 16:00

Re: Problem mit Struktur einer If then
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, 1a ohne Timer und ohne Thread ;) versuche noch, das flackern von deinem logo in der ecke wegzubekommen...

NikoMitDaMacht 15. Sep 2007 16:27

Re: Problem mit Struktur einer If then
 
Wegen des Flackerns schonmal
Delphi-Quellcode:
 Form.DoubleBuffered := True
ausprobiert?

alleinherrscher 15. Sep 2007 16:32

Re: Problem mit Struktur einer If then
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jo, aber wenn wir zwei Images direkt übereinander legen hilft doublebuffered leider nix.

Habe zunächst ein Panel erstellt, auf welchem nun das zweite Image liegt...jetzt ists flimmerfrei ;)

Hoffe es entspricht so deinen Erwartungen!

So jetzt erwarte ich aber auch eine teilzeitanstellung in eurem Betrieb als Informatikberater :D K´Ne, kleiner Spass und schönes Wochenende!

christian_u 15. Sep 2007 18:02

Re: Problem mit Struktur einer If then
 
Stimmt, hatte ich übersehen.

Was ist jetzt an der Timer Mehthode so schlecht ? Einfach und schnell realisiert. Deine Variante frisst nur 3x soviel Code und bestimmt 200x soviel Systemresourcen.

sexmagic 15. Sep 2007 18:59

Re: Problem mit Struktur einer If then
 
Vielen Dank alleinherscher,

das funktioniert ja wunderbar!! :lol: :lol:

Also mehr Code is das nicht wirklich geworden, zu den Resourcen kann ich nicht viel sagen da ich Sie mir beim Timer nicht angeschaut habe und dieses auch nicht 100% funktioniert hat.

Ab das haut ja jetzt schon gewaltig hin.

Herzlichen Dank noch mal an dich, jetzt muss ich das ganze aber erstmal Stück für Stück durchchecken damit ich auch alles richtig verstehe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 2 von 3     12 3      

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