Rösta på artikeln
Menyer
I de program vi hittills skrivit har det saknats en väsentlig
detalj som ingår i de flesta Windowsprogram - en meny. Det finns knappast ett Windowsprogram
som inte har minst en meny. På denna sida kommer du att se hur lätt det är att skapa
menyer i Delphi.
Meny-komponenter
På standardfliken i komponentpaletten i Delphi
finns det en komponent för huvudmenyer., MainMenu, och en komponent för popupmenyer,
PopupMenu.
-
Ikonen för MainMenu
-
Ikonen för PopupMenu
En huvudmeny visas som en rad av alternativ precis under titelraden
på ett formulär. En popupmeny aktiveras med höger musknapp och kan visas var som helst
på formuläret.
Komponenten MainMenu
En huvudmeny i Windows brukar alltid innehålla några olika standardalternativ
- Arkiv, Redigera, Visa etc.. Det är lätt att utforma en meny i Delphi med hjälp av
den inbyggda menyhanteraren. Du aktiverar denna genom att dubbelklicka på komponentikonen
som du har placerat ut på ditt formulär.. Du hamnar direkt i menyhanteraren.
-
I menyhanteraren visas olika fält där du kan fylla i de olika
menyalternativen. Skriv &Arkiv i rutan för Caption i Objektinspektorn och tryck
därefter på Enter-tangenten. I menyhanteraren skrivs då detta val in i huvudmenyn.
Et-tecknet (&) innebär att bokstaven som följer strax därefter kommer att kunna
användas som ett snabbkommando på Windowsvis.
-
Klicka på valet Arkiv i huvudmenyn i menyhanteraren.
Då visas första valet i en undermeny under Arkiv. Lägg i undermenyn till valen Öppna, Spara
och Avsluta.
-
Klicka därefter i rutan til höger Arkiv och skriv in
valet &Redigera. Upprepa och skriva in &Visa i nästa ruta till höger.
-
Du kan förflytta dig i menysytemet och i designfasen testa hur
det kommer att fungera när programmet körs. Om du samtidigt tittar i objektinspektorn
ser du att Delphi har gett de olika menyvalen namn som överensstämmer med namnen på
menyn. Dessa namn refererar du sedan till i programkoden. Naturligtvis kan du ge dem
andra namn om du så vill.
-
Dubbelklicka på menyvalet Avsluta och skriv in följande
procedur i testsyfte.
procedure TForm1.Avsluta1Click(Sender : TObject);
begin
Close;
end; |
-
Provkör programmet och testa menyvalet Avsluta.
Att redigera en meny
Antag att vi vill ändra undermenyn till Arkiv i exemplet
ovan och lägga till en avskiljare mellan Spara och Avsluta. Du kan då
göra på följande vis.
Aktivera valet Avsluta och tryck därefter på Insert-tangenten.
Du kan också högerklicka och sedan välja Insert i den popupmeny som då visas. Ett
tomt menyval skjuts nu in mellan Spara och Avsluta.
Aktivera det tomma menyvalet. Skriv in ett bindestreck i captionrutan
och tryck på Enter-tangenten. En menyavskiljare visas nu i undermenyn.
En undermeny till undermeny
Normalt finns inte mer än en nivå, en undermeny, till huvudmenyn.
Ibland kan det emellertid inträffa att ytterligare val behöver göras till ett val
i en undermeny. Du kan då skapa en undermeny till ett sådant val med hjälp av popupmenyn.
Antag att du vill skjuta in ett val konfigurera så att du får
två tomma menyval.
-
Aktivera valet Avsluta. Tryck två gånger på Insert-tangenten
så att du får två tomma menyval. Skriv därefter Konfi&gurera i den översta och
gör den undre till en avskiljare.
-
Aktivera valet Konfigurera. Högerklicka sedan och välj
'Create Submenu'.
-
Lägg sedan in några menyval, Skrivare, Teckensnitt
och Färger. Du har nu skapat en andra menynivå.
Snabbkommandon
De olika menyvalen kan förses med snabbtangenter.
En snabbtangent fungerar så, att oberoende på var man befinner sig i programmet, så
kommer den aktivitet som är kopplad till snabbtangenten att utföras då snabbtangenten
trycks ned. Du kan välja mellan olika snabbkommandon i menyvalet Shortcut i Objektinspektorn.
Menyval som tillståndsvariabel
Varje menyval i en meny är ett objekt av typen MenyItem med
vissa egenskaper som du kan påverka under designfasen med objektinspektorn. Detta
har du gjort när du i captionrutan anger texten för menyvalet. Ett menyval har också
en egenskap Checked av typen boolean. Om egenskapen har värdet true visas ett V-tecken,
ett förkryssningstecken, framför menyvalet.
Anta att du har ett menyalternativ som heter AutoSpara. Ändra
egenskapsvärdet till true så att ett V-tecken visas. Komplettera sedan händelseproceduren
till AutoSpara enligt nedan.
procedure TForm1.AutoSpara1Click(Sender :
TObject);
begin
AutoSpara1.Checked := not AutoSpara1.Checked;
end; |
Provkör nu programmet och klicka upprepade gånger på menyvalet
AutoSpara. Menyvalet kommer omväxlande att vara förkryssat och okryssat.
Komponenten PopupMenu
Att tillverka en popupmeny går i princip till på samma sätt
som för huvudmenyer.
-
Placera ut komponenten PopupMenu på formuläret. Dubbelklicka
på komponenten.
-
Placera även ut en Memo-komponent som du också hittar på Standardfliken
i komponentpaletten.
-
Lägg till menyvalen Klipp ut, Kopiera och Klistra in.
-
Dubbelklicka på valet Klipp ut och komplettera händelseproceduren.
procedure TForm1.Cut2Click(Sender : TObject);
begin
Memo1.CutToClipboard;
end; |
-
Gör motsvarande för valet Kopiera och Klistra in.
Memo1.CopyToClipboard;
Memo1.PasteFromClipboard;
Koppla sedan popupmenyn till Memo-komponenten. Aktivera först
textrutan och välj sedan i objektinspektorn med nedåtpilen i fältet Popupmenu bland
tillgängliga popupmenyer.
Provkör programmet, högerklicka och testa dina menyalternativ.
|