2011-03-31 13 views
6

Kullanıcının bir eylemi (İşlem) yürütmesini nasıl tetikleyebileceği birçok yol vardır: kısayol tuşları, araç çubuğu düğmesi, açılır menü düğmesi vb. bilgisini almak için bu eylemin nasıl tetiklendiği nedir?Bu Tevzi hangi yolla yapıldı?

Sadece GUI'de farklı özellikleri kullanmanın en popüler yollarını bulmak için aktivite günlüğünün uygulanmasını düşünüyorum.

güncelleme

Bir kullanıcı uygulama GUI etkileşimi hakkında bazı durum toplamak gerekir.

Her düğme için ayrı bir eylem oluşturmanın en iyi yolu, yalnızca günlük kaydını uygulamanız gerektiğinden değil. Ulrich Gerhardt'ın yanıtı uygun görünüyor. TActionList.OnExecute olayına bir işleyici atayabilir ve bir yerden günlük yazabilirim.

+3

Bunu bilmek istiyorsanız tasarımınız bozuldu –

+3

Bilinmeyen bir uygulama tasarımını tanımak için telepatik yeteneğinize hayranım. –

+1

Bir tuşa basmak istediğinizde menüden farklı davranmak için bu farklı bir işlemdir. –

cevap

11

Belki ActionComponent kullanabilirsiniz:

Kullanım ActionComponent istemci bileşeni bu eylem yürütmek neden olan ayırt etmek. Örneğin, kullanıcı eyleminin bu eylemi tetiklediğini bilmeniz gerekiyorsa, bir OnExecute olay işleyicisinden ActionComponent öğesini inceleyin.

kullanıcı bir istemci denetimi tıkladığında

, müşterinin bu eylem en yöntemini yürütün çağırmadan önce ActionComponent ayarlar. Eylem yürütüldükten sonra eylemi, ActionComponent öğesinin sıfırlanmasını (Delphi) veya NULL (C++) olarak sıfırlar.

da TApplication.OnActionExecute, TActionList.OnExecute ve muhtemelen daha "kanca" yoktur.

+0

Teşekkürler, bu mülkü unuttum. Neredeyse tamamen ihtiyaçlarıma uyuyor. Ama kısayol tuşları ne olacak? Bu durumda ActionComponent'e hangi değer atanır? –

+0

Kısayol tuşları her zaman bir bileşene bağlı değildir; Windows ve/veya Delphi bunları sizin için üretebilir. Bize neden ihtiyaç duyduğunuzu açıklayın ve uygulamanızı daha iyi bir şekilde tasarlamanıza yardımcı olabiliriz. –

+2

Klavye tarafından bir eylemin başlatılabileceği farklı yolları tespit etmek zor. Kısayol olabilir. Hızlandırıcı olabilir. İmleç/sekme tuşları ile navigasyon olabilir. –

İlgili konular