![]() |
TTimer und Edits ?
Hallo, ich hätte gerne, dass Text den ich in ein Editfeld eingebem, nach einer egbstimmten zeit automatisch da (wo der cursor gerade ist) hingeschrieben/eingefügt wird.. wenn ihr versteht wie ich das meine..
nur leider finde ich ÜBERHAUPT nix zu Timer bzw. TTimer. wie lässt sich das realisieren? Text aus Edits ins Clipboard schreiben, und nach der ttimerzeit wieder ausgeben? das wäre denk ich möglich aber lästig da der text im clipboard wäre.. |
Re: TTimer und Edits ?
das liegt daran das der Timer recht simpel ist. Wenn du Enabled auf True setzt wird im eingestellten Intervall die Methode aufgerufen welche bei OnTimer zugewiesen ist. Mehr macht der Timer nicht. Und was du dann eben in diesem Intervall immer wieder machst ist nicht mehr Sache des Timers
|
Re: TTimer und Edits ?
mhh wenn du mir schon soviel sagst:
wie man einen mausklick simuliert weis ich.. ich würde das so hinkriefgen wie ich es mir vorstelle nur an einem hapert es.. der text soll aus dem edit oder dem memo ganz egal.. dort hingeschrieben werden wo sich der cursor befindet.. |
Re: TTimer und Edits ?
das ist dann Edit bzw. Memospezifisch. Beim Edit und Memo sollte es das Property SelStart sein.
|
Re: TTimer und Edits ?
nunja.. so kann ich recht wenig damit anfangen. vielleicht eni kleines codebeispiel?
edit: habe hier was gefuden weis aber nicht obs korrekt ist (sieht für mich jedenfalls richtig aus)
Delphi-Quellcode:
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin Edit1.Text := IntToStr(Memo1.SelStart); end; procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Edit1.Text := IntToStr(Memo1.SelStart); end; |
Re: TTimer und Edits ?
mit SelStart bekommst du die aktuelle Cursorposition im Edit. Wie man einen String (Edit.Text) mit "copy" etc. manipuliert findet sich über die Suchfunktion und in der Hilfe.
|
Re: TTimer und Edits ?
also meine frage ist einfach:
wie bekomme ich den text aus dem edit nach X-Sekunden dort hin wo sich der cursor gerade befindet (da wo der cursor sein soll ist NICHT im programm !) edit:
Delphi-Quellcode:
Memo1.SelText:='neuer Text';
Delphi-Quellcode:
dieser code fügt "neuer Text" zwar ein.. aber nicht da wo ich es will.. es soll nicht in ein memo oder edit geschrieben werden sondern dort hin wo sich der cursor befinden (außerhalb meines programms)..
procedure TForm1.Button1Click(Sender: TObject);
begin Memo1.SelLength:=0; Memo1.SelText:='Text einfügen'; end; |
Re: TTimer und Edits ?
ich habe jetzt was von wegen
Delphi-Quellcode:
gelesen aber wo ist in dem ding bitteschön mein edit definiert ?
SendMessage(hedit,WM_PAST,0,0);
da wird der kram vom clipboard kopiert soviel weis ich |
Re: TTimer und Edits ?
hEdit vielleicht?! (Handle des Edits) Aber wie bereits erwähnt gibt es zur Stringmanipulation schon jede Menge.
|
Re: TTimer und Edits ?
und bei mir auch.. wie erwähnt, eijn BEISPIEL wäre nicht schlecht da ich mich mit sowas noch nicht lange beschäftige und im tut sowas nicht finden kann
|
DP-Maintenance
Dieses Thema wurde von "MrSpock" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
TTimer gehört zur VCL. |
Re: TTimer und Edits ?
so wie ich das verstanden habe willst du irgendwo ausserhalb deines programmes (zB auf dem desktop) einen text ausgeben.
vllt kannst du ne 2te form erstellen, die hintergrungdfarbe auf durchsichtig stellen (wenn das geht), ränder entfernen, so das nur noch das label darauf sichtbar ist... ka :nerd: |
Re: TTimer und Edits ?
Hier hast du ein simples Beispiel:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Timer1.Enabled:= false; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.SelStart:= 0;//oder manuell selektieren Memo1.SelLength:= 3;//oder manuell selektieren Timer1.Enabled:= true; end; procedure TForm1.Timer1Timer(Sender: TObject); var MousePos: TPoint; begin Timer1.Enabled:= false; GetCursorpos(MousePos); SendMessage(Memo1.Handle, WM_COPY, 0, 0); SendMessage(WindowFromPoint(MousePos), WM_PASTE, 0, 0); end; |
Re: TTimer und Edits ?
@dominikkv
du hast es leider falsch verstanden. ob das beispiel vom User danach richtig ist, werde ich jetzt testen und dann meinen beitrag editieren |
Re: TTimer und Edits ?
das geht soweit aber erst nachdem ich hier aus false true gemacht habe:
Delphi-Quellcode:
jetzt muss ich mir nurnoch zusammendenken wie ich eingaben aus einem memo zeilenweise auslesen usw.. und die timerzeit über ein edit steuern kann
Timer1.Enabled := true;
GetCursorpos(MousePos); SendMessage(Memo1.Handle, WM_COPY, 0, 0); SendMessage(WindowFromPoint(MousePos), WM_PASTE, 0, 0); |
Re: TTimer und Edits ?
kann mir denn zumindest einer sagen, wie ich das interval des timers über ein editfeld steuern kann?
|
Re: TTimer und Edits ?
Delphi-Quellcode:
Timer1.Interval:= StrToInt(Edit1.Text);
|
Re: TTimer und Edits ?
StrToInt wird aber mit einer Exception um sich werfen, wenn es keine gültige Zahl vorfindet.
Du solltest also entweder diese Exception behandeln, oder auf alternative Funktionen (z.B. [oh]StrToIntDef[/of]) ausweichen, welche keine Exceptionen erzeugen. PS: eine Kontrolle der eingegebenen Werte wäre auch nicht schlecht ... negative und zugroße Zahlen würden eventuell einige nicht gweollte Auswirkungen zeigen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz