Article View: pl.comp.lang.pascal
Article #92758Re: [Lazarus] Skrót klawiaturowy w Linuksie
From: Terrmit
Date: Tue, 02 Dec 2008 10:50
Date: Tue, 02 Dec 2008 10:50
88 lines
4354 bytes
4354 bytes
Łukasz 'Maly' Ostrowski pisze:
> On Mon, 01 Dec 2008 22:49:23 +0100, Terrmit wrote:
>> Wykombinowałem coś takiego:
>>
>> var
>> Form1: TForm1;
>> display : PDisplay;
>>
>> implementation
>>
>> procedure TForm1.FormCreate(Sender: TObject);
>> var win: TWindow;
>> key, grab: Integer; //GrabModeAsync
>> begin
>> display := XOpenDisplay(nil);
>> if display = nil then ShowMessage('Błąd: Nie mogę połączyć się z
>> serwerem X')
>> else begin
>> win := DefaultRootWindow(display);
>> XGrabKey(display, key, 0, win, true, grab, grab);
>
> I jaki konkretnie klawisz łapiesz? Bo nie widzę inicjalizacji
> key, i w jakim trybie? Bo nie widze inicjalizacji Sync/Async
> do grab?
Heh, żebym jeszcze wiedział o co chodzi :/
W założeniu klawisz Scroll Lock ma aktywować/deaktywować
obsługę klawiatury numerycznej w tym programie.
Po aktywacji ekran ma być podzielony (niewidzialnie) na
9 części jak w grze kółko i krzyżyk. Wciśnięcie klawisza
od 1 do 9 klawiatury numerycznej ma przenosić kursor
do odpowiedniej części ekranu. Dzięki temu niepełnosprawna
osoba nie musi myszką przesuwać kursora przez cały ekran
a jedynie w obszarze 1/9 powierzchni ekranu.
Mam nadzieję, że nie namotałem w wyjaśnieniu.
Rozumiem, że trzeba jakoś inicjalizować key, czy chodzi o to,
że muszę już w XGrabKey wskazać o jaki klawisz chodzi?
Nie wiem co to jest inicjalizacja Sync/Async do grab :(
Ech, trochę to "pogięte", albo po prostu mam za mało wiedzy
z X-Window. Przejrzę jeszcze raz kody, które znalazłem,
może coś więcej mi się "rozjaśni".
Jeśli to możliwe prosiłbym o bliższe wskazówki.
>
>> end;
>> Timer1.Interval := 10;
>> end;
>>
>> <snippety-snip>
>>
>> Ale to nie działa - program kończy się bez żadnego komunikatu
>> błędu. Pewnie coś tu strasznie nachrzaniłem, ale nie radzę
>> sobie z tym. Może ktoś mi pomóc?
>
> Jak jutro będe miał chwile to zajrzę na Slacku moim,
> ale ostrzegam, jak wyklepie jakiegoś example'a to
> raczej to będzie w C/C++ bo nie lubie walczyć
> (z wiatrakami/z zaślepkami) w postaci lazarusa ;).
Do jakiś fragmentów kodu w C++ to ja nawet dotarłem,
ale nie do końca kumam jak to przełożyć na Freepascal/Lazarus.
Jednak zależałoby mi, aby zrobić to w Lazarusie.
Jeśli masz jakiegoś example'a, to bardzo proszę o niego.
Im więcej kodów, tym pewnie łatwiej będzie mi to zrozumieć.
>
> P.S. W KDE nie ma accessibility programów do wspomagania
> obsługi myszy?
Chodzi przede wszystkim o to, żeby dostosować program
do potrzeb głównie konkretnej osoby i żeby program
działał tak samo w Gnome, KDE i MS Windows.
Jak zrobię/zrozumiem "łapanie" klawiszy w X-Window, to dalej
jak sądzę pójdzie mi z górki.
>
> P.P.S. Co do tego timera, to dośc ekhm, metoda 'hackerów'
> z pl.comp.lang.delphi ['czy ktoś ma komponent do
> dodawania?' ;)]. Podejrzewam że w modelu Xlib,
> jeżeli nie możesz tego wstawić do main loopa,
> a nie możesz bo tam masz message-pump gui, to
> pewnie trzeba to wydelegować do osobnego
> wątku.
Hmm, racja. Trzeba by to wsadzić do osobnego wątku.
Dzięki za zainteresowanie i pomoc. Może z Waszą pomocą powoli
dojdę jak to wszystko zrobić.
Sławek
Technical Details
Message-ID:
<gh33ud$26p$1@achot.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mailReferences:
<ggum6m$a7f$1@achot.icm.edu.pl> <ggut30$j1e$1@achot.icm.edu.pl> <1e1rz5s7181lg.1r5mxgapek4gh.dlg@40tude.net> <gh1m54$3mi$1@achot.icm.edu.pl> <p5fjcwlif1kz.1lfc5tzflch4w.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail From: Terrmit <terrmitv@poczta.onet.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: [Lazarus] Skrót klawiaturowy w Linuksie Date: Tue, 02 Dec 2008 11:50:52 +0100 Organization: http://news.icm.edu.pl/ Lines: 88 Message-ID: <gh33ud$26p$1@achot.icm.edu.pl> References: <ggum6m$a7f$1@achot.icm.edu.pl> <ggut30$j1e$1@achot.icm.edu.pl> <1e1rz5s7181lg.1r5mxgapek4gh.dlg@40tude.net> <gh1m54$3mi$1@achot.icm.edu.pl> <p5fjcwlif1kz.1lfc5tzflch4w.dlg@40tude.net> NNTP-Posting-Host: chello089076219239.chello.pl Mime-Version: 1.0 X-Trace: achot.icm.edu.pl 1228215054 2265 89.76.219.239 (2 Dec 2008 10:50:54 GMT) X-Complaints-To: abuse@icm.edu.pl NNTP-Posting-Date: Tue, 2 Dec 2008 10:50:54 +0000 (UTC) In-Reply-To: <p5fjcwlif1kz.1lfc5tzflch4w.dlg@40tude.net> User-Agent: Thunderbird 2.0.0.18 (X11/20081119) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit