AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

edit mit eingabesperre & copy + paste

Ein Thema von Jan · begonnen am 12. Mär 2003 · letzter Beitrag vom 14. Mär 2003
Antwort Antwort
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

edit mit eingabesperre & copy + paste

  Alt 12. Mär 2003, 15:57
Also ich habe für mein kleines Umrecnungsprogramm eine Eingabebschränkung programmiert, die z.B. so aussieht:

Delphi-Quellcode:
procedure TForm2.Memo2KeyPress(Sender: TObject; var Key: Char);
begin
  If not(key in [#48..#57,#65..#70,#97..#102,#8]) then
  begin
    beep;
    key := #0;
  end;
end;
Um dann aber copy und paste zu ermöglichen habe ich im onkeyup folgendes geschrieben:

Delphi-Quellcode:
procedure TForm2.Memo2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) then
  begin
    if (Key = 67) then
    memo2.CopyToClipboard
    else if (Key = 118) then
    memo2.PasteFromClipboard;
  end;
end;
Copy geht ganz ohne Probleme, aber paste will nicht. Das gleiche tritt auch bei edits auf.
Weiß da jemand weiter?
Gruß
Jan

[edit=Daniel B]Delphi-Tags hinzugefügt. Jan, bitte [ delphi] anstatt [ code] benutzen! Danke! MfG Daniel B.[/edit]
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#2
  Alt 12. Mär 2003, 16:00
Anstatt die Eingabebeschränkung beim Tastendruck einzusetzen solltest du das Ganze ins OnChange-Ereignis packen.

So wie es jetzt ist müsstest du das zupastende auslesen und per SendKey an das Edit weiterleiten...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 12. Mär 2003, 16:24
hallo janjan,

Zitat:
So wie es jetzt ist müsstest du das zupastende auslesen und per SendKey an das Edit weiterleiten...
klingt doch akzeptabel!
Aber zu sendkey finde ich leider nichts in der Hilfe.
Kanst du mir da weitere Informationen geben?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 12. Mär 2003, 17:13
Ich bin zu diesem Thema auf folgende Funktion gestoßen:
Code:
function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;
Wie muss ich den Buffer deklarieren und vorbereiten, damit ich da keine Exception bekomme?

Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#5
  Alt 12. Mär 2003, 17:24
Zu dem SendKey:

Das ist keine richtige DelphiFunktion sondern einfach ne Umschreibung für das hier:
PostMessage(Edit1.Handle, WM_KEYDOWN, VK_A, 0 ); VK_A ist eine 'virtual keycode' eine komplette Liste aller Tasten solltest du entweder in der Win32 SDK Hilfe oder bei Google finden.
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6

So was ähnliches

  Alt 12. Mär 2003, 18:46
Wie kann ich einstellen, dass im Edit nur Zahlen oder nur Buchstaben erlaubt sind???
Das wäre manchmal ganz praktisch.

Thx!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#7
  Alt 12. Mär 2003, 18:51
Hallo Flomei, das geht so:

Delphi-Quellcode:
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  If not(key in [#48..#57,#65..#70,#97..#102,#8]) then
  begin
    beep;
    key := #0;
  end;
end;
Das wäre jetzt zum beispiel eine Restriktion für Hex-werte.

Um die Werte zu finden, die du haben willst, kannst du ja mein freeware tool benutzen, welches du hier in der freeware Sektion findest :]

Gruß
Jan

[edit=Daniel B]Delphi-Tags hinzugefügt. MfG Daniel B.[/edit]
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 14. Mär 2003, 19:32
Moin Jan,

um noch einmal auf Dein Eingangsposting zurückzukommen:

Hättest Du dort statt 118 (v) 86 (V) genommen, so hätte es auch mit dem Einfügen geklappt.
Der virtuelle Tastencode für die Buchstaben (ohne Umlaute) ist jeweils ord(Grossbuchstabe).
Das gilt somit auch für solche Codes, wenn man sie, z.B., mit SendMessage benutzen will.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 14. Mär 2003, 21:32
Danke Christian,
das habe ich dann nach einiger Zeit auch herausgefunden :]
Jetzt klappt ja alles.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz