Blame | Last modification | View Log | Download
VERSION 5.00Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"Begin VB.Form Form1BorderStyle = 4 'Fixed ToolWindowCaption = "LOG.AN."ClientHeight = 8700ClientLeft = 45ClientTop = 285ClientWidth = 10005BeginProperty FontName = "Tahoma"Size = 8.25Charset = 238Weight = 400Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyIcon = "Form1.frx":0000LinkTopic = "Form1"MaxButton = 0 'FalseMinButton = 0 'FalseScaleHeight = 8700ScaleWidth = 10005ShowInTaskbar = 0 'FalseStartUpPosition = 2 'CenterScreenBegin VB.Frame Frame2Caption = "GRAFICKE VYJADRENI"Height = 5175Left = 5640TabIndex = 15Top = 120Width = 4335Begin VB.CommandButton CTEXTCaption = "Vymazat vypoctenou drahu"Height = 255Left = 120TabIndex = 21Top = 4800Width = 4095EndBegin VB.CommandButton CLOGCaption = "Vymazat log"Height = 255Left = 120TabIndex = 20Top = 4560Width = 4095EndBegin VB.CommandButton Command1Caption = "* vymazat *"Height = 255Left = 2400TabIndex = 19Top = 1800Width = 1695EndBegin VB.CommandButton Command2Caption = "Vykreslit"BeginProperty FontName = "Tahoma"Size = 9Charset = 238Weight = 700Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyHeight = 495Left = 2400TabIndex = 18Top = 1320Width = 1695EndBegin MSComctlLib.Slider Slider1Height = 375Left = 120TabIndex = 16Top = 720Width = 4095_ExtentX = 7223_ExtentY = 661_Version = 393216Max = 31EndBegin VB.CommandButton Command3Caption = "Ulozit graf"BeginProperty FontName = "Tahoma"Size = 8.25Charset = 238Weight = 700Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyHeight = 615Left = 2400TabIndex = 22Top = 2160Width = 1695EndBegin VB.Label Label3Caption = "Cast (0 az 32 po 32 bodech z vypoctene 128 vlevo):"Height = 255Left = 240TabIndex = 17Top = 360Width = 3855EndEndBegin VB.PictureBox pYAppearance = 0 'FlatBackColor = &H80000005&ForeColor = &H80000008&Height = 4575Left = 0ScaleHeight = 4545ScaleWidth = 0TabIndex = 13Top = 0Width = 15EndBegin VB.PictureBox pXAppearance = 0 'FlatBackColor = &H80000005&ForeColor = &H80000008&Height = 15Left = 0ScaleHeight = 0ScaleWidth = 6705TabIndex = 12Top = 0Width = 6735EndBegin VB.TextBox LOGBOXHeight = 1335Left = 120Locked = -1 'TrueMultiLine = -1 'TrueScrollBars = 2 'VerticalTabIndex = 7Top = 3960Width = 5415EndBegin VB.TextBox TestTextBeginProperty FontName = "Fixedsys"Size = 9Charset = 238Weight = 400Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyHeight = 1935Left = 120Locked = -1 'TrueMultiLine = -1 'TrueScrollBars = 3 'BothTabIndex = 6Top = 1920Width = 5415EndBegin VB.Frame Frame1Caption = "VYPOCET"Height = 1695Left = 120TabIndex = 0Top = 120Width = 5415Begin VB.ComboBox Combo128Height = 315ItemData = "Form1.frx":0442Left = 1080List = "Form1.frx":045ETabIndex = 11Text = "1"Top = 1200Width = 735EndBegin VB.ComboBox Combo1024Height = 315ItemData = "Form1.frx":047ALeft = 1080List = "Form1.frx":0487TabIndex = 10Text = "1"Top = 840Width = 735EndBegin VB.CommandButton exStartCaption = "Spustit"BeginProperty FontName = "Tahoma"Size = 9Charset = 238Weight = 700Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyHeight = 375Left = 3120TabIndex = 4Top = 1200Width = 2175EndBegin VB.CommandButton exBwseTgtCaption = "..."Height = 285Left = 4920TabIndex = 3Top = 350Width = 375EndBegin VB.TextBox exTgtGETFROMAppearance = 0 'FlatHeight = 285Left = 1080TabIndex = 2Top = 350Width = 3855EndBegin VB.Label Label2Caption = "128 :"Height = 255Left = 120TabIndex = 9Top = 1240Width = 975EndBegin VB.Label Label1Caption = "1024 :"Height = 255Left = 120TabIndex = 8Top = 880Width = 975EndBegin VB.Label STATUSAlignment = 2 'CenterCaption = "READY"BeginProperty FontName = "Tahoma"Size = 9.75Charset = 238Weight = 700Underline = 0 'FalseItalic = 0 'FalseStrikethrough = 0 'FalseEndPropertyForeColor = &H00FF0000&Height = 375Left = 3120TabIndex = 5Top = 800Width = 2175EndBegin VB.Label exLblImageCaption = "Soubor:"Height = 255Left = 120TabIndex = 1Top = 360Width = 975EndEndBegin MSComDlg.CommonDialog CD1Left = 0Top = 0_ExtentX = 847_ExtentY = 847_Version = 393216EndBegin VB.PictureBox Picture1Appearance = 0 'FlatBackColor = &H00C0C0C0&ForeColor = &H80000008&Height = 3255Left = 120ScaleHeight = 3225ScaleWidth = 9825TabIndex = 14Top = 5400Width = 9855EndBegin MSComDlg.CommonDialog CD2Left = 480Top = 0_ExtentX = 847_ExtentY = 847_Version = 393216EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = False'############################################################'# #'# PROJEKT LOG.AN. by Michal Frdlík 2005/2006 #'# (MSD) 2005/2006 #'# #'# kod v tomto programu neni snadny na pochopeni a uz #'# vubec neni pro zacatecniky ve VB !! Popisky jsou #'# urceny pro pokrocile. #'# #'############################################################Dim nulaX As SingleDim nulaY As SingleDim a ' cast GearBoxu, "a" je jedna ze tri 1024 v souboruDim b ' cast GearBoxu, "b" je jedna z 8mi casti jednoho ze tri "a"Dim GCH ' Tohle je charakter, kterej se pouzije pro linii''''''''''''''''''''''''''''''Const RC_PALETTE As Long = &H100Const SIZEPALETTE As Long = 104Const RASTERCAPS As Long = 38Private Type PALETTEENTRYpeRed As BytepeGreen As BytepeBlue As BytepeFlags As ByteEnd TypePrivate Type LOGPALETTEpalVersion As IntegerpalNumEntries As IntegerpalPalEntry(255) As PALETTEENTRY ' Enough for 256 colorsEnd TypePrivate Type GUIDData1 As LongData2 As IntegerData3 As IntegerData4(7) As ByteEnd TypePrivate Type PicBmpSize As LongType As LonghBmp As LonghPal As LongReserved As LongEnd TypePrivate Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As LongPrivate Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal iCapabilitiy As Long) As LongPrivate Declare Function GetSystemPaletteEntries Lib "gdi32" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As LongPrivate Declare Function CreatePalette Lib "gdi32" (lpLogPalette As LOGPALETTE) As LongPrivate Declare Function SelectPalette Lib "gdi32" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As LongPrivate Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As LongPrivate Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As LongPublic Function hDCToPicture(ByVal hDCSrc As Long, ByVal LeftSrc As Long, ByVal TopSrc As Long, ByVal WidthSrc As Long, ByVal HeightSrc As Long) As PictureDim hDCMemory As Long, hBmp As Long, hBmpPrev As Long, R As LongDim hPal As Long, hPalPrev As Long, RasterCapsScrn As Long, HasPaletteScrn As LongDim PaletteSizeScrn As Long, LogPal As LOGPALETTE'Create a compatible device contexthDCMemory = CreateCompatibleDC(hDCSrc)'Create a compatible bitmaphBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)'Select the compatible bitmap into our compatible device contexthBmpPrev = SelectObject(hDCMemory, hBmp)'Raster capabilities?RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS) ' Raster'Does our picture use a palette?HasPaletteScrn = RasterCapsScrn And RC_PALETTE ' Palette'What's the size of that palette?PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) ' Size ofIf HasPaletteScrn And (PaletteSizeScrn = 256) Then'Set the palette versionLogPal.palVersion = &H300'Number of palette entriesLogPal.palNumEntries = 256'Retrieve the system palette entriesR = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))'Create the palettehPal = CreatePalette(LogPal)'Select the palettehPalPrev = SelectPalette(hDCMemory, hPal, 0)'Realize the paletteR = RealizePalette(hDCMemory)End If'Copy the source image to our compatible device contextR = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)'Restore the old bitmaphBmp = SelectObject(hDCMemory, hBmpPrev)If HasPaletteScrn And (PaletteSizeScrn = 256) Then'Select the palettehPal = SelectPalette(hDCMemory, hPalPrev, 0)End If'Delete our memory DCR = DeleteDC(hDCMemory)Set hDCToPicture = CreateBitmapPicture(hBmp, hPal)End FunctionPublic Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As PictureDim R As Long, Pic As PicBmp, IPic As IPicture, IID_IDispatch As GUID'Fill GUID infoWith IID_IDispatch.Data1 = &H20400.Data4(0) = &HC0.Data4(7) = &H46End With'Fill picture infoWith Pic.Size = Len(Pic) ' Length of structure.Type = vbPicTypeBitmap ' Type of Picture (bitmap).hBmp = hBmp ' Handle to bitmap.hPal = hPal ' Handle to palette (may be null)End With'Create the pictureR = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)'Return the new pictureSet CreateBitmapPicture = IPicEnd Function''''''''''''''''''''''''''''''Private Sub CLOG_Click() 'vymzat logLOGBOX.Text = ""End SubPrivate Sub Command1_Click()Picture1.ClsCall initEnd SubPrivate Sub Command2_Click()On Error GoTo ErrHandPicture1.ClsCall initDim AllAll = TestText.TextDim X0Dim X1All = Strings.Left(All, 2050)X0 = Strings.Left(All, 1024)X1 = Strings.Right(All, 1024)For i = 1 To 32Select Case (Mid(X0, (32 * Slider1.Value) + i, 1))Case GCHXY XJplus(i), YJplus(6), XJplus(i + 1), YJplus(6), 2, vbBlueIf (Mid(X0, (32 * Slider1.Value) + i + 1, 1)) = " " ThenXY XJplus(i + 1), YJplus(6), XJplus(i + 1), YJplus(1), 2, vbBlueEnd IfCase " "End SelectSelect Case (Mid(X1, (32 * Slider1.Value) + i, 1))Case GCHXY XJplus(i), YJplus(1), XJplus(i + 1), YJplus(1), 2, vbBlueIf (Mid(X1, (32 * Slider1.Value) + i + 1, 1)) = " " ThenXY XJplus(i + 1), YJplus(1), XJplus(i + 1), YJplus(6), 2, vbBlueEnd IfCase " "End SelectNext iExit SubErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End SubPrivate Sub Command3_Click()On Error GoTo ErrHandCD2.Filter = "*.bmp - bitmapa | *.bmp"CD2.ShowSaveIf CD2.FileName = "" ThenExit SubEnd IfDim pointX As LongDim pointY As LongpointX = ((Form1.Left + Form1.Picture1.Left) + (Form1.Picture1.Width - Form1.Picture1.ScaleWidth)) / Screen.TwipsPerPixelXpointY = ((Form1.Top + Form1.Picture1.Top) + (Form1.Height - Form1.ScaleHeight)) / Screen.TwipsPerPixelYSet Form1.Picture = hDCToPicture(GetDC(0), pointX, pointY, Form1.Picture1.ScaleWidth / Screen.TwipsPerPixelX, Form1.Picture1.ScaleHeight / Screen.TwipsPerPixelY)SavePicture Form1.Picture, CD2.FileNameForm1.Picture = LoadPictureExit SubErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End SubPrivate Sub CTEXT_Click() 'vymazat grafTestText.Text = ""End SubPrivate Sub exBwseTgt_Click() 'dialog BrowseCD1.FileName = ""CD1.CancelError = FalseCD1.DialogTitle = "Browse for File"CD1.Filter = "*.* == All files | *.*"CD1.ShowOpenexTgtGETFROM.Text = CD1.FileNameEnd SubPublic Function DecToBin(lgNbDec As Long, lgBase As Long) As StringOn Error GoTo ErrHand'prevod Decimalni->BinarniDim stResultat As StringDim lgDec As Long, lgK As LongIf lgNbDec < 0 Then lgK = 1lgDec = Abs(lgNbDec)Do While lgDec <> 0stResultat = (lgDec + lgK) Mod 2 & stResultatlgDec = lgDec \ 2LoopDecToBin = Right$(String$(lgBase, CStr(lgK)) & stResultat, lgBase)Exit FunctionErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End FunctionPrivate Sub exStart_Click()On Error GoTo ErrHand'########################################################'# #'# VYKONNE JADRO LOG.AN. (MSD)2005 #'# #'########################################################On Error GoTo FuckOff 'kdyz chyba, pak FuckOff'GEARBOX:a = CInt(Combo1024.Text) ' Tak co tam mameb = CInt(Combo128.Text) ' nestaveny v tech comboboxech ...'#######STATUS.Caption = "BUSY OR ERR" ' Pomalejsi pocitac tohle sotva zaregsitruje,' ale aby si nemyslel, ze se mu to sekloLog ("ANALYZUJI SOUBOR...") ' Zapiseme do logu informaciDim nFileNum As Integer ' Neco jako volny handlenFileNum = FreeFile ' k souboruDim PocetSekvenci ' tady bude pocet 1024 sekvenci v souboruPocetSekvenci = 0 ' pokud budu pracovat pouze s tvojema souborama, mohl' bych tam dat konstantne 3 a upravit kod, ale to' se nedela ...Dim VysledneSekvence(1 To 10, 1 To 1024) ' tady budou 3 sekvence 1024' dal jsem tam, ale radsi 10 misto 3 ...' kdyby neco nehraloDim Temp As Byte ' to co zrovna prectuDim Large() As Byte ' tady bude celej souborDim Zapocata1024 As Boolean ' tohle je tu prakticky i teoreticky k nicemu...Dim CurrentSekvence1024 ' inkrementator pohybu v sekvenciDim Sekvence1024() As Byte ' docasne misto pro jednu sekvenciReDim Large(FileLen(exTgtGETFROM.Text)) ' predimenzujeme si pole tak, aby melo' velikost celeho souboru'### NAHRAJI DO PAMETI BAJTY V SOUBORU V DECIMALNIM FORMATULog ("Pokusim se o pristup do souboru " & exTgtGETFROM.Text & "...")Open exTgtGETFROM.Text For Binary Access Read Lock Read Write As #nFileNum ' otevritLog ("Pristup povolen")Log ("Nactu do pameti bajty...")For i = 0 To FileLen(exTgtGETFROM.Text)Get #nFileNum, i + 1, Temp ' nacist vsechny bajty' to "+1" je tam proto, protoze funkce' Get poctita 1 misto 0 jako zacatek souboruLarge(i) = TempNext iLog ("Bajty nacteny")Close #nFileNumLog ("Zaviram soubor")' tak uz mam nactenej soubor, ted se v nem budu prehrabovat ...'### VYHLEDAM SEKVENCE O 1024 BAJTECH A ULOZIM JE DO POLELog ("Budu hledat sekvence o 1024 bajtech...")For n = 0 To FileLen(exTgtGETFROM.Text)If Large(n) = 0 Then ' jestlize nejsem v sekvenciIf CurrentSekvence1024 = 1024 Then 'jestli je sekvence kompletniLog ("Sekvence o 1024 bajtech nalezena!")PocetSekvenci = PocetSekvenci + 1For xx = 1 To 1024 'Zapis sekvenci jako jeden z vysledkuVysledneSekvence(PocetSekvenci, xx) = Sekvence1024(xx - 1)Next xxEnd IfZapocata1024 = FalseCurrentSekvence1024 = 0 'vynulovat pocitadloGoTo SKIP__ONE ' tohle tu nemusi bejt, protoze to tak jak tak jde hned na konecElse ' jinakZapocata1024 = TrueReDim Preserve Sekvence1024(CurrentSekvence1024) ' predimenzuj pole s funkci' zachrany soucasnych dat' (preserve) na aktualni' velikost sekvence aSekvence1024(CurrentSekvence1024) = Large(n) ' zapis vysledekCurrentSekvence1024 = CurrentSekvence1024 + 1 ' inc.End IfSKIP__ONE:Next nLog ("Celkem sekvenci o 1024 bajtech: " & PocetSekvenci)' tak a mame pole v trema 1024 sekvencema, ted uz zbyva je rozdelit do' 24 128 sekvenci a tak dale a tak dale ....'### ROZDELIM TYTO 1024 BITOVE SEKVENCE DO 24 128 BITOVYCH'### A VSE SETRIDIM DO PREHLEDNEHO POLELog ("Budu tridit 1024sekvence do pole...")Dim Temp128(1 To 128) ' nevyuzita promenna=)Dim Multiple128()ReDim Multiple128(1 To PocetSekvenci, 1 To 8, 1 To 128) 'nase prehledny poleFor qq = 1 To PocetSekvenciFor ww = 1 To 8For ee = 1 To 128Multiple128(qq, ww, ee) = VysledneSekvence(qq, ((128 * ww) - 128) + ee)' tenhle zakrok uklada do pole 3,8,128 a pocita s posunem pocatku...' doufam, ze je to jasnyNext eeNext wwNext qqLog ("Roztrizeno")' a ted prevod do bin,8'### PREVEDU DO BINARNIHO FORMATULog ("Budu prevadet do binarniho formatu o zakladu 8...")Dim Bin128() As StringReDim Bin128(1 To PocetSekvenci, 1 To 8, 1 To 128) As StringFor qqq = 1 To PocetSekvenciFor www = 1 To 8For eee = 1 To 128Bin128(qqq, www, eee) = DecToBin(CLng(Multiple128(qqq, www, eee)), 8)Next eeeNext wwwNext qqqLog ("Prevedeno")Log ("ANALYZA DOKONCENA BEZ CHYB")'###################################################'### SIMULACE GRAFICKEHO SUBSYSTEMU ################'###################################################' Toto je znamy "derny stitek"Log ("SPOUSTIM SIMULACI GRAFICKEHO SUBSYSTEMU...")Dim BIGG ' tohle je 1024 charakteru dlouha pomlcakFor biggc = 1 To 1024BIGG = BIGG & "-"Next biggcDim Glyph ' tady bude vysledekDim GlyphX0 ' osa X, status Y=0Dim GlyphX1 ' osa X, status Y=1Dim DownGlyph ' popisky na ose XDim TempChar ' docasne misto pro prave nactenej neco...Log ("Zpracovavam linii grafu...")Log ("Manualne nastaveno a=" & CStr(a) & " b=" & CStr(b))Log ("sekv. " & CStr(a) & "/" & PocetSekvenci & "; sekv." & CStr(b) & "/8")For gl1a = 1 To 128For gl1b = 1 To 8TempChar = Mid(CStr(Bin128(a, b, gl1a)), (gl1b), 1)' Tohle je moc Basicovsky a je to takova lepsi prace se stringy,' muze se stat ze ti to nebude moc jasny. Funkce Mid, vraci znaky,' ktere jsou dany parametrem, odkud a kolik =).Select Case TempChar ' mame nula nebo jedna? jestli nula tak, v jedna' bude mezera a v nula znak, vice versa.Case "0"GlyphX0 = GlyphX0 & GCHGlyphX1 = GlyphX1 & " "Case "1"GlyphX0 = GlyphX0 & " "GlyphX1 = GlyphX1 & GCHEnd SelectDownGlyph = DownGlyph & TempCharNext gl1bNext gl1aLog ("Zpracovano")Log ("Vykresluji...")Glyph = "" & GlyphX1 & vbCrLf & _"" & GlyphX0 & vbCrLf & _BIGG & vbCrLf & _DownGlyph & vbCrLf 'vysledekTestText.Text = Glyph 'vykreslimLog ("Vykresleno")Log ("UKONCUJI SIMULACI GRAFICKEHO SUBSYSTEMU")Log ("ALGORITMUS UKONCEN")STATUS.Caption = "READY"Exit SubFuckOff:Log ("#CHYBA: Potrebujes soubor obsahujici 3 sekvence 1024 bajtu oddelene minimalne jednou nulou !!!")Exit SubErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End SubPublic Function Log(Str)LOGBOX.Text = LOGBOX.Text & Time & ": " & Str & vbCrLfEnd FunctionPrivate Sub Form_Load()On Error GoTo ErrHandGCH = "¤"pX.Top = (Picture1.Top + (Picture1.Height / 2))pX.Left = Picture1.LeftpY.Left = (Picture1.Left + (Picture1.Width / 20))pY.Top = Picture1.ToppX.Width = Picture1.WidthnulaY = Picture1.Height / 2nulaX = Picture1.Width / 20Call initExit SubErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End Sub'################################################'################################################Public Function Spoj(AnoNe As Boolean)Select Case AnoNeCase Truedravv = TrueCase Falsedravv = FalseEnd SelectEnd FunctionPublic Function PxPy(zeroX As Single, zeroY As Single, destX As Single, destY As Single, Wdt As Long, Sclr As ColorConstants)Pencil Picture1, zeroX, zeroY, Wdt, 1, SclrPencil Picture1, XJplus(destX), YJplus(destY), Wdt, 1, Sclrdravv = FalseEnd FunctionPublic Function PxMy(zeroX As Single, zeroY As Single, destX As Single, destY As Single, Wdt As Long, Sclr As ColorConstants)Pencil Picture1, zeroX, zeroY, Wdt, 1, SclrPencil Picture1, XJplus(destX), YJminus(destY), Wdt, 1, Sclrdravv = FalseEnd FunctionPublic Function MxPy(zeroX As Single, zeroY As Single, destX As Single, destY As Single, Wdt As Long, Sclr As ColorConstants)Pencil Picture1, zeroX, zeroY, Wdt, 1, SclrPencil Picture1, XJminus(destX), YJplus(destY), Wdt, 1, Sclrdravv = FalseEnd FunctionPublic Function MxMy(zeroX As Single, zeroY As Single, destX As Single, destY As Single, Wdt As Long, Sclr As ColorConstants)Pencil Picture1, zeroX, zeroY, Wdt, 1, SclrPencil Picture1, XJminus(destX), YJminus(destY), Wdt, 1, Sclrdravv = FalseEnd FunctionPublic Function XY(zeroX As Single, zeroY As Single, destX As Single, destY As Single, Wdt As Long, Sclr As ColorConstants)Pencil Picture1, zeroX, zeroY, Wdt, 1, SclrPencil Picture1, destX, destY, Wdt, 1, Sclrdravv = FalseEnd FunctionPrivate Sub init()'POZOR!!!!!'toto je neoptimalizovany kod, pouzil jsem Ctrl+C Ctrl+V z jednoho'ze svych straych projektu, kdy jsem jeste nepouzival cykly'for...next ; POUZE TATO CAST JE NEOPTIMALIZOVANA !!!!!!!Pencil Picture1, Xminus(0), Yplus(25), 1, 1, vbBlackPencil Picture1, Xminus(10), Yplus(25), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(0), Yplus(150), 1, 1, vbBlackPencil Picture1, Xminus(10), Yplus(150), 1, 1, vbBlackdravv = False''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Pencil Picture1, Xplus(25), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(25), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(50), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(50), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(75), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(75), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(100), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(100), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(125), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(125), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(150), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(150), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(175), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(175), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(200), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(200), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(225), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(225), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(250), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(250), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(275), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(275), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(300), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(300), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xplus(325), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(325), Yplus(10), 1, 1, vbBlackdravv = False''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Pencil Picture1, Xminus(25), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(25), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(50), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(50), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(75), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(75), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(100), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(100), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(125), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(125), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(150), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(150), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(175), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(175), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(200), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(200), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(225), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(225), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(250), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(250), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(275), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(275), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(300), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(300), Yplus(10), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(325), Yplus(0), 1, 1, vbBlackPencil Picture1, Xminus(325), Yplus(10), 1, 1, vbBlackdravv = FalseDim i As Singlei = 350For i = 350 To 1000 Step 25Pencil Picture1, Xplus(i), Yplus(0), 1, 1, vbBlackPencil Picture1, Xplus(i), Yplus(10), 1, 1, vbBlackdravv = FalseNext i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Pencil Picture1, Xminus(0), Yminus(25), 1, 1, vbBlackPencil Picture1, Xminus(10), Yminus(25), 1, 1, vbBlackdravv = FalsePencil Picture1, Xminus(0), Yminus(150), 1, 1, vbBlackPencil Picture1, Xminus(10), Yminus(150), 1, 1, vbBlackdravv = FalseEnd SubPrivate Sub Command6_Click()On Error GoTo ErrHand'XY XJplus(0), YJplus(6), XJplus(1), YJplus(6), 1, vbBlack'XY XJplus(1), YJplus(6), XJplus(2), YJplus(6), 1, vbBlack'XY XJplus(2), YJplus(6), XJplus(2), YJplus(1), 1, vbBlackCD1.Filter = "*.txt - predloha pro graf z LOG.AN. | *.txt"CD1.ShowOpenDim SMODL1 As New OptSMODL1.BasicInputFromFileToMultiLine Soubor, CD1.FileNameSoubor = Replace(Soubor, vbCrLf, "")Soubor = Replace(Soubor, "-", "")MsgBox Len(Soubor)S1 = Mid(Soubor, 1, 1024)S0 = Mid(Soubor, 1025, 2049)CA = Mid(Soubor, 2049, 3072)SP = Mid(Soubor, 3073, 4097)Text1.Text = S1MsgBox Len(Text1.Text)Text2.Text = S0MsgBox Len(Text2.Text)Text3.Text = SPMsgBox Len(Text3.Text)Exit SubErrHand:MsgBox Err.Description, vbCritical, "ERROR!"End SubPrivate Sub DX_Change()If DX.Text = "+" Or DX.Text = "-" ThenDX.Text = " " & DX.Text & " "End IfEnd SubPrivate Sub DY_Change()If DY.Text = "+" Or DY.Text = "-" ThenDY.Text = " " & DY.Text & " "End IfEnd SubPublic Function Xplus(n As Single)Xplus = nulaX + (n * 10)End FunctionPublic Function Yplus(n As Single)Yplus = nulaY - (n * 10)End FunctionPublic Function Xminus(n As Single)Xminus = nulaX - (n * 10)End FunctionPublic Function Yminus(n As Single)Yminus = nulaY + (n * 10)End FunctionPublic Function XJplus(n) ' As Single)XJplus = nulaX + (n * 250)End FunctionPublic Function YJplus(n) ' As Single)YJplus = nulaY - (n * 250)End FunctionPublic Function XJminus(n) ' As Single)XJminus = nulaX - (n * 250)End FunctionPublic Function YJminus(n) ' As Single)YJminus = nulaY + (n * 250)End Function'###################################################'###################################################