Autor Beitrag
florida
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

Windows 7 Home Premium, Windows XP Professional, Windows 2000
Delphi 2010 Architect
BeitragVerfasst: Fr 18.06.10 19:21 
Wieso funktioniert das eigentlich nicht?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
 for I := 0 to Memo1.Lines.Count do
 begin
  keybd_event(VK_DOWN,0,0,0);
 end;
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 18.06.10 19:49 
Ich glaube, dass du mehr sagen solltest, als "Warum funzt das nicht?" Was genau passiert? Und was willst du erreichen? etc. hast ja schon etwas mehr im Forum geschrieben, weisst doch eigentlich, wie's hier läuft ;)

Gruss, Lukas

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
icho2099
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101
Erhaltene Danke: 12

WIN XP, WIN 7, WIN 10
Delphi 6 Prof, Delphi 2005, FPC
BeitragVerfasst: Fr 18.06.10 20:03 
Vielleicht weil Memo.Lines zwar Count Elemente hat, die aber von 0 bis Count-1 indiziert sind ?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
 for I := 0 to Memo1.Lines.Count-1 do
 begin
  keybd_event(VK_DOWN,0,0,0);
 end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 18.06.10 20:06 
Das -1 ist in dem fall egal, da er ja nicht auf das Memo zugreift. -1 müsste nur hinten dran wenn er wirklich dann mit der Laufvariable auf die einzelnen Zeilen zugreifen will.

Am besten wäre es wenn wir warten bis uns der Threadersteller erzählt was er machen will und was derzeit passiert, vielleicht gibts ja ne einfachere Methode oder so.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
florida Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

Windows 7 Home Premium, Windows XP Professional, Windows 2000
Delphi 2010 Architect
BeitragVerfasst: Fr 18.06.10 20:28 
Ich möchte, dass das ganze Memo anhand dieser Schleife durchsucht wird und dabei soll nach jeder Zeile "Pfeil unten" gedrückt werden.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 18.06.10 20:34 
Du weißt das du da nichts durchsuchst, sondern einfach die schleife solange laufen lässt wie die größe des Memos ist? Durchsucht im eigentlichen sinn wird hier nix.

und was hoffst du das Passiert wenn du die Pfeil-Runter-Taste drücken lässt? Wenn der Fokus auf einem Button oder so liegt (weil dort die schleife drin steht) wird gar nix passieren. Deswegen noch mal meine Frage, was soll passieren wenn du das VK_Down losschickst? Soll ein Cursor im Memo eine Zeile runter wandern, oder...?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
MaPsTaR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 4

Win XP
Delphi 7 Enterprise
BeitragVerfasst: Sa 19.06.10 00:14 
Wenn ich ihn richtig verstanden habe sucht er sowas:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
for i := 0 to Memo1.Lines.Count-1 do
begin
  if Memo1.Lines[i] = irgendwas
  then
  //...
end;

_________________
Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Sa 19.06.10 06:01 
user profile iconflorida hat folgendes geschrieben Zum zitierten Posting springen:
Wieso funktioniert das eigentlich nicht?


Habt Ihr noch nie eine Schreibmachine gesehen? Wenn man dort eine Taste drückt, dann muß man sie anschließend auch mal wieder loslassen. Bei Keybd_Event ist es genau so.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
 for I := 0 to Memo1.Lines.Count - 1 do
 begin
  Keybd_Event(VK_DOWN, 000);
  Keybd_Event(VK_DOWN, 0, KeyEventf_KeyUp,0);
 end;
florida Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

Windows 7 Home Premium, Windows XP Professional, Windows 2000
Delphi 2010 Architect
BeitragVerfasst: Sa 19.06.10 07:25 
Ja, aber ohne for funktioniert es auch, wenn man nur die erste obere Zeile stehen lässt.
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Sa 19.06.10 07:43 
user profile iconflorida hat folgendes geschrieben Zum zitierten Posting springen:
Ja, aber ohne for funktioniert es auch, wenn man nur die erste obere Zeile stehen lässt.

Eine mit Keybd_Event gedrückte Taste ist auch wieder los zu lassen. Alles andere ist Murks.
msdn.microsoft.com/e...ms646304(VS.85).aspx
Und da steht: KEYEVENTF_KEYUP - If specified, the key is being released. If not specified, the key is being depressed.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 19.06.10 09:16 
user profile iconflorida hat folgendes geschrieben Zum zitierten Posting springen:
Ja, aber ohne for funktioniert es auch, wenn man nur die erste obere Zeile stehen lässt.
ja, aber in einer Schleife nicht!! Ohne Schleife machst Du ja wieder ein Buttonclick z.B. :wink:
Ansonsten musst Du in der Schleife das mit reinnehemen!
ausblenden Delphi-Quelltext
1:
 Memo1.SetFocus;					

Um es richtig zu machen nimm einfach dieses:
ausblenden Delphi-Quelltext
1:
Memo1.Perform(WM_VSCROLL, SB_LINEDOWN, 0);					

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Sa 19.06.10 11:48 
Hi,

Du versuchst vermutlich, den Cursor zu setzen? (vk_DOWN 1x für jede Zeile im Memo)

Sieh' dir mal die Property 'SelStart' von TMemo bzw. TRichEdit an, damit kannst du den Curser direkt setzen! Die Anzahl der Zeichen im Memo erhältst du über Length(Memo1.Text).

lg,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)