03 Dialoge
20 RadioButton
Dialog um RadioButtons ergänzen.
Das Menü wurde noch ein wenig geändert/ergänzt.
procedure TMyApp.InitMenuBar;
var
Rect: TRect; // Rechteck für die Menüzeilen-Position.
M: PMenu; // Ganzes Menü
SM0, SM1, SM2, // Submenu
M0_0, M0_2, M0_3, M0_4, M0_5,
M1_0, M2_0: PMenuItem; // Einfache Menüpunkte
begin
GetExtent(Rect);
Rect.B.Y := Rect.A.Y + 1;
M2_0 := NewItem('~A~bout...', '', kbNoKey, cmAbout, hcNoContext, nil);
SM2 := NewSubMenu('~H~ilfe', hcNoContext, NewMenu(M2_0), nil);
M1_0 := NewItem('~P~arameter...', '', kbF2, cmPara, hcNoContext, nil);
SM1 := NewSubMenu('~O~ption', hcNoContext, NewMenu(M1_0), SM2);
M0_5 := NewItem('~B~eenden', 'Alt-X', kbAltX, cmQuit, hcNoContext, nil);
M0_4 := NewLine(M0_5);
M0_3 := NewItem('S~c~hliessen', 'Alt-F3', kbAltF3, cmClose, hcNoContext, M0_4);
M0_2 := NewLine(M0_3);
M0_0 := NewItem('~L~iste', 'F2', kbF2, cmList, hcNoContext, M0_2);
SM0 := NewSubMenu('~D~atei', hcNoContext, NewMenu(M0_0), SM1);
M := NewMenu(SM0);
MenuBar := New(PMenuBar, Init(Rect, M));
end;
Den Dialog mit RadioButton ergänzen, die funktioniert fast gleich wie bei den CheckBoxen.
procedure TMyApp.MyParameter;
var
Dia: PDialog;
Rect: TRect;
dummy: word;
Ptr: PView;
begin
Rect.Assign(0, 0, 35, 15);
Rect.Move(23, 3);
Dia := New(PDialog, Init(Rect, 'Parameter'));
with Dia^ do begin
// CheckBoxen
Rect.Assign(2, 3, 18, 7);
Ptr := New(PCheckBoxes, Init(Rect,
NewSItem('~D~atei',
NewSItem('~Z~eile',
NewSItem('D~a~tum',
NewSItem('~Z~eit',
nil))))));
Insert(Ptr);
// RadioButton
Rect.Assign(21, 3, 33, 6);
Ptr := New(PRadioButtons, Init(Rect,
NewSItem('~G~ross',
NewSItem('~M~ittel',
NewSItem('~K~lein',
nil)))));
Insert(Ptr);
// Ok-Button
Rect.Assign(7, 12, 17, 14);
Insert(new(PButton, Init(Rect, '~O~K', cmOK, bfDefault)));
// Schliessen-Button
Rect.Assign(19, 12, 32, 14);
Insert(new(PButton, Init(Rect, '~A~bbruch', cmCancel, bfNormal)));
end;
dummy := Desktop^.ExecView(Dia); // Dialog Modal öffnen.
Dispose(Dia, Done); // Dialog und Speicher frei geben.
end;