Menyer i Delphi
Förord
Att skapa menyer i Delphi är en barnlek. Följ med i detta kapitel och se hur det går till. 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.
0 Kommentarer