Hi,
wenn ich Bebbo richtig verstanden habe, möchte er nur die Bilder Leuchturm leuchtet und Leuchturm leuchtet nicht anzeigen. Für kurz wird dann wahrscheinlich Leuchtturm leuchtet nur 1 Zeiteinheit (mal o.B.d.A) angezeigt werden und für lang dann halt 2 (oder was auch immer). Leuchtturm aus sollte immer gleich lang bleiben.
Also als Erstes rate ich dir dazu, dass du bei deinem Form/Panel auf dem das Bild ist, das du anzeigen möchtest, die Eigenschaft DoubleBuffered auf True setzt (sonst flimmerts).
Da ich nicht weiß wie deine Bilder heißen und wie sie vorliegen, geh ich einfach mal davon aus, dass du zwei Bitmaps hast, An und Aus (muss ich sicherlich nicht weiter erklären), zudem dass du den Leuchturm im TImage Leuchtturm anzeigst.
Eine einfache Möglichkeit wäre jetzt folgendes :
Delphi-Quellcode:
function TDeineKlasse.blinke(const Dauer : Cardinal);
var time : Int64;
begin
// Leuchtenden Turm anzeigen
Leuchtturm.Picture.Bitmap := An;
// Dauer ms warten
time := GetTickCount;
while (GetTickCount - time) < Dauer do
begin
Application.ProcessMessages;
end;
// Leuchtturm ausschalten
Leuchtturm.Picture.Bitmap := Aus;
end;
Gut, du müsstest es natürlich für's morsen etwas anpassen (damit du auch eine feste Zeit den abgeschalteten Turm siehst), aber das schaffst du schon.
Gruß Der Unwissende