Avatar billede pointwood Nybegynder
19. januar 2000 - 16:42 Der er 2 kommentarer og
1 løsning

Problemer med genvejstaster i VB6

I et projekt har jeg brugt et listview component til at vise en imagelist (med ikoner).

I den forbindelse vil jeg gerne ved redigering af navnet på et ikon kunne bruge delete-tasten til at slette tekst, men da jeg i min menueditor (under Tools\Menu Editor) har brugt  delete som en genvejstast til at slette et ikon, så går det galt.

Hvis jeg vil ændre navnet og trykker delete så sletter den ikonet i stedet for bare at slette et bogstav i navnet :-(

Der må findes en måde hvorpå man kan omgåes det?
Avatar billede sjensen Nybegynder
19. januar 2000 - 17:34 #1
Ja, fjern delete fra menuen som genvejstast.

Hvad med at bruge standard CTRL-X for cut, CTRL+C for copy og CTRL+V for paste ?

En anden mulighed er at grappe tastetryk for imagelisten og i det tilfælde tasten er lig VK_Delete, så styr hvad der slettes programmæssigt. Du kan så stadig beholde delete som genvejstast til sletning af ikoner, når fokus er uden for imagelisten.

Eller brug Shift+Delete for image (menuen), og Delete for navnet

Der er mange muligheder, men ikke at programmet selv skal kunne regne ud at når du trykker på delete skal det nogen gange slette et image og andre gange, når du har lyst, slette navnet. Du er nødt til at styre det i programmet.

Ved dit program hvornår du er ved at rette navnet og hvornår du ikke er ?

Hvis ja, så kan du midlertidigt fjerne delete som genvejstast i menuen (programmæssigt) når du starter på at rette navnet, og genindsætte den når du er færdig med at rette navnet.

sjensen
Avatar billede pointwood Nybegynder
20. januar 2000 - 09:30 #2
"Ja, fjern delete fra menuen som genvejstast."

Det var ikke den løsning jeg lige søgte - i windows (på skrivebordet etc.) fungerer det jo fint! Hvis man har markeret et ikon og trykker delete, så sletter man ikonet, men hvis man er ved at rette navnet, så sletter man et bogstav.

Det er samme funktionalitet jeg ønsker i programmet, og jeg havde en forhåbning om at der var en simpel måde hvorpå man kunne få den til det, da det jo er meget naturlig at det fungerer på den måde. Dvs. jeg troede egentligt at det var standard at delete sletter der hvor der i øjeblikket er fokus, men det er det åbenbart ikke...

Jeg ved selvfølgeligt ikke hvordan MS har programmeret det i Windows... :-)

"Hvad med at bruge standard CTRL-X for cut, CTRL+C for copy og CTRL+V for paste ?"

Ja, men jeg vil jo ikke hverken klippe, kopiere eller sætte ind - jeg vil slette...

Avatar billede sjensen Nybegynder
20. januar 2000 - 21:49 #3
Ok, ok.. CTRL-X er måske ikke lige at slette, men klip virker jo også som en sletning, blot med den forskel at du gemmer det du sletter på klippebordet i stedet for bare at slette det. Men jeg forstår godt hvad du mener.

Med hensyn til funktionalitet som i MS. Du har ret i at det burde virke sådan og det var det der lå bag mit spørgsmål "Ved dit program hvornår du er ved at rette navnet og hvornår du ikke er ?"

Eftersom det er dig i programmet der reagerer på Delete og fjerner ikonen når du trykker på delete er det også dig der skal styre hvad programmet i ewt givet øjeblik foretager sig. Hvis du ved at du er ved at rette et navn skal du netop ikke slette ikonet, men bare lade delete passere igennem keyboard eventhandleren.

Som jeg også skrev kan du midlertidigt i programmet "fjerne" den event der bliver aktiveret når man trykker på delete, når du er i den del af programmet hvor du retter navnet. Dermed virker delete i det tilfælde som den plejer (og skal) og lige inder du forlader rutinen, efter at have rettet navnet, slår du delete-eventen til igen.

Men det kræver jo som sagt at du i dit program ved hvornår der sker hvad.

sjensen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester