Results 1 to 7 of 7

Thread: emuleren keypress

  1. #1

    emuleren keypress

    Dag allemaal,

    Ik heb nu een applicatie waarop gereageerd wordt door de toest F3 in te drukken. Nu wil ik graag dat de linkermuisknop (1x drukken) hetzelfde doet, en dus F3 emuleren..


    Kan dit?

    Ik heb al heel wat afgezocht maar kan nog niets werkend krijgen, las iets van winapi maar dat werkt niet.

  2. #2
    Is dat jouw applicatie? Zo ja dan is het misschien handiger om gewoon een onClick event te emuleren. Als je met de Windows Api aan de slag wilt, dan kun je kbd_event gebruiken.
    1+1=b

  3. #3

    ..

    Bedankt!!!!!!!

    Idd, heb de routine die gebruikt wordt bij F3 button click ook in de onclick routine gebruikt en het werkt.

    Jah of het mijn routine is nee niet echt, probeer de virtual tree view en lazarus een beetje te begrijpen. Het begint met wel aardig te lukken, maar... Ik gebruik het voorbeeld van:

    http://wiki.lazarus.freepascal.org/V...le_for_Lazarus

    Is het mogelijk om een string met een willekeurige text op een bepaalde plek in te voeren. bijvoorbeeld.

    VST.Node[X].Column[Y].Insert(string);

    X is dan het rij-nummer, y is de kolom-nr. Oftewel je kan een string in een bepaalde cell invoeren. Wie kan mij helpen?








    --------------------------- EDIT --------------------------------------

    Loop nu al een tijdje te proberen, maar wat wel lukt is om een node te verwijderen en deze opnieuw te laden met de nieuwe cell inhoud. Maar dat is toch hartstikke omslachtig? Dit moet toch ook wel anders willen? Dus gewoon dat je bepaalde data naar een bepaalde cell kan wegschrijven?
    Last edited by m.devriesjr; 01-Dec-10 at 23:16.

  4. #4
    De gram van de Virtual(String)Tree is dat de tree zelf geen data bevat. Je bent zelf verantwoordelijk voor de achterliggende datastructuur. De tree geeft deze alleen maar weer.

    Als je het voorbeeld van de Lazarus wiki gevolgd hebt, dan zie bij punt 16 dat er een record gedefinieerd wordt. Deze is alleen voor de demo, als je meer kolommen wilt of andere gegevens moet je je eigen structuur maken.
    De VT bied de mogelijkheid om extra data bij een Node op te slaan. Daar is in deze demo gebruik van gemaakt. De hoeveelheid extra geheugen per node wordt in punt 20 gedefinieerd.
    Wanneer je 4 ipv. 3 kolommen wilt zul je het record moeten uitbreiden en ondermeer punt 21 uitbreiden.

    Als je nu de text van gegeven node voor kolom 3 wilt aanpassen:
    pascal Code:
    1. var
    2.   Data: PTreeData;
    3.   Node: PVirtualNode;
    4. begin
    5.   Node := ... // hier code om je node te vinden
    6.  
    7.   Data := VST.GetNodeData(Node);
    8.   Data^.Colum2 := 'Foo';
    9.   VST.InvalidateNode(Node);

  5. #5

    oke.......

    Ah oke, bedankt.. Dat is mij nu al een stuk duidelijker..

    Hoe werkt een record eigenlijkprecies.. Ik wil graag een record koppelen aan mijn stringtree per node.

    Dus
    node1
    -subnode1
    -subnode2
    node2
    -subnode1
    -subnode2
    node3
    -subnode1
    -subnode2
    node4
    -subnode1
    -subnode2
    node5
    -subnode1
    -subnode2

    Dan wordt zijn er in mijn optiek dus 5records( eg record1 .. 5) met allemaal 2 items subnode1 en subnode2).

    Als je nu bij var de record declareerd als temp: Tnode1 dan is dit toch alleen in deze functie/procedure van toepassing? Is er geen methode zodat de record overal te beschrijven of te belezen is?

    dus node.subnode1 := temp overal kunnen doen, of andersom temp:= node.subnode1;

  6. #6
    Dat gaat dan niet meer over de keypress, het is handiger als je daar dan een nieuwe thread over maakt.
    Marcel

  7. #7
    @Marcel, daar heb je gelijk in.
    @m.devriesjr. ik wacht even op een nieuw draadje

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •