Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TImage sichtbar wenn nicht visible


Tom Peters - Mo 12.02.07 13:48
Titel: TImage sichtbar wenn nicht visible
Hallo

Ich benutze Delphi 6 in meinem Schulkurs auf Windows XP. Ich habe ein TImage (Größe: 650x350) mit 32 TShapes verdeckt. Diese Shapes werden unsichtbar, wenn sie angeklickt werden. Während des Programmablaufs lade ich ein neues Bild, das zu Anfang von den Shapes verdeckt sein soll. Wenn das Bild geladen wird, ist es jedoch für eine kurze Zeit (Sekundenbruchteil) sichtbar.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.restart_btnClick(Sender: TObject);
begin
        s_1.Visible:=true;
        // alle anderen shapes sichtbar machen
        main_img.Visible:=false;
        main_img.Picture.LoadFromFile(bilder_pfade[random(bilder_anz)+1]);
        main_img.Visible:=true;
end;


Ich glaube es liegt daran, dass Delphi das Bild mit den Shapes "übermalt" anstatt zu prüfen, ob es überhaupt sichtbar ist.
Gibt es eine Möglichkeit dieses Aufflackern zu verhindern?

mfg Tom

ps: Ich habe zu Hause kein Delphi (Linux).


rockminstrel - Mi 14.02.07 12:49

Ich hätte eine Idee. Du hast das Image vermutlich auf deinem Form und lädst das Bild zur Laufzeit.
1. Tipp: stelle image.visible auf false und zwar im Delphi (nicht erst zur Laufzeit)
2. Tipp: evtl. bringt es was, wenn du image.visible als aller erstes auf false stelltst.