OnlineIDE Version 1.4.1 [neu: IntelliComplete]

    • Beta
    • Closed Source

    Es gibt 210 Antworten in diesem Thema. Der letzte Beitrag () ist von BjöNi.

      Update Version 1.2.0

      Changelog schrieb:

      • Bilder können nun hinzugefügt werden
      • Eigenschaften BackgroundImage sowie BackgroundImageLayout von Button und Form sowie Image von Label sind dadurch verfügbar


      Leider schlagen dann manche (sehr wenige) Virenscanner an (3/47 gemäß Virustotal), kann ich aber wohl nichts dran ändern. Wenn keine Bilder verwendet werden, sind es 1/47.

      Update Version 1.2.1

      Changelog schrieb:

      • Bilder müssen zum Hinzufügen nicht mehr an den Server gesendet werden, wodurch sich die Geschwindigkeit insbesondere bei langsamen Leitungen deutlich verbessert. Ebenfalls wird die Serverbelastung dadurch reduziert.
      • Design-Bug behoben, wodurch der Header wieder korrekt dargestellt wird.
      Vielleicht irgendwann mal... Wenn man die OnlineIDE tatsächlich von der Funktionalität her so nahe an VS dran ist, dass man sie sozusagen als vollwertigen Ersatz unterwegs benutzen kann. Und das wird noch ne Weile dauern :D
      Hi Björni,

      Ich sitz hier in der Schule und versuche diese Klasse mit in eine Anwendung zu kompilieren, aber beim drücken von Ausführen passiert nichts.:
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Option Strict On
      2. Imports System.Drawing
      3. Public Class BarCode128B
      4. Private sign_dictonary As New Dictionary(Of Char, String)
      5. ''' <summary>
      6. ''' Lädt die Zeichen in das Wörterbuch
      7. ''' </summary>
      8. ''' <remarks></remarks>
      9. Private Sub Load_Dictionary()
      10. sign_dictonary.Clear()
      11. Add(" ", "bb w bb ww bb ww")
      12. Add("!", "bb ww bb w bb ww")
      13. Add("""", "bb ww bb ww bb w")
      14. Add("#", "b ww b ww bb www")
      15. Add("$", "b ww b www bb ww")
      16. Add("%", "b www b ww bb ww")
      17. Add("&", "b ww bb ww b www")
      18. Add("'", "b ww bb www b ww")
      19. Add("(", "b www bb ww b ww")
      20. Add(")", "bb ww b ww b www")
      21. Add("*", "bb ww b www b ww")
      22. Add("+", "bb www b ww b ww")
      23. Add(",", "b w bb ww bbb ww")
      24. Add("-", "b ww bb w bbb ww")
      25. Add(".", "b ww bb ww bbb w")
      26. Add("/", "b w bbb ww bb ww")
      27. Add("0", "b ww bbb w bb ww")
      28. Add("1", "b ww bbb ww bb w")
      29. Add("2", "bb ww bbb ww b w")
      30. Add("3", "bb ww b w bbb ww")
      31. Add("4", "bb ww b ww bbb w")
      32. Add("5", "bb w bbb ww b ww")
      33. Add("6", "bb ww bbb w b ww")
      34. Add("7", "bbb w bb w bbb w")
      35. Add("8", "bbb w b ww bb ww")
      36. Add("9", "bbb ww b w bb ww")
      37. Add(":", "bbb ww b ww bb w")
      38. Add(";", "bbb w bb ww b ww")
      39. Add("<", "bbb ww bb w b ww")
      40. Add("=", "bbb ww bb ww b w")
      41. Add(">", "bb w bb w bb www")
      42. Add("?", "bb w bb www bb w")
      43. Add("@", "bb www bb w bb w")
      44. Add("A", "b w b www bb www")
      45. Add("B", "b www b w bb www")
      46. Add("C", "b www b www bb w")
      47. Add("D", "b w bb www b www")
      48. Add("E", "b www bb w b www")
      49. Add("F", "b www bb www b w")
      50. Add("G", "bb w b www b www")
      51. Add("H", "bb www b w b www")
      52. Add("I", "bb www b www b w")
      53. Add("J", "b w bb w bbb www")
      54. Add("K", "b w bb www bbb w")
      55. Add("L", "b www bb w bbb w")
      56. Add("M", "b w bbb w bb www")
      57. Add("N", "b w bbb www bb w")
      58. Add("O", "b www bbb w bb w")
      59. Add("P", "bbb w bbb w bb w")
      60. Add("Q", "bb w b www bbb w")
      61. Add("R", "bb www b w bbb w")
      62. Add("S", "bb w bbb w b www")
      63. Add("T", "bb w bbb www b w")
      64. Add("U", "bb w bbb w bbb w")
      65. Add("V", "bbb w b w bb www")
      66. Add("W", "bbb w b www bb w")
      67. Add("X", "bbb www b w bb w")
      68. Add("Y", "bbb w bb w b www")
      69. Add("Z", "bbb w bb www b w")
      70. Add("[", "bbb www bb w b w")
      71. Add("", "bbb w bbbb w b w")
      72. Add("]", "bb ww b wwww b w")
      73. Add("^", "bbbb www b w b w")
      74. Add("_", "b w b ww bb wwww")
      75. Add("`", "b w b wwww bb ww")
      76. Add("a", "b ww b w bb wwww")
      77. Add("b", "b ww b wwww bb w")
      78. Add("c", "b wwww b w bb ww")
      79. Add("d", "b wwww b ww bb w")
      80. Add("e", "b w bb ww b wwww")
      81. Add("f", "b w bb wwww b ww")
      82. Add("g", "b ww bb w b wwww")
      83. Add("h", "b ww bb wwww b w")
      84. Add("i", "b wwww bb w b ww")
      85. Add("j", "b wwww bb ww b w")
      86. Add("k", "bb wwww b ww b w")
      87. Add("l", "bb ww b w b wwww")
      88. Add("m", "bbbb w bbb w b w")
      89. Add("n", "bb wwww b w b ww")
      90. Add("o", "b www bbbb w b w")
      91. Add("p", "b w b ww bbbb ww")
      92. Add("q", "b ww b w bbbb ww")
      93. Add("r", "b ww b ww bbbb w")
      94. Add("s", "b w bbbb ww b ww")
      95. Add("t", "b ww bbbb w b ww")
      96. Add("u", "b ww bbbb ww b w")
      97. Add("v", "bbbb w b ww b ww")
      98. Add("w", "bbbb ww b w b ww")
      99. Add("x", "bbbb ww b ww b w")
      100. Add("y", "bb w bb w bbbb w")
      101. Add("z", "bb w bbbb w bb w")
      102. Add("{", "bbbb w bb w bb w")
      103. Add("|", "b w b w bbbb www")
      104. Add("}", "b w b www bbbb w")
      105. Add("~", "b www b w bbbb w")
      106. End Sub
      107. ''' <summary>
      108. ''' Verkürzung von sign_dictonary.Add()
      109. ''' </summary>
      110. ''' <param name="char"></param>
      111. ''' <param name="code"></param>
      112. ''' <remarks></remarks>
      113. Private Sub Add(ByVal [char] As String, ByVal code As String)
      114. sign_dictonary.Add(CChar([char]), code)
      115. End Sub
      116. #Region "Encoder"
      117. ''' <summary>
      118. ''' Gibt Index des Zeichens zurück
      119. ''' </summary>
      120. ''' <param name="char"></param>
      121. ''' <returns></returns>
      122. ''' <remarks></remarks>
      123. Private Function GetIndex(ByVal [char] As Char) As Integer
      124. For u As Integer = 0 To sign_dictonary.Count - 1
      125. If sign_dictonary.Keys(u) = [char] Then
      126. Return u
      127. End If
      128. Next
      129. End Function
      130. ''' <summary>
      131. ''' Konvertiert eine Zeichenfolge in Black and White Stripes
      132. ''' </summary>
      133. ''' <param name="text">Zu Übersetzender Text</param>
      134. ''' <returns></returns>
      135. ''' <remarks></remarks>
      136. Private Function Convert(ByVal text As String) As String
      137. Load_Dictionary()
      138. Dim returnstring As String = ""
      139. Dim prüfsumme As Double = 0
      140. Dim gewichtung As Integer = 1
      141. For Each cr As Char In text
      142. returnstring = returnstring & " " & sign_dictonary(cr)
      143. prüfsumme = prüfsumme + GetIndex(cr) * gewichtung
      144. gewichtung = gewichtung + 1
      145. Next
      146. prüfsumme = prüfsumme + 104
      147. Dim prüfsummenmod As Integer = CInt((prüfsumme Mod 103))
      148. Dim prüfensummenkodierung As String = sign_dictonary(sign_dictonary.Keys(prüfsummenmod))
      149. 'Beginncode & TextCode & StopCode
      150. Return ("bb w b ww b wwww" & returnstring.Substring(1, returnstring.Length - 1) & prüfensummenkodierung & "bb www bbb w b w bb").Replace(" ", "")
      151. End Function
      152. ''' <summary>
      153. ''' Kodiert eine Zeichenfolge in einen 128B-Barcode
      154. ''' </summary>
      155. ''' <param name="text">Der darzustellende Text</param>
      156. ''' <param name="height">Die Höhe des Barcodes</param>
      157. ''' <returns></returns>
      158. ''' <remarks></remarks>
      159. Public Function Encode(ByVal text As String, ByVal height As Integer) As Bitmap
      160. Dim kombination As String = Convert(text)
      161. Dim bmp As New Bitmap((kombination.Length), height)
      162. Dim gr As Graphics = Graphics.FromImage(bmp)
      163. With gr
      164. .SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
      165. .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
      166. .PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
      167. .InterpolationMode = Drawing2D.InterpolationMode.HighQualityBilinear
      168. .CompositingQuality = Drawing2D.CompositingQuality.HighQuality
      169. End With
      170. For u As Integer = 0 To kombination.Length - 1
      171. If kombination.Substring(u, 1) = "w" Then
      172. gr.FillRectangle(Brushes.White, New Rectangle(u, 0, 1, height))
      173. End If
      174. If kombination.Substring(u, 1) = "b" Then
      175. gr.FillRectangle(Brushes.Black, New Rectangle(u, 0, 1, height))
      176. End If
      177. Next
      178. Return bmp
      179. End Function
      180. #End Region
      181. #Region "Decoder"
      182. ''' <summary>
      183. ''' Filtert die Kombination von weißen und schwarzen Stripes aus der BMP
      184. ''' </summary>
      185. ''' <param name="bmp">Bitmap, die den Barcode enthält</param>
      186. ''' <returns>Black und White Bar Kombination</returns>
      187. ''' <remarks></remarks>
      188. Private Function Get_Combination(ByVal bmp As Bitmap) As String
      189. Dim kombination As String = ""
      190. For u As Integer = 0 To bmp.Width - 1
      191. If bmp.GetPixel(u, 1) = Color.FromArgb(0, 0, 0) Then
      192. kombination = kombination + "b"
      193. End If
      194. If bmp.GetPixel(u, 1) = Color.FromArgb(255, 255, 255) Then
      195. kombination = kombination + "w"
      196. End If
      197. Next
      198. Return kombination
      199. End Function
      200. ''' <summary>
      201. ''' Bildet 11er Gruppen aus dem String
      202. ''' </summary>
      203. ''' <param name="combination">die Kombination der Black und White Bars</param>
      204. ''' <returns>Liste der 11er Gruppen</returns>
      205. ''' <remarks></remarks>
      206. Private Function Build_Groups(ByVal combination As String) As List(Of String)
      207. Dim kombinationen As New List(Of String)
      208. For u = 0 To CInt((combination.Length / 11) - 1)
      209. kombinationen.Add(combination.Substring(u * 11, 11))
      210. Next
      211. Return kombinationen
      212. End Function
      213. ''' <summary>
      214. ''' Findet den Key anhand des Values
      215. ''' </summary>
      216. ''' <param name="combination"></param>
      217. ''' <returns>Key des Dictionary</returns>
      218. ''' <remarks></remarks>
      219. Private Function Get_Key_By_Value(ByVal combination As String) As Char
      220. For u = 0 To sign_dictonary.Count - 1
      221. If sign_dictonary(sign_dictonary.Keys(u)).Replace(" ", "") = combination Then
      222. Return sign_dictonary.Keys(u)
      223. End If
      224. Next
      225. End Function
      226. ''' <summary>
      227. ''' Dekodiert eine Bitmap zu Text
      228. ''' </summary>
      229. ''' <param name="bmp">Die zu dekodierende Bitmap</param>
      230. ''' <returns>Den dekodierten Text</returns>
      231. ''' <remarks></remarks>
      232. Public Function Decode(ByVal bmp As Bitmap) As String
      233. Load_Dictionary()
      234. Dim groups = Build_Groups(Get_Combination(bmp))
      235. Dim decodedstring As String = ""
      236. For u As Integer = 1 To groups.Count - 3
      237. decodedstring = decodedstring + Get_Key_By_Value(groups(u))
      238. Next
      239. Return decodedstring
      240. End Function
      241. #End Region
      242. End Class


      Quellcode

      1. Die Klasse "System.Collections.Generic.Dictionary(Of Char, String).KeyCollection" kann nicht indiziert werden, da sie keine Standardeigenschaft hat (Barcode128B.vb:124)
      2. Die Klasse "System.Collections.Generic.Dictionary(Of Char, String).KeyCollection" kann nicht indiziert werden, da sie keine Standardeigenschaft hat (Barcode128B.vb:147)
      3. Die Klasse "System.Collections.Generic.Dictionary(Of Char, String).KeyCollection" kann nicht indiziert werden, da sie keine Standardeigenschaft hat (Barcode128B.vb:207)
      4. Die Klasse "System.Collections.Generic.Dictionary(Of Char, String).KeyCollection" kann nicht indiziert werden, da sie keine Standardeigenschaft hat (Barcode128B.vb:208)

      8-) faxe1008 8-)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „faxe1008“ ()

      Danke für den Bugreport erstmal!

      Mir ist jetzt klar, woran es liegt, und ich habe es auch schon gefixt (lokal funktioniert es) - am Server muss aber noch etwas umgestellt werden, was vermutlich nur @Solaris: selbst machen kann.
      Könntest du es auswählbar machen ob man c# oder vb verwendet? Außerdem würde ich mich sehr über eine Möglichkeit freuen Konsolen zu erstellen.

      @BjöNi: Die F1 Taste ist irgendwie verbuggt. Wenn ich das hier schreibe Dim dock as Integer werde ich hier hin weitergeleitet:onlineide.tk/msdn.aspx?ch=21&line=Dim%20dock%20as%20Integer

      8-) faxe1008 8-)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „faxe1008“ ()

      Update Version 1.2.2

      Changelog schrieb:

      • Schwerwiegenden Bug beim Compilen behoben, der seit der letzten Vesion zwar nicht die Fehlererkennung in Echtzeit, aber das herunterladen unmöglich machte.
      • Verwendung von größeren Bildern ist nun möglich.


      @faxe1008:
      Zu C# / Konsole: Ich hatte es glaube ich schonmal irgendwo geschrieben, dass das in fernerer Zukunft mal auf der ToDo-Liste stehen könnte.
      Zu F1: Ich weiß, dass das völlig verbuggt ist. Sollte ich mich bei Gelegenheit mal drum kümmern.
      Und zu den Standardeigenschaften: Schau dir mal diesen Thread an: stackoverflow.com/questions/78…-default-properties-error Soweit wie ich das sehe, musst du System.Linq importieren, was bei VS automatisch getan wird. Das steht aber eh schon auf der ToDo-Liste.

      ... und dann ist da noch irgendwo eine Sicherheitseinstellung, die ich noch nicht ganz unter Kontrolle habe - weshalb dein Code irgendwie immer noch nicht geht. Kümmere mich aber baldigstmöglich drum ;)

      Update Version 1.2.3

      Changelog schrieb:

      • Blöcke (z.B. Function, Class, If, Try, Do, ...) werden automatisch geschlossen.
      • Klammern sowie Anführungszeichen werden ebenfalls geschlossen.
      • Interne Vorbereitungen für Online-Debugging


      Außerdem sitze ich gerade an IntelliSense.
      Online-Debugging gibts noch nicht, weil ich keinen ausreichenden Server habe und bei @Solaris: die Kapazität nicht reicht - wäre schön, wenn mir da evtl. noch jemand mit Platz auf einem Root- (oder v)Server unter die Arme greifen könnte, sodass die IDE z.T. bei Solaris und bei jemandem anderen laufen kann :)
      Der Thread ist in letzter Zeit etwas eingeschlafen, was aber nicht bedeutet, dass die OnlineIDE nicht mehr weiterentwickelt wird!

      Jedoch komme ich wahrscheinlich in Zukunft nicht mehr bei @Solaris: auf dem Server unter, deshalb suche ich nun wieder nach Leuten, die das Projekt gerne unterstützen möchten. Optimal wäre eine VM auf einem (Root- oder V-)Server, dann könnte ich auch das Online-Debugging realisieren (programmiert ist es schon lange, bin derzeit an IntelliSense). Eventuell würde ich das dann auch auf zwei verschiedenen Servern laufen lassen (IIS für die ASP.NET-Seite und VM fürs Online-Debugging, um Ressourcen aufzuteilen) - Gegenleistung wäre ein Logo dort, wo derzeit Solaris' Logo ist und/oder (falls auf verschiedenen Servern bei verschiedenen Leuten) im Debugging-Fenster beim Laden bzw. als Hintergrund, mal schauen.
      Nett wäre es, wenn ihr euch einfach bei mir per PN meldet, wenn ihr noch Platz auf eurem Server habt :)
      Hi Björni,

      hast du oder Soalris neulich mal was an dem Server oder am Compiler geändert? Die runtergeladenen Anwendungen können auf Schul Pcs leider nicht mehr geöffnet werden:

      WindowsApplication1.exe - Fehler in Anwendung
      ---------------------------
      Die Anwendung konnte nicht richtig initialisiert werden (0xc0000135). Klicken Sie auf "OK", um die Anwendung zu beenden.

      Bitte schnellstmöglich beheben - brauch in meiner Freistunde nen Zeitvertreib :D

      8-) faxe1008 8-)
      Ich glaube, dass ich im Zuge eines vergangenen Updates (kp mehr, warum) das Framework hochgestellt habe. Aber da ich sowieso bald (naja, bald ist relativ :D) ein größeres Update rausbringen will, bei dem das dann auch einstellbar sein wird, muss ich mal schauen, ob ich das getrennt updaten werde.
      Hi,

      ja ich arbeite noch dran. Wenn auch nicht gerade mit viel Elan, da die Zukunft des Projektes noch sehr ungewiss ist.
      Bis Juni läuft der Vertrag von Solaris noch, danach mal sehen...

      Ich werde mal schauen was sich tun lässt. Bzw. ob ich die alten Backups überhaupt noch finde.