2012-01-16 36 views
6

Thứ tự tab trên biểu mẫu của tôi trong Delphi (Embarcadero® Delphi® 2010 Phiên bản 14.0) không chính xác, có nghĩa là phím tab bỏ qua các mục dường như ngẫu nhiên trong biểu mẫu.Thứ tự tab Delphi

Tuy nhiên, khi tôi đi và thay đổi nó trong Delphi, nó sắp xếp lại cho tôi, theo thứ tự không chính xác!

Vì vậy, tôi quyết định để lập trình gán chúng:

procedure FixDelphiTabOrder; 
begin 
    Form2.ButtonClear.TabOrder := 2000; 
    Form2.ButtonExport.TabOrder := 1900; 
    Form2.ButtonNew.TabOrder := 1800; 
    Form2.MaxFreq.TabOrder := 1700; 
    Form2.MinFreq.TabOrder := 1600; 
    Form2.Summary.TabOrder := 1500; 
    Form2.Plot6dB.TabOrder := 1400; 
    Form2.Plot3dB.TabOrder := 1300; 
    Form2.Use_dBs.TabOrder := 1200; 
    Form2.PlotPoints.TabOrder := 1100; 
    Form2.PlotPhase.TabOrder := 1000; 
    Form2.Prop8Value.TabOrder := 900; 
    Form2.Prop7Value.TabOrder := 800; 
    Form2.Prop6Value.TabOrder := 700; 
    Form2.Prop5Value.TabOrder := 600; 
    Form2.Prop4Value.TabOrder := 500; 
    Form2.Prop3Value.TabOrder := 400; 
    Form2.Prop2Value.TabOrder := 300; 
    Form2.Prop1Value.TabOrder := 200; 
    Form2.FilterType.TabOrder := 100; 
    ShowMessage(IntToStr(Form2.Prop1Value.TabOrder)); 
end; 

(Tôi đã cố gắng gán cho nó cả lui, nó làm điều tương tự.)

Nhưng điều này vẫn không hoạt động. Hộp thông báo bật lên với 7 thay vì 100, mỗi lần. Cái gì đó liên tục thay đổi thứ tự, nhưng nó không phải là mã của tôi.

Tại sao điều này và có thể khắc phục được?

Điều này dành cho A2 Project Computing của tôi

+1

@David Cân nhắc thực hiện. Xin lỗi - đã đứng sau. –

Trả lời

19

TabOrder liền kề nhau. Điều khiển đầu tiên có TabOrder trong số 0. Tiếp theo có TabOrder của 1 v.v. Bạn không thể để lại bất kỳ khoảng trống nào.

Trong khi bạn có thể gán TabOrder theo chương trình, cá nhân tôi thấy dễ nhất khi sử dụng GUI để làm như vậy. Nhấp chuột phải vào biểu mẫu hoặc thực sự trên điều khiển vùng chứa và chọn mục menu Tab Đặt hàng. Sau đó, bạn sẽ thấy một hộp thoại như thế này:

enter image description here

Bạn có thể sử dụng các nút mũi tên để sắp xếp lại, hoặc bạn có thể chỉ cần kéo các mục để lại trật tự. Nó hoạt động khá tốt trong quan điểm của tôi nhưng bạn phải nhớ rằng các điều khiển chứa các điều khiển khác (ví dụ: bảng, tabsheets, v.v.) có thứ tự tab riêng của chúng. Để kiểm soát như vậy, bạn cần chọn điều khiển đó, nhấp chuột phải và sau đó sửa đổi thứ tự tab cho con của vùng chứa đó.

+0

Quá nhiều BBC cơ bản.Tôi đoán nó có nghĩa là rất nhiều đặt hàng lại nếu tôi muốn thêm một cái gì đó mới trong. –

+0

Ah vâng, BBC Micro. Tôi đã có một mô hình B. 'REN 10, 10' dường như rung chuông! –

+0

Nếu bạn không sử dụng thuộc tính Thẻ của các thành phần thì bạn có thể gán giá trị 'TabOrder' đặc biệt cho thuộc tính Thẻ và sau đó tạo thủ tục để đặt thứ tự tab theo chương trình dựa trên giá trị thẻ. Sau đó bạn có thể dễ dàng chèn các thành phần mới với các thẻ trung gian và có thủ tục đặt hàng tab sắp xếp nó tự động. –

11

Nếu tôi hiểu rõ bạn, CnPack có thể giúp bạn trong thời gian thiết kế.

Dưới đây bạn có thể thấy một tính năng. CnPack có thể hiển thị cho bạn các Đơn hàng tab khi bạn đặt các thành phần trong biểu mẫu. Điều này có thể hữu ích khi bạn có nhiều chỉnh sửa, nút hoặc bảng.
CnPack Display TabOrders in Designing Mode

Một tính năng khác là nút "Đặt đơn đặt hàng tab tự động trong biểu mẫu", đặt Đơn hàng tab bằng vị trí của mỗi điều khiển để xác định Thứ tự tab của nó. Xem dưới cùng một hình thức sau khi nhấn nút. "Auto Set Tab Orders in the Form" button

Tôi thấy chúng cực kỳ hữu ích khi thiết kế các biểu mẫu lớn. Một lựa chọn khác sẽ là GExperts thứ tự màn hình Tab có cùng "tự do vị trí" tính năng: enter image description here

+0

+1 câu trả lời rất hay hiển thị hai công cụ rất hữu ích và mạnh mẽ –

1

Con đường tôi thiết lập thứ tự tab là bằng cách chọn từng thành phần theo thứ tự bạn muốn thứ tự tab, sau đó cắt các điều khiển vào khay nhớ tạm (CTRL-X), sau đó dán (CTRL-V) chúng trở lại.

+0

Bạn có thể làm điều đó dễ dàng hơn nhiều bằng cách sử dụng Cnpack hoặc GExperts .. –

+0

@FabricioAraujo - Trên thực tế, đối với vài điều khiển là một phương pháp khá nhanh. Tôi sẽ dùng nó! Nếu bạn có nhiều tôi khuyên bạn nên thực sự CNPack – Ampere

Các vấn đề liên quan