Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 2.66 KB | None | 0 0
  1. open System.Windows.Forms
  2. open System.Drawing
  3. let f = new Form(Text="Paint biatch", TopMost=true,Height=700,Width=1000)
  4. f.Show()
  5. let mutable g= Graphics.FromHwnd(f.Handle)
  6. let mutable click= false
  7. let mutable x=0
  8. let mutable y=0
  9. let mutable size=10
  10. let mutable bru= Brushes.Red
  11. let mutable pns= Pens.Red
  12. let mutable rectMode= false
  13. let mutable x0,y0=0,0
  14. let mutable  ellisMode = false
  15. let mutable  penMode = false
  16.  
  17. f.MouseDown.Add(fun e->
  18.     click<-true
  19.     if rectMode ||  ellisMode then
  20.         x0<-e.Location.X
  21.         y0<-e.Location.Y
  22. )
  23.  
  24. f.MouseUp.Add(fun e->
  25.     click<-false
  26.     if rectMode then
  27.         g.DrawRectangle(pns,x0,y0,e.Location.X-x0,e.Location.Y-y0)
  28.     if ellisMode then
  29.         g.DrawEllipse(pns,x0,y0,e.Location.X-x0,e.Location.Y-y0)
  30.      
  31. )
  32.  
  33.  
  34. f.MouseMove.Add(fun e->
  35.  
  36. x<-e.Location.X
  37. y<-e.Location.Y
  38. if click && rectMode=false && ellisMode=false then
  39.     g.FillEllipse(bru,x-(size/2),y-(size/2),size,size)
  40.  
  41.    
  42. )
  43.  
  44. f.Resize.Add(fun e->
  45.    
  46.     g<- Graphics.FromHwnd(f.Handle)
  47. )
  48.  
  49. let pan1= new Panel(Dock=DockStyle.Top)
  50. f.Controls.Add(pan1)
  51.  
  52. let invBtn= new Button(Text="ClearAll",Dock=DockStyle.Left)
  53. pan1.Controls.Add(invBtn)
  54. let sizeBtn= new Button(Text="change size",Dock=DockStyle.Left)
  55. pan1.Controls.Add(sizeBtn)
  56. let sizeBox= new TextBox(Dock=DockStyle.Left)
  57. pan1.Controls.Add(sizeBox)
  58.  
  59. invBtn.Click.Add(fun e ->
  60.     f.Invalidate()
  61.    
  62. )
  63.  
  64.  
  65. let asas= ref 10
  66. sizeBtn.Click.Add(fun e ->
  67.     if System.Int32.TryParse(sizeBox.Text,asas ) then
  68.         size<-asas.Value
  69.         sizeBox.Text<-""
  70.    
  71. )
  72.  
  73. let btnColor1= new Button(BackColor=Color.Black,Dock=DockStyle.Right)
  74. pan1.Controls.Add(btnColor1)
  75.  
  76.  
  77. btnColor1.Click.Add(fun e ->
  78.     bru<-Brushes.Black
  79.     pns<-Pens.Black
  80.    
  81. )
  82.  
  83. let btnColor2= new Button(BackColor=Color.Red,Dock=DockStyle.Right)
  84. pan1.Controls.Add(btnColor2)
  85.  
  86.  
  87. btnColor2.Click.Add(fun e ->
  88.     bru<-Brushes.Red
  89.     pns<-Pens.Black
  90.    
  91. )
  92.  
  93. let btnColor3= new Button(BackColor=Color.Green,Dock=DockStyle.Right)
  94. pan1.Controls.Add(btnColor3)
  95.  
  96.  
  97. btnColor3.Click.Add(fun e ->
  98.     bru<-Brushes.Green
  99.     pns<-Pens.Green
  100.    
  101. )
  102.  
  103. let btnRect= new Button(Text="rect",Dock=DockStyle.Right)
  104. pan1.Controls.Add(btnRect)
  105.  
  106.  
  107. btnRect.Click.Add(fun e ->
  108.    rectMode<-true
  109.    ellisMode<-false
  110.    penMode<-false
  111. )
  112.  
  113. let btnEllise= new Button(Text="ellisse",Dock=DockStyle.Right)
  114. pan1.Controls.Add(btnEllise)
  115.  
  116.  
  117. btnEllise.Click.Add(fun e ->
  118.    rectMode<-false
  119.    ellisMode<-true
  120.    penMode<-false
  121. )
  122.  
  123.  
  124. let btnPen= new Button(Text="DarwMode",Dock=DockStyle.Right)
  125. pan1.Controls.Add(btnPen)
  126.  
  127.  
  128. btnPen.Click.Add(fun e ->
  129.    rectMode<-false
  130.    ellisMode<-false
  131.    penMode<-true
  132. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement