public static void DrawList(ref Panel panel, NodoList nodoList) { for (int i = 0; i < nodoList.Length(); i++) { Graphics g2 = panel.CreateGraphics(); Rectangle nodoRectangle = new Rectangle(i * 110, 0, 100, 40); Pen pen = new Pen(Color.Black); g2.FillRectangle(Brushes.WhiteSmoke, nodoRectangle); g2.DrawRectangle(pen, nodoRectangle); g2.DrawLine(pen, i * 110 + 40, 0, i * 110 + 40, 40); g2.DrawLine(pen, i * 110 + 80, 0, i * 110 + 80, 40); g2.DrawString(nodoList.Dir(i).ToString(), new Font(FontFamily.GenericSerif, 10), Brushes.Black, i * 110 + 15, 15); g2.DrawString(nodoList.Tam(i).ToString(), new Font(FontFamily.GenericSerif, 10), Brushes.Black, i * 110 + 55, 15); g2.DrawLine(pen, i * 110 + 90, 20, i * 110 + 110, 20); } }
private void button4_Click(object sender, EventArgs e) { List <Process> processes = new List <Process>(); Process process1 = new Process(); Process process2 = new Process(); Process process3 = new Process(); Process process4 = new Process(); process1.Id = 1; process1.Dir = 100; process1.Tam = 100; process2.Id = 2; process2.Dir = 250; process2.Tam = 150; process3.Id = 3; process3.Dir = 400; process3.Tam = 100; process4.Id = 4; process4.Dir = 600; process4.Tam = 400; processes.Add(process1); processes.Add(process2); processes.Add(process3); processes.Add(process4); //------------------------------------------------------------------- NodoList nodoList = new NodoList(); Nodo nodo1 = new Nodo(); nodo1.Dir = 0; nodo1.Tam = 200; Nodo nodo2 = new Nodo(); nodo2.Dir = 250; nodo2.Tam = 250; Nodo nodo3 = new Nodo(); nodo3.Dir = 600; nodo3.Tam = 400; nodoList.Add(nodo1); nodoList.Add(nodo2); nodoList.Add(nodo3); mem = new Mem(1000); // Drawer.DrawList(ref panel2, nodoList); mem.L = nodoList; // Process process5 = new Process { Id = 5, Tam = 20 }; //mem.LoadProcess(ref process5); //processes.Insert(processes.FindIndex(p => p.Dir < process5.Dir), process5); //int s = mem.getFreeSize(200); //int s1 = mem.getFreeSize(500); // mem.L.AddOrdenedByDir(nodo3); //mem.L = mem.generateNodoList(processes); //processes.Remove(process1); //mem.L = mem.generateNodoList(processes); mem.FreeMem(process4); Drawer.DrawMem(ref panel1, processes, mem.S, mem.M); Drawer.DrawList(ref panel2, mem.L); }