2011-07-13 6 views
5

मैं टैब या तीर कुंजी द्वारा डेल्फी में एक स्ट्रिंग ग्रिड की कोशिकाओं के बीच कैसे स्थानांतरित कर सकता हूं? जैसा कि आप जानते हैं, डेल्फी में एक स्ट्रिंग ग्रिड में केवल एक टैब ऑर्डर है, लेकिन मुझे तीर कुंजियों या टैब द्वारा कोशिकाओं के बीच अधिक आरामदायक और उपयोगकर्ता के अनुकूल होने की आवश्यकता है।डेल्फी: स्ट्रिंग ग्रिड की कोशिकाओं के बीच स्थान

मैं एक कुंजी दबाने घटना का उपयोग करने की कोशिश की है, लेकिन इस घटना के केवल वर्ण जानता है और टैब की तरह नियंत्रण कुंजी पता नहीं है और ...

+0

त्रुटि के बारे में: http://meta.stackexchange.com/questions/92074/what-can-i-do-when-getting-it-does-not-meet-our-quality-standards –

उत्तर

5
StringGrid.Options := StringGrid.Options + [goEditing, goTabs]; 

या इस designtime निर्धारित किया है।

अब आप टैब से तीर कुंजियों के साथ सेल से सेल में स्थानांतरित कर सकते हैं। यदि आप वास्तव में एक सेल को संपादित कर रहे हैं, तो आपको पहले फोकस को रिलीज़ करना होगा यदि आप सेल को बाएं या दाएं स्थानांतरित करना चाहते हैं। उस स्थिति में, उपयोग (शिफ्ट) टैब।

+0

GoEditing क्यों? –

+0

ओह मेरे भगवान ,, यह मेरे जीवन में सबसे अच्छा जवाब है। धन्यवाद । – Arash

+0

गोद लेने के लिए कोशिकाओं के प्रकार के लिए है, अगर इसकी झूठी आप कोशिकाओं में टाइप नहीं कर सकते हैं – Arash

0
{ This handles arrow left and right in the GRID 
} 
procedure TJournalForm.JournalGridKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); 

begin 
    if (JournalGrid.EditorMode = True) then  // if arrowing while editing… 
     begin 
      if Key=VK_Left then if JournalGrid.Col>(JournalGrid.FixedCols+1) then JournalGrid.Col:=JournalGrid.Col-1; 
     if Key=VK_Right then if JournalGrid.Col<(JournalGrid.ColCount-1) then JournalGrid.Col:=JournalGrid.Col+1; 
    end; 
end; 
+1

'ColM प्रॉपर्टी में नया मान सेट करने से पहले 'EditorMode: = false' सेट करें। –

संबंधित मुद्दे