Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 1999
    Messaggi
    50

    [DELPHI] caratteri ascii

    devo fare un'insert into in un database access.
    fin qui tutto bene.
    devo però escudere il carattere ' perchè altrimenti nulla funziona

    allora ho ativato l'evnto onkeypress ed inserito la seguente if..

    procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: word;
    Shift: TShiftState);
    begin
    if key=xx then
    begin
    MessageDlg('carattere non consentito SI PREGA DI CANCELLARLO', mtInformation, [mbOK],0);
    end;
    end;


    le xx sono il carattere ascii per la ' a me risulta che sia 39 ma nulla da fare,
    voi sapete venirmi in aiuto????????
    ---------------
    Alepio
    " barcollo ma non MOLLO "

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    OnKeyPress

    Prova ad intercettare l'evento OnKeyPress al posto dell'evento OnKeyDown.

    Il codice ASCII risulta anche a me uguale a #39.

    Imposta il parametro Key passato all'evento al valore #0 per "assorbire" il tasto premuto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    la soluzione migliore non è eliminarlo ma gestire il suo inserimento. Se ad esempio un utente deve inserire un nome di città tipo L'Aquila o un cognome come D'Andrea che gli dici di cambiare residenza e cognome???

    A parte gli scherzi, hai due soluzioni

    1) nell'evento OnKeyPress metti questo codice:
    if Key = '''' then Key := Chr(0);

    2) consenti l'inserimento dell'apice raddoppiando gli apici al momento di salvare la stringa nel database:

    function Apici(Text : AnsiString) : AnsiString;
    //raddoppia gli apici nella stringa
    var
    i : integer;
    AuxString : AnsiString;
    begin
    AuxString := '';
    for i := 1 to length(Text) do
    if Text[i] = '''' then AuxString := AuxString + ''''''
    else AuxString := AuxString + Text[i];
    result := Auxstring;
    end;
    Massimiliano Etere
    meNOSPAMPLEASE@maxetere.it
    http://www.suonaresuonare.it
    http://www.vendovendo.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    bada che non basta gestire eventi della tastitiera ma anche COPIA INCOLLA... col mouse e cambio testo da altri software (WINDOW HOOKS!)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.