Image "Flackert" beim MouseEnter..
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Image "Flackert" beim MouseEnter..
Guten Morgen allerseits,
Ich wollte einen neuen Lazarus Jünger anwerben und hab ihm dabei das angehängte Programm gebastellt. ( Man Klicke auf Ordner Laden und wähle einen Ordner der JPG Dateien beinhaltet ) Dann wird auf ein Bild geklickt.
Nun flackert das angezeigte Bild jedes mal wenn man mit der Maus in das Groupboxfeld fährt welches das Bild anzeigt ( Zumindest unter Wirus, äh Windows XP ).
Klar dass ich mir nun jede Menge Spot und Hohn anhören muss. Könnt ihr mir helfen die Ehre wieder her zu stellen ?
Ich wollte einen neuen Lazarus Jünger anwerben und hab ihm dabei das angehängte Programm gebastellt. ( Man Klicke auf Ordner Laden und wähle einen Ordner der JPG Dateien beinhaltet ) Dann wird auf ein Bild geklickt.
Nun flackert das angezeigte Bild jedes mal wenn man mit der Maus in das Groupboxfeld fährt welches das Bild anzeigt ( Zumindest unter Wirus, äh Windows XP ).
Klar dass ich mir nun jede Menge Spot und Hohn anhören muss. Könnt ihr mir helfen die Ehre wieder her zu stellen ?
- Dateianhänge
-
Problem.zip
- SourceCode
- (4.39 KiB) 104-mal heruntergeladen
--
Just try it
Just try it
Re: Image "Flackert" beim MouseEnter..
Erstens mal, die Abhängigkeit von LazJPG braucht es nicht, da ist nur ein Alias definiert für
jp: TJPEGImage;
Dann kann man sich fragen, warum du überhaupt ein TImage brauchst, du benützt es ja gar nicht. (Einen Canvas gibt's billiger)
Sonst kann ich nicht viel sagen, denn hier unter Linux/GTK2 flackert's nicht.
jp: TJPEGImage;
Dann kann man sich fragen, warum du überhaupt ein TImage brauchst, du benützt es ja gar nicht. (Einen Canvas gibt's billiger)
Sonst kann ich nicht viel sagen, denn hier unter Linux/GTK2 flackert's nicht.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Image "Flackert" beim MouseEnter..
Ich hab das Image nur weil ich auf dessen Canvas zugreifen kann.
Ein GroupBox4.canvas geht nicht und mit TPaintbox ist der selbe Effekt.
Ein GroupBox4.canvas geht nicht und mit TPaintbox ist der selbe Effekt.
--
Just try it
Just try it
-
- Beiträge: 203
- Registriert: Di 22. Sep 2009, 13:08
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Image "Flackert" beim MouseEnter..
Was mir am Code erst mal nicht so ganz gefällt ist, dass Du im Image.OnPaint die
Image.Width veränderst. Kann sein dass sowas bei manchen Widgets gut geht,
aber normalerweise triggert ein Ändern der Breite ein neues OnPaint, u.s.w...
Ich denke man sollte in einem OnPaint etwas Zeichnen und nicht die Zeichenfläche selbst ändern.
Image.Width veränderst. Kann sein dass sowas bei manchen Widgets gut geht,
aber normalerweise triggert ein Ändern der Breite ein neues OnPaint, u.s.w...
Ich denke man sollte in einem OnPaint etwas Zeichnen und nicht die Zeichenfläche selbst ändern.
Re: Image "Flackert" beim MouseEnter..
also bei mir flackert nichts .. Windows XP SP3 (32bit) in einer VM (VirtualBox) unter Ubuntu
kompiliert mit Laz 1.1 (37261) 2.6.0
aber Ordner mit Umlauten machen Probs ..
hde
kompiliert mit Laz 1.1 (37261) 2.6.0
aber Ordner mit Umlauten machen Probs ..
hde
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: Image "Flackert" beim MouseEnter..
Es flackert weil es schlecht programmiert ist. Controls bei OnShow "alignen"?
Es wird durch Image1.OnShow erzeugt. Entferne es und setze bei Designer:
Image1.AutoSize:=true;
Image1.Proportional:=true;
Image1.Strectch:=true;
Wenn du auch noch:
Image1.Center:=true;
setzt, wird es sogar zentriert.
Es wird durch Image1.OnShow erzeugt. Entferne es und setze bei Designer:
Image1.AutoSize:=true;
Image1.Proportional:=true;
Image1.Strectch:=true;
Wenn du auch noch:
Image1.Center:=true;
setzt, wird es sogar zentriert.
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: Image "Flackert" beim MouseEnter..
Verwende auch TJPEGImage anstatt TJPGImage dann brauchst du kein unit einzubinden.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Image "Flackert" beim MouseEnter..
Coole Sache,
Danke für die Tipps, werde es aber leider erst morgen testen können...
Danke für die Tipps, werde es aber leider erst morgen testen können...
--
Just try it
Just try it
Re: Image "Flackert" beim MouseEnter..
@Bora4d: OnShow wird auch nur einmal aufgerufen, nicht bei MouseOver. Ist zwar nicht beosonders gut programmiert, aber wahrsch. nicht die Ursache.
Das mit dem TJPEGImage habe ich auch schon gesagt. Aber es ist halt anstrengend, alles zu lesen und doppelt genäht hält eh besser.
Das mit dem TJPEGImage habe ich auch schon gesagt. Aber es ist halt anstrengend, alles zu lesen und doppelt genäht hält eh besser.

- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Image "Flackert" beim MouseEnter.. [gelöst]
*g*
Also ich konnte es nun testen, ich muss zugeben so gut kannte ich mich mit dem TImage nicht aus, nun gehts, danke.
Damit es geht muste ich aber nicht nur die beschriebenen Eigenschaften von TImage setzen, ich musste zusätzlich noch die Groupbox4 löschen ( in der das Timage eingebetet war ) erst dann hörte das Flackern auf.
Corpsman
Also ich konnte es nun testen, ich muss zugeben so gut kannte ich mich mit dem TImage nicht aus, nun gehts, danke.
Damit es geht muste ich aber nicht nur die beschriebenen Eigenschaften von TImage setzen, ich musste zusätzlich noch die Groupbox4 löschen ( in der das Timage eingebetet war ) erst dann hörte das Flackern auf.
Corpsman
--
Just try it
Just try it