| Autor |
Beitrag |
blattlaus
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 17.01.03 15:02
hallo, meine frage ist nicht leicht zu stellen, ich hoffe ihr versteht es trotzdem. wenn ich ein eingabefenster mit edit erstelle, ich nun den text eingegeben habe, der länger ist, als das eingabefenster und ich nun die löschtaste drücke, geht der cursor bis an die 5-6 stelle und zeigt den noch zu löschenden text an. das heißt: der cursor geht an die 5-6 stelle lösche den text(cursor geht zur 1. stelle dann wieder an die 5-6 stelle usw.)nachteil ist daher, man weiß nicht wie lang der text eigentlich noch ist, bevor ich an die 1. stelle wieder gelange. meine frage nun:
gibt es eine möglichkeit beim löschen, daß der cursor immer an der letzten stelle im eingabefenster bleibt, und erst dann wieder nach vorne geht, wenn der text kleiner wird als das eingabefenster.
vielen dank fürs verständnis.
ps. noch eine kleine frage: kann man den cursor im eingabefenster ändern, zum beispiel als blinkenden unterstrich, nicht der längsstrich(normal)
|
|
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Fr 17.01.03 15:24
also zum Vertsändins .... der Text den du in ein Edit-Feld eingibst iss länger als das editfeld? unn du weist dann nicht, wie lange der Text ist? den du da eingefügt hast?
ich weis es nicht genau aber kann man nicht bei einem Editfeld auch einen scrollbalken hinmachen??
oder versteh ich dich nun komplett falsch 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Fr 17.01.03 15:25
also zum Vertsändins .... der Text den du in ein Edit-Feld eingibst iss länger als das editfeld? unn du weist dann nicht, wie lange der Text ist? den du da eingefügt hast?
ich weis es nicht genau aber kann man nicht bei einem Editfeld auch einen scrollbalken hinmachen??
oder versteh ich dich nun komplett falsch
also wie ka bei ner listbox fsBoth
dann haste horz. und ein vertikaler balken .... weis aber nicht ob das bei nem edit auch geht must du ma versuchen
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
blattlaus 
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 17.01.03 15:48
Titel: edit
hallo, vielen dank für die antwort, das war aber leider nicht die frage.also nochmal langsam.du hast ein eingabefenster mit edit1 erstellt. nun gebe ich beim laufendem programm einen text ein der länger ist als das eingabefenster, soweit noch klar ?! so, und jetzt drücke ich die löschtaste, der cursor geht bei jedem drücken der löschtaste weiter nach vorne. wenn er an der 1. stelle ist und ich weiter die löschtaste drücke springt der cursor an die 5-6 stelle und zeigt den text an(aber nur 5-6 stellen). ich drücke weiter die löschtaste. der cursor geht wieder nach vorne und an der 1. stelle springt er wieder an die 5-6 stelle.
ich fragte, wie kann ich es programmieren daß der cursor immer an der letzten stelle bleibt, wenn ich die löschtaste drücke, und erst dann weiter nach vorne geht, wenn der text kleiner als das eingabefenster wird.
so, nun dürftest du es eigentlich verstanden haben.
danke im voraus
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 15:54
ich hab verstanden, wa du meinst, aber meinst du mit der löschen taste die back oder die entf taste?
ich fermute die back
|
|
blattlaus 
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 17.01.03 15:59
hallo, ich meine die taste über der return-taste. eine längere taste mit einem pfeil nach links.
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 16:02
ja, genau die meinte ich auch
ich werde mal probieren, eine lösung zu finden
bis dann
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 16:07
tut mir leid, hab vorerst nüscht gefunden
da gibt es aber bestimmt eine eigene funktion des edit feldes
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 17.01.03 16:13
@torsten: wenn Du verstanden hast, was er meint, kannst Du es mir erklären? Vielleicht fällt mir was ein...
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 16:22
mein name ist torstenheinze und nicht torsten, torsten ist jemand anderes in diesem forum
ich werde mal ein bild machen, was das problem verdeutlicht, und dann schicke ich dir es mal per email.
oder du startest mal dein delphi und erstellst ein edit.
nun schreibst du einen seeeeeeeeehhr langeeeeeeeeeentest rein.
nun drückst du die backspace taste, und du bemerkst, das der cursor zurückgeht und gleichzeitig die buchstaben löscht, aber dein "blickfeld" das selbebleibt, bis du den anfang deines blickfeldes mit dem cursor überschreitest, dann siehst du 6 buchstaben in dein blickfeld reinragen und das spiel beginnt von forne.
man versteht es nur, wenn man ein edit erstellt, und einen lanngentext eingibt und wieder mit der zurücktaste löscht, du wirst dann schon die frage verstehen
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 17.01.03 17:15
Hi!
Habe ein bisschen herumprobiert und glaube, dass dies eine gute Lösung ist. Erst habe ich nur das KeyUp-Ereignis verwendet, aber dann funktionierte es nicht, wenn die Backspace-Taste gedrückt blieb. So geht es, glaube ich, ganz gut. Das Application.ProcessMessages habe ich rein gemacht, weil man sonst ein Flackern des Cursors sieht. Kann aber auch sein, dass ich mir das nur eingebildet habe. Einfach mal ausprobieren, ob man das auch weglassen kann.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| var Form1: TForm1; backspace : Boolean;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=8 then backspace:=true; end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin backspace:=false; end;
procedure TForm1.Edit1Change(Sender: TObject); begin if backspace then begin edit1.SelStart:=1; edit1.SelStart:=Length(edit1.text); Application.ProcessMessages; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin backspace:=false; end; |
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 17:20
hey, die lösung ist echt gut, lob 
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 17:21
das mit dem process message bewirkt auch net viel
|
|
blattlaus 
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 17.01.03 17:24
hallo, peter lustig (oder wie du auch immer heißen magst),
erstmal vielen dank für eine lösung, könntest du mir auch netterweise dazu noch antworten, wie ich den cursor im textfeld ändern kann, z.b. in einen blinkenden unterstrich(nicht der normale längsstrich)?
ich besitze delphi 3 und bin auch sehr zufrieden damit, habe auch einige bücher dazu, aber eine lösung niergends zu finden. wo lernt man das denn...oder von welchem buch, deine lösung muß ich erst mal verdauen....
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 17:25
mache einfach:
edit1.cursor := clmycursor
den musst du vorher einbinden
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 17:29
die methode die Perter aus der Serie angewendet hat, die kann man auch bei Spielen anwenden, die auf ner delphi-form sind.
ich hab auch an sowas gedacht, doch ich bin net draf gekommen
|
|
blattlaus 
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 17.01.03 17:34
hi (hallo hatte ich schon so viele........)
erstmal vielen dank für lösungsmöglichkeiten, ich bin euch sehr dankbar, dachte nie, daß mir jemand helfen würde....
daß es auch klappt mit dem forum..alle hochachtung
ich möchte auch die jenigen danken die mir keine lösung bieten konnten....aber ich denke diese frage war jedenfalls eine frage wert, oder ?
man sieht es an den vielen usern, die sich dazu eingeklickt hatten !!
|
|
torstenheinze
      
Beiträge: 461
|
Verfasst: Fr 17.01.03 17:39
| Zitat: | | aber ich denke diese frage war jedenfalls eine frage wert, oder ? |
na sicher war diese frage es wert gestellt zu werden, und außerdem hilft hier jeder jedem. 
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 17.01.03 18:03
Hi!
Fragen sind es immer Wert gestellt zu werden! Und ich kann mich auch nicht erinnern, dass sich schon jemand damit hier im Forum beschäftigt hat.
Ich war überrascht, dass es noch ein Problem beim Edit-Feld gibt, dass noch nicht besprochen worden bzw. kaum bemerkt worden ist.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|