[Entf]-Taste deaktiviert. Aber warum ich hab keinen Plan und verzweifle Grad
-
ich frag die Tasten nur ab ich ändere dann aber nichts.
vielleicht siehs du was.
void __fastcall TfrmHaupt::rftAWLKeyPress(TObject *Sender, char &Key) { int x; if ( Key==13 ) { x=frmHaupt->rftAWL->CaretPos.y; for ( int i=0;i<intFehlernummer;i++ ) { if ( intFehlerZeile[i]>x ) { intFehlerZeile[i]++; } } kontrolle(x); } } void __fastcall TfrmHaupt::rftAWLKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { int x; x=frmHaupt->rftAWL->CaretPos.y; ianzzeilen=rftAWL->Lines->Count; if ( Key==40) //Pfeil nach unten { kontrolle(x); } if ( Key==38 //Pfeil nach oben ) { x=frmHaupt->rftAWL->CaretPos.y; kontrolle(x); } if ( Key==38||Key==40 ) { frmHaupt->rftAWL->SelAttributes->Style=frmHaupt->rftAWL->SelAttributes->Style >> fsBold >> fsItalic; } if ( Key==8 ) { DelZeileStart=frmHaupt->rftAWL->CaretPos.y; } } void __fastcall TfrmHaupt::rftAWLKeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { int j=0,i,intAnzZeichenAktuell3=0,intAnzZeichenAktuellZeile=0,x,y; String STZeile; frmHaupt->rftAWL->SelAttributes->Style=frmHaupt->rftAWL->SelAttributes->Style >> fsBold >> fsItalic; if ( ianzzeilen!=frmHaupt->rftAWL->Lines->Count ) { x=rftAWL->CaretPos.x; y=rftAWL->CaretPos.y; verkettete_Liste_del_all(); /* if ( y>0 ) { for ( int i=0;i<y;i++ ) { intAnzZeichenAktuellZeile += frmHaupt->rftAWL->Lines->Strings[i].Length()+2; //+2 wegen \r\n am Ende der Zeile } } */ intFehlernummer=0; //strFehler={0}; //intFehlerZeile={0}; for ( i=0;i<=frmHaupt->rftAWL->Lines->Count;i++ ) { STZeile=frmHaupt->rftAWL->Lines->Strings[i]; frmHaupt->rftAWL->SelStart=intAnzZeichenAktuell3; // Beim ersten zeichen anfangen frmHaupt->rftAWL->SelLength = STZeile.Length(); if(frmHaupt->rftAWL->SelAttributes->Color==clRed) { verkettete_Liste_write(i); /*strFehler[intFehlernummer]= frmHaupt->rftAWL->Lines->Strings[i]; intFehlerZeile[intFehlernummer]=i; intFehlernummer++; */ } intAnzZeichenAktuell3 += frmHaupt->rftAWL->Lines->Strings[i].Length()+2; //+2 wegen \r\n am Ende der Zeile */ } /* for ( i=0;i<intFehlernummer;i++ ) { if ( strFehler[i]!= frmHaupt->rftAWL->Lines->Strings[intFehlerZeile[i]] ) { for ( j=j;j<frmHaupt->rftAWL->Lines->Count;j++ ) { if ( strFehler[i]== frmHaupt->rftAWL->Lines->Strings[j] ) { intFehlerZeile[i]=j; break; } } } } */ /*frmHaupt->LBFehler->Items->Clear(); for ( i=0;i<intFehlernummer;i++ ) { frmHaupt->LBFehler->Items->Add("Syntaxfehler in Zeile: " + (String)(intFehlerZeile[i]+1) + " im Befehl: " + frmHaupt->rftAWL->Lines->Strings[intFehlerZeile[i]]); strFehler[i]=frmHaupt->rftAWL->Lines->Strings[intFehlerZeile[i]]; }*/ frmHaupt->LBFehler->Items->Clear(); pIst=pAnfang; if (pAnfang!=0) { while (pIst->pNext!=0) { frmHaupt->LBFehler->Items->Add("Syntaxfehler in Zeile: " + (String)(pIst->iZnr+1) + " im Befehl: " + pIst->Fehlertxt); pIst=pIst->pNext; } frmHaupt->LBFehler->Items->Add("Syntaxfehler in Zeile: " + (String)(pIst->iZnr+1) + " im Befehl: " + pIst->Fehlertxt); } if ( y>0 ) { intAnzZeichenAktuellZeile=0; for ( int i=0;i<y;i++ ) { intAnzZeichenAktuellZeile += frmHaupt->rftAWL->Lines->Strings[i].Length()+2; //+2 wegen \r\n am Ende der Zeile } } rftAWL->SelStart=intAnzZeichenAktuellZeile+x; frmHaupt->rftAWL->SelLength = 0; } }wenn du was siehst dan melde dich bitte, ich seh nämlich nix obwohl ich schon 2h suche
MfG Felix
-
Hallo
ich muß dich enttäuschen : ich sehe da auch nichts.
Geh mit dem Debugger schritt für schritt die Key-Events durch und schau was mit den wichtigen Werten des RichEdits passiert.bis bald
akari
-
Du verwechselst nit zufällig Backspace mit Entfernen?
Wäre es nicht schön,
- eine Ereignissroutine zu nutzen?
- die Virtuellen Tastencodes zu verwenden? http://www.marquardtnet.info/cecke/quickies.1/1_quicky_23.html
- nur eine Abfrage pro Taste (Key 38 und 40)?Man findet Fehler leichter, wenn es ein bissschen geordnet ist
-
was mich halt so stuzig macht ist das mit dem Debugger kotrolliert weder die KeyDown noch die KeyPress angesprungen wird. Hast du dafür ne erklärung?
-
- Du hast eine Release-Version die sich nicht debuggen läßt?
- Die Routinen stehen auch in den Ereignissen der Komponente?
-
Frage 1 kann ich mit nein beantworten Debuggen ist möglich.
Frage 2 kann ich mit ja beantworten. alle 3 Funktionen stehen im Objektinspektor unter EreignisseEs funktioniert ja auch für viele andere Tasten(hab fast die ganze Tastatur probiert) bloß die entf Taste will net kommen.
-
Mache doch mal ganz kurz ein nietnagelneues Projekt und probier das im OnKey dort aus.
Funktioniert die Taste überhaupt in einem Editor->defekt?
-
Odere ist vielleicht der KeyPreview im Hauptformular eingeschaltet und schon dort wird die Taste in einem Ereignis verworfen?
-
taste geht sowohl unter Word etc.
sowie in einenm niegelnagelneuen Projekt. hier kommen auch die Ereignisse
-
Dann schau nach dem KeyPreview oder durchsuche deinen ganzen Quelltext nach 12. Da du ja immer die Dezimalwerte der Tasten abgefragt hast, wird ja dann irgendwi 12 stehen müssen
-
Hallo,
hast du evtl. einen "ActionManager" eingefügt und dort der Funktion "Löschen" die Entf-Taste zugeordnet?
Hatte mal das gleiche Problem und lag bei mir eben an diesem ActionManager.Gruß
Robert
-
So ich mal wieder.
Hab die Taste immer noch nicht zum laufen gebracht. Daher jetzt mal meine Frage hat es sinn den Code mal komplett zu posten bzw. auf einen FTP zu legen, das ihr denn euch mal anschaut?
Ich kapier es einfach nicht. hab den Code von einem alten Programm kopiert. hier funktioniert ddie Taste. Dann habe ich einige wenige änderungen gemacht. die Taste geht nicht mehr. Dann hab ich alles auskommentiert was sich geändert hat. Die Taste geht immernoch nicht. Was ich net geändert habe ist die Optische Variante, aber die dürfte ja nichts dazu beitragen.
Mfg Felix
-
bzw. auf einen FTP zu legen...
Das währe das beste. Ansonsten dürfte es etwas unübersichtlich sein.
-
ok hab auf die schnelle keinen FTP gefunden. Deshalb liegt es bei GMX.
hier die Adresse
Hier geht es zum CodeHoffe ihr kommt damit klar. Das ganze ist etwas unübersichtlich auf Grund der Größe, aber vielleicht kann der eine oder andere doch behilflich sein.
Der Fehler tritt auf wenn ihr nach dem Programm Start ne neue Datei öffnet. im nun Angzeigten Editor wird die Entf Taste nicht ausgeführt.
Vielen Dank mal
Felix[url]
-
der Fehler liegt im MainMenu, dort wurde ein Menueintrag mit dem ShortCut Entf deklariert
d.h. die Entf-Taste gilt in der ganzen Anwendung nur für diesen Menueintrag
-
NEEEEEEEEEEEEIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNN
bin ich doof 3Wochen des suchens wegen sowas ich,
werd bekloppt.Linnea mein Dank wird dir ewig nacheilen

und allen anderen die sich mit mir den Kopf zerbrochen haben.