AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit.text 5 mal Blinken lassen

Ein Thema von Natcree · begonnen am 20. Feb 2014 · letzter Beitrag vom 20. Feb 2014
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:04
Okay habe es hin bekommen
Delphi-Quellcode:
procedure TForm3.Timer1Timer(Sender: TObject);
begin
Edit1.Visible := not edit1.Visible;
timer1.Tag:=Timer1.tag+1;
if timer1.Tag=strtoint(edit1.Text)*2 then timer1.Enabled:=false;
end;
So jetzt müsste nur noch der Text verschwinden und nicht die komplette edit box?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:06
So jetzt müsste nur noch der Text verschwinden und nicht die komplette edit box?
Zum Glück hat DeddyH eine Zeitmaschine und konnte die Antwort darauf posten bevor du die Frage gestellt hast
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:17
Zitat:
Und wenn nur der Text "blinken" soll, speicherst Du ihn zwischen und wechselst zwischen dem gespeichtern String und einem Leerstring.
Delphi-Quellcode:
var
st:Tstringlist;
...
...

procedure TForm3.Timer1Timer(Sender: TObject);
begin
if Edit1.Text=st.Strings[0] then Edit1.text:=''else
if edit1.text='then Edit1.Text:=st.Strings[0] ;
timer1.Tag:=Timer1.tag+1;
if timer1.Tag=strtoint(st.strings[0])*2 then timer1.Enabled:=false;
end;
Geht es auch noch kürzer?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:30
Also nachdem du ja schon die Einrückungen entfernt hast könntest du Timer1 noch in T1 und Edit1 in E1 umbenennen, das spart nochmal ein paar Buchstaben.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:53
Also nachdem du ja schon die Einrückungen entfernt hast könntest du Timer1 noch in T1 und Edit1 in E1 umbenennen, das spart nochmal ein paar Buchstaben.
Nicht zu vergessen TForm3 -> F Und überhaupt, man kann doch bei Pascal auch alles in eine Zeile schreiben, dann spart man sich die Umbrüche.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#6

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 11:59
Wozu eigentlich eine Stringliste? Ich würde das ungefähr so angehen:
Delphi-Quellcode:
type
  TfrmBlinkDemo = class(TForm)
    edtBlink: TEdit;
    tmrBlink: TTimer;
    btnBlink: TButton;
    procedure tmrBlinkTimer(Sender: TObject);
    procedure btnBlinkClick(Sender: TObject);
  private
    { Private-Deklarationen }
    FOriginalString: string;
    FCounter: integer;
    procedure Blink;
  public
    { Public-Deklarationen }
  end;

...

const
  BLINKCOUNT = 5;

{ TfrmBlinkDemo }

procedure TfrmBlinkDemo.Blink;
begin
  FCounter := 0;
  FOriginalString := edtBlink.Text;
  tmrBlink.Enabled := true;
end;

procedure TfrmBlinkDemo.btnBlinkClick(Sender: TObject);
begin
  Blink;
end;

procedure TfrmBlinkDemo.tmrBlinkTimer(Sender: TObject);
begin
  inc(FCounter);
  if Odd(FCounter) then
    edtBlink.Text := ''
  else
    edtBlink.Text := FOriginalString;
  if FCounter >= BLINKCOUNT * 2 then
    tmrBlink.Enabled := false;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 12:01
Und seit 2009 kann man auch alles in Chinesisch schreiben, womit man dann mehr als nur 26 "Namen" zur Verfügung hat.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 12:01
lol Danke immer diese iron.......... .

Noch ne andere Frage

Ich erstelle in der FORM3 20 TEDIT Komponenten.
nun sollen diese bei keypress die Timer Komponenten auslösen

Delphi-Quellcode:
procedure TForm3.SpielerKeyPress(Sender: TObject; var Key: Char);
var
Spieler:TEdit;
begin
    Spieler:=TEdit(Sender);
    st:=Tstringlist.Create;
    st.Add(Spieler.text);
    if Key = #13 then
    begin
    key := #0;//schalt sound ab
    Timer1.Interval := 500;
    timer1.Enabled:=true;
    end;
end;
Delphi-Quellcode:
procedure TForm3.Timer1Timer(Sender: TObject);
begin
//habe es hier auch schon mit Spieler:=TEDIT(Sender)( versucht) und edit1 mit Spieler ersetzt
//klappt aber nicht
if Edit1.Text = st.Strings[0] then Edit1.text := ''  else
if Edit1.text = ''            then Edit1.Text := st.Strings[0];
timer1.Tag := Timer1.tag+1;
if timer1.Tag = strtoint(st.strings[0])*2 then timer1.Enabled := false;
end;
Wie Übergebe ich hier Statt edit1.text den sender der den Timer ausgelöst hat?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 12:09
Indem du dir den "Sender" merkst?

Zitat:
Delphi-Quellcode:
procedure TForm3.Timer1Timer(Sender: TObject);
begin
//habe es hier auch schon mit Spieler:=TEDIT(Sender)( versucht) und edit1 mit Spieler ersetzt
Kein Wunder.

Rate mal, wer dieses Ereignis auslöst und demnach in diesem Sender drin steht?

ShowMessage((Sender as TComponent).Name); .

Wenn du dir nicht sicher bist, daß der Typ stimmt, dann verwende niemals harte Konvertierungen ala TTyp(...) , sondern nur weiche Konvertierungen ala (... as TTyp)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (20. Feb 2014 um 12:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#10

AW: Edit.text 5 mal Blinken lassen

  Alt 20. Feb 2014, 12:10
Selber merken? Und ist Dir aufgefallen, dass Du bei jedem Tastendruck eine neue Stringliste erzeugst, die nirgends freigegeben wird?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
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