Hallo,
ich bin dabei, mir einen ASCII - Art Editor zu schreiben.
Die älteren User hier kennen bestimmt noch die .nfo Dateien,
die den Softwarepaketen beilagen und so schöne ASCII-Bildchen
enthielten.
Eine rudimentäre Version habe ich hier schon :
Alles anzeigen
Was ich noch wissen wollte :
Wie kann ich in meinem Multi-Edit die aktuelle Cursor - Position herausbekommen ?
Ich möchte das gerne so haben, daß das angeklickte Zeichen auch an der aktuellen
Cursorposition geschrieben wird.
Im Moment kann ich mir zwar mit der Leertaste und Backspacetaste behelfen,
es wäre aber schöner, wenn es an der aktuellen Position ginge.
Hat jemand dazu eine Idee ?
ich bin dabei, mir einen ASCII - Art Editor zu schreiben.
Die älteren User hier kennen bestimmt noch die .nfo Dateien,
die den Softwarepaketen beilagen und so schöne ASCII-Bildchen
enthielten.
Eine rudimentäre Version habe ich hier schon :
Quellcode
- Declare Handle imgList, hIcon, htb, Edit1, Oemfont, btn1, btn2, btn3, btn4
- Declare String ldatei, sdatei, cp850
- Declare Int ende
- Declare Long zeichen[]
- WindowTitle "ASCII - ARTS"
- Window 1200, 600
- Set("CharSet", 1)
- imgList = @Create("ImageList", 16, 16)
- @Create("OEMList", imgList)
- oemfont = @Create("Font", "Terminal", 10, 0, 0, 0, 0)
- Edit1 = @Create("MultiEdit", %HWnd, "", 100, 60, 520, 400)
- btn1 = @Create("Button", %HWnd, "Load", 10, 60, 80, 25)
- btn2 = @Create("Button", %HWnd, "Save", 10, 90, 80, 25)
- btn3 = @Create("Button", %HWnd, "Print", 10, 120, 80, 25)
- btn4 = @Create("Button", %HWnd, "Ende", 10, 150, 80, 25)
- htb = @Create("Toolbar", %HWnd, imgList, @GetCount(imgList), 10, 2000, 1)
- UserMessages $10
- SetFont Edit1, oemfont
- ende = 0
- WhileNot ende
- WaitInput
- If @Clicked(btn1)
- ldatei = @LoadFile$(%HWnd, "Datei laden", "NFO-Dateien|*.NFO")
- If ldatei <> ""
- SetText Edit1, ""
- LeseDatei()
- EndIf
- ElseIf @Clicked(btn2)
- ' save
- sdatei = SaveFile$(%HWnd, "Datei speichern", "NFO-Dateien|*.NFO", 1)
- If sdatei <> ""
- SchreibeDatei()
- EndIf
- ElseIf @Clicked(btn3)
- MessageBox("Noch nicht implementiert !", "Info", 0)
- ElseIf @Clicked(btn4)
- ende = 1
- EndIf
- Select %MenuItem
- CaseOf >= 2000
- SetText Edit1, GetText$(Edit1) + Chr$(zeichen[%MenuItem - 2000])
- EndSelect
- Case %Key = 2 : ende = 1
- Case %UMessage = $10 : ende = 1
- EndWhile
- Proc LeseDatei
- ClearList
- Move("FileToList", ldatei)
- Move("ListToHandle", Edit1)
- EndProc
- Proc SchreibeDatei
- ClearList
- Move("HandleToList", Edit1)
- Move("ListToFile", sdatei)
- EndProc
- Proc MaleStatic
- Declare Int y
- y = 5
- StartPaint Static
- UseFont "Terminal", 10, 0, 0, 0, 0
- RectAngle 5, 5 - 515, 195
- WhileLoop 0, GetCount(0)
- DrawText 5, y, @GetString$(0, &LOOP)
- Inc y, 12
- EndWhile
- EndPaint
- EndProc
- SubProc Create.OEMList
- Parameters Handle il
- Declare Handle bmp
- zeichen[] = 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,\
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,\
- 216, 217, 218, 219, 220, 221, 222, 223, 226, 227
- WhileLoop 0, (SizeOf(zeichen[]) - 1)
- MCls 16, 16, RGB(255, 255, 255)
- StartPaint -1
- UseFont "Terminal", 10, 0, 0, 0, 0
- TextColor RGB(0, 0, 0), RGB(255, 255, 255)
- DrawText 1, 1, Chr$(zeichen[&LOOP])
- EndPaint
- bmp = @Create("hSizedPic", 0, "&MEMBMP", 16, 16, 1)
- ImageList("Add", il, bmp)
- EndWhile
- DeleteObject bmp
- Return @GetCount(il)
- EndProc
- DeleteObject oemfont, imgList
- End
Wie kann ich in meinem Multi-Edit die aktuelle Cursor - Position herausbekommen ?
Ich möchte das gerne so haben, daß das angeklickte Zeichen auch an der aktuellen
Cursorposition geschrieben wird.
Im Moment kann ich mir zwar mit der Leertaste und Backspacetaste behelfen,
es wäre aber schöner, wenn es an der aktuellen Position ginge.
Hat jemand dazu eine Idee ?