2 Fragen ~~> OnReturn & Methode für Memo gesucht
-
Hi, habe mal 2 Fragen
kann ich in einem EditFenster das Ereigniss OnReturn auslösen (ist nicht im Objekt-Inspektor drin), wenn enin, wie schaffe ich es, das etwas aktiviert / ausgelöst wird, wenn ich im EditFenster Enter drücke?
Zweitens
Ich suche eine Methode damit ich nach dem Laden einer txt Datei in ein Memo Fenster die Scrollleiste direkt am letzten Punkt habe. (also wenn mehr Zeilen geladen worden als auf einer Seite anzeigtbar sind.)
Hoffe die Fragen sind verständlich.
Danke
-
1. OnReturn gibt es nicht -> OnKeyDown
-
1. Ggf. auch OnKeyPress.
1b. Um den den Ton zu unterbinden siehe FAQ unter "Verschiedenes".2. Siehe FAQ unter "RichEdit".
3. Bitte die Faustregel beachten: ein Thema pro Thread, eine Thread pro Thema. Danke!
-
danke, das mit dem OnKeyDown ist wirklich genial. Hab ich jetzt schon mehrmals gebraucht...
Aber leider verstehe ich das mit dem Scrollen nciht so ganz..
Die Funktionen wie sie da stehen habe ich zwar eingefügt, es passiert aber nichts.
Also ich will, wenn die Fensterhöhe des Memo´s aufgebraucht ist und er einen Scrollbalken erzeugt immer zur letzten Zeile spirngen.
1.) Wie mach ich das?
2.) Wie fange ich den Wert der letzten Zeile ab?
-
Die Anzahl der Zeilen ist in Memo1->Lines->Count enthalten.
-
Welche die letzte Zeile genau ist spielt hierbei keine Rolle, du musst einfach nach dem Einfügen von Text EM_SCROLLCARET aufrufen.
Genau steht es auch im FAQ-Beitrag.
-
-.-* Leute, wenn ich sage ich verstehs nicht und es funktioniert nicht, reicht ein Hinweiß auf einen Hinweiß nciht aus!!!!
Hier mein Quelltext:
void TfrmHaupt::ausgeben(AnsiString ausgabe) { frmHaupt->memFenster->Lines->Clear(); frmHaupt->memFenster->Lines->LoadFromFile("test.txt"); frmHaupt->memFenster->Lines->Add(ausgabe); int endline; endline = frmHaupt->memFenster->Lines->Count; frmHaupt->memFenster->SelStart = frmHaupt->memFenster->Perform(EM_LINEINDEX, endline-1, 0); frmHaupt->memFenster->Perform(EM_SCROLLCARET, 0, 0); frmHaupt->memFenster->Lines->SaveToFile("test.txt"); }So:
Clear um zu leeren
dann laden um zu verhindern das Sachen die von anderen in der Zeit geschrieben wurden, überschrieben werden,
dann die Wunschzeile einfügen
dann eure Zeilen die ich ausprobiert habe
dann SpeichernBITTE HILFE, das muss bis morgen funzeln
-
"Funktioniert nicht" ist keine ausreichende Problembeschreibung.
Das von dir gezeigte Beispiel funktioniert ganz hervorragend.
-
Sorry,
also zur Erläuterung: Der Programmteil ist ja der Timer. Dieser soll alle 0,5 seks diese Sachen tun (wie oben beschrieben). Tut er auch soweit, aber er setzte den Cursor immer wieder auf die Anfangsposition und nicht auf die Endposition.
-
OK, ich hab den Fehler gefunden, war sehr dumm -.-*
Hab es die ganze Zeit in die Schreib Routine gemacht und nicht in die Timer Routine -.-*
Danke trotzdem