blinken

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Geopard
Beiträge: 3
Registriert: Fr 11. Jun 2010, 20:23

blinken

Beitrag von Geopard »

Hey,
also ich habe ein RoundRect und möchte die blaue Farbe, mit der ich es ausgefüllt habe, zum Blinken bringen.
Und nu ??

Danke :)

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: blinken

Beitrag von theo »

Köntest du dir beim Fragen ein bisschen mehr Mühe geben? Danke.
Geopard hat geschrieben: ich habe ein RoundRect
Kommt ziemlich drauf an, woher du das hast.
Geopard hat geschrieben:und möchte die blaue Farbe, mit der ich es ausgefüllt habe, zum Blinken bringen.
Wie soll eine blaue Farbe blinken? Du meinst wohl, die Farbe soll periodisch wechseln, oder?

Geopard
Beiträge: 3
Registriert: Fr 11. Jun 2010, 20:23

Re: blinken

Beitrag von Geopard »

Image1.Canvas.RoundRect(560,185,645,202,15,15);
ja es soll periodisch blinken
wenn ich wüsste wie und was ich genau meine würde ich ja nicht mein beitrag bei "einsteiger" reinsetzen

Gruß und danke

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: blinken

Beitrag von theo »

Da musst du wohl einen TTimer nehmen und beim OnTimer-Event das Roundrect nochmals zeichnen und zwar mit einer anderen Farbe (Image1.Canvas.Brush.Color)
Geopard hat geschrieben: wenn ich wüsste wie und was ich genau meine würde ich ja nicht mein beitrag bei "einsteiger" reinsetzen
Nicht wissen wie's geht ist das eine, nicht wissen was man meint/will ist aber ein bisschen heftig.
Woher sollen wir's denn wissen?

Jay
Beiträge: 65
Registriert: Sa 29. Dez 2007, 02:21
OS, Lazarus, FPC: Linux, 0.9.30.4 Beta, FPC 2.6.0
CPU-Target: 32Bit
Kontaktdaten:

Re: blinken

Beitrag von Jay »

Hey,
also ich habe ein RoundRect und möchte die blaue Farbe, mit der ich es ausgefüllt habe, zum Blinken bringen.
Und nu ??
Das geht am besten über nen Timer. Im OnTimer-Event überprüfst du einfach, ob z.B. das RoundRect im Moment die Farbe hat, die es haben soll und wenn nicht, dann weist du ihm die Farbe zu, zu welcher es wechseln soll. Wenn es allerdings die Farbe hat, zu der es wechseln sollte, dann wechselst du die Farbe wieder zur "AUS"-Farbe.

Beispielcode (Wechsel zwischen Blau und Weiß):

Code: Alles auswählen

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    if Shape1.Brush.Color <> clBlue then
        Shape1.Brush.Color := clBlue
    else
        Shape1.Brush.Color := clWhite;
end;
So schwer ist das doch nicht zu verstehen oder :wink:

Auf nem Canvas geht das genauso. Dann zeichnest du das RoundRect eben beim Wechsel mit der jeweiligen Farbe an die gleiche Stelle neu (dazu bräuchtest du allerdings noch ne Hilfsvariable, die die aktuelle Farbe enthält oder zwischen True/False umschaltet).

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: blinken

Beitrag von pluto »

Bleibt noch zu erwähnen, dass du über die Interval Eigenschaft, einen Wert in MS einstellen kann. Er steht meistens immer auf 1000 ms also eine Sekunde. Wenn das zu "Schnell" ist, müsstest du ihn erhöhen vielleicht auf das doppelte. Es gibt nicht nur den Timer. Aber das ist die einfachste Möglichkeit. Es geht auch noch über onIdel vom TApplication oder über ein Thread....
MFG
Michael Springwald

Geopard
Beiträge: 3
Registriert: Fr 11. Jun 2010, 20:23

Re: blinken

Beitrag von Geopard »

ja hab ja erst angemafen mit der materie ist halt ganz schön umfangreich. super vielen dank :0)

Antworten