webForumDet fria alternativet

Combobox och SelectedIndexChanged?

4 svar · 522 visningar · startad av S@rpp@

S@rpp@Medlem sedan okt. 200058 inlägg
#1

Har idag gett mig in på att göra ett enkelt litet program i Delphi.
Det är första gången jag testar Delphi

Det är ett litet program där jag presenterar ett "paket" man kan köpa.
Man kan ändra paketets innehåll genom välja olika alternativ i ett antal comboboxar.
Priset för paketet ändras beroende på vilka val man gör i komboboxarna.

Fråga1:
Jag har längst ner i formuläret en label som ska visa totalsumman för paketet. Den ska ändras automatiskt när man byter innehåll i paketet.

Jag har försökt att använda mig av SelectedIndexChanged under "Events" för comboboxen men jag får inte till det.

Fråga2:
Kan man på något sätt skriva ut eller skriva till fil de val man gjort och totalsumman som en slags offert?

Här kommer koden till formuläret:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Datapaket
{
       public class WinForm : System.Windows.Forms.Form
	{
                                private System.ComponentModel.Container components = null;

		private System.Windows.Forms.ComboBox Grafikkort;
		private System.Windows.Forms.Label sumGrafikkort;
		private System.Windows.Forms.Label totSumma;

		public WinForm()
		{
			InitializeComponent();
		}
		protected override void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose(disposing);
		}

		#region Windows Form Designer generated code
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(WinForm));
			this.Grafikkort = new System.Windows.Forms.ComboBox();
			this.sumGrafikkort = new System.Windows.Forms.Label();
			this.totSumma = new System.Windows.Forms.Label();
			
			this.SuspendLayout();
			
			// Grafikkort
			this.Grafikkort.Items.AddRange(new object[] {
						"val 1 + 500 kr",
						"val 2 + 1.000 kr"});
			this.husval.Location = new System.Drawing.Point(312, 56);
			this.husval.Name = "Grafikkort";
			this.husval.Size = new System.Drawing.Size(120, 21);
			this.husval.TabIndex = 0;
			this.husval.Text = ""default + 0 kr"";
			
			
			// sumGrafikkort
			this.label1.Location = new System.Drawing.Point(24, 152);
			this.label1.Name = "sumGrafikkort";
			this.label1.Size = new System.Drawing.Size(96, 16);
			this.label1.TabIndex = 1;
			this.label1.Text = "+0 kr";
			 
			// label2
			this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
			this.label2.Location = new System.Drawing.Point(24, 120);
			this.label2.Name = "totSumma";
			this.label2.Size = new System.Drawing.Size(104, 16);
			this.label2.TabIndex = 2;
			this.label2.Text = "10.000 kr";
	
			// WinForm
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.BackColor = System.Drawing.SystemColors.Window;
			this.ClientSize = new System.Drawing.Size(464, 750);
			
			this.Controls.Add(this.totSumma);
			this.Controls.Add(this.Grafikkort);
			this.Controls.Add(this.sumGrafikkort);
			this.Name = "WinForm";
			this.Text = "Test";
			this.ResumeLayout(false);
		}
		#endregion
	
		[STAThread]
		static void Main()
		{
			Application.Run(new WinForm());
		}
	}
}
PMedlem sedan jan. 20012 204 inlägg
#2

Ser ju verkligen ut som c# men men

        private void showSelectedButton_Click(object sender, System.EventArgs e) {
            int selectedIndex = comboBox1.SelectedIndex;
            Object selectedItem = comboBox1.SelectedItem;

            MessageBox.Show("Selected Item Text: " + selectedItem.ToString() + "\n" +
                            "Index: " + selectedIndex.ToString());
        }
    }

hämtat från http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsComboBoxClassTopic.asp kanske kan vara något?

Mc FettoMedlem sedan nov. 20022 355 inlägg
#3

har du lagt till eventet då?

ComboBox1.SelectedIndexChanged += 
        new System.EventHandler(ComboBox1_SelectedIndexChanged);
S@rpp@Medlem sedan okt. 200058 inlägg
#4

Ser ju verkligen ut som c# men men

Jag trodde att man kan skriva ett litet windows program i c#, är det bättre/enklare att välja ett annat språk till applikationen?

I Delphi kan man ju välja mellan bla C# Projects, Delphi for .NET Projects, Delphi Projects.
Jag vill att programmet ska kunna köras från win 98, nt, win 2000, xp osv. Jag vill samtidigt att användaren av programmet ska behöva installera så lite tilläggsprogram som möjligt för att få det att fungera.

Hur skulle ni lägga upp det för att göra detta enkla program jag försöker göra?

Mc FettoMedlem sedan nov. 20022 355 inlägg
#5

För att köra c# krävs .NET famework på den dator programmet ska köras på. Det är ifs enkelt att skicka med i en installation å att användaren inte behöver bry sig om att installera det utan det sker automagiskt.

130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)