Seite 1 von 1

Mein Editor Beta

Verfasst: 01.05.2005 12:51
von Defmaster
Dann will ich mal mein erstes (naja eigentlich 3tes) Programm Vorstellen was mit Pure Basic entwickelt wurde.

Es handelt sich dabei um einen Editor ähnlich Notepad.

Er beinhaltet leider noch nicht viele Funktionen da ich die WinAPI leider noch nicht Nutzen kann (PB Demo)

Ja viel gibt es dazu eigentlich nicht zu sagen außer die Download links. :)
1. http://rapidshare.de/files/1518041/Editorv0.2.zip.html
2. http://defmasters.homeftp.net


Ideen, Feedback,Kritik erwünscht.

Verfasst: 01.05.2005 12:56
von Rubiko
na gut, hab das mal getestet...

sorry aber bei den wenigen features ( im moment ) gibts nicht viel kritik
AUßER:
ich hab mal "hihihihi" eingeben... und nach "hi" gesucht... dann mit deiner funktion mit "lol" ersetzt...
dann wurden leider alle "his" in "lols"
ich denke mal es wäre besser wenn dann nur das erste ersetzt wird, das gefunden wird...

Re: Mein Editor Beta

Verfasst: 01.05.2005 14:42
von Kiffi
> Ideen, Feedback,Kritik erwünscht.

* Dein Editor schmiert erwartungsgemäss beim Laden grösserer Textdateien ab.

* Die Tastaturshortcuts für die Menüeinträge entsprechen keinen Standards

* Wenn man eine Datei öffnen will, dann in der Dateiauswahlbox 'Abbrechen' wählt, gibt's eine unsinnige 'Fehler'-Meldung

* Beim Menüpunkt Datei/Neu gibt's keine Sicherheitsabfrage, ob man den derzeitigen Text (falls verändert) speichern möchte.

* Gibt's überhaupt Sicherheitsabfragen?

* Beim Rechtsklick in das Editorfenster erscheint kein Popupmenü (Kopieren, Ausschneiden, Einfügen)

* Beim sehr merkwürdigen Suchen/Ersetzen kann man nicht abbrechen

Das sollte es für's erste sein. Es gibt zwar noch eine Menge mehr an
Verbesserungsvorschlägen, aber Du kannst ja erst mal die obigen Sachen
angehen.

Kleiner Tipp: MS-Notepad ist gar nicht mal so schlecht, wie er auf den
ersten Blick aussieht. Hier kannst Du Dir eine Menge Gedankenanregungen
holen.

Grüße ... Kiffi

Verfasst: 02.05.2005 16:13
von Defmaster
Danke dafür schonma.
Ich bin noch Anfänger auf dem Gebiet PB deshalb ist dieser noch wirklich nicht besonders, für mich aber ein weiterer Schritt.

Frage: Warum eigentlich kann ich nur eine bestimmte Anzahl an zeichen ins Editor Feld eintragen? Und warum schmiert er bei großen Dateien ab?

Das Suche / Ersetzen wollt ich wie bei NP mit nen Extra Fenster machen allerdings ging es nich so richtig weil das andere Fenster dann "unansprechbar" wird.

Das die Shortcuts keinem Standard entsprechen is klar und gewollt.

Der Punkt Neu ist erstmal nur Fasade den dieser löscht lediglich den Text im Gadget.

Pop-Up Menü gibts keins, weil ich nicht weiß ich die Befehl Strg+C etc. damit umsetzen soll.

Und wer hat gesagt das Notepad schlecht ist?

Verfasst: 02.05.2005 17:04
von AndyX
1. Abschmieren: Ein String kann nur 64kb fassen. Musste schon die String-Grenze höher setzen und das Einlesen überhaupt mit ReadData() machen. Viel schneller als ReadString(). :wink:

2. Datei öffnen. Da musst du schon prüfen, ob abgebrochen wurde, weil er sonst die Datei zu öffnen versucht.

Du kannst es so machen:

Code: Alles auswählen

ergebnis = OpenFileRequester(bla,bla....)
If ergebnis
  [bla bla bla.... hier der Code....]
EndIf
3. PopUpMenus gibt´s in PB doch eh, oder? :?

4. Noch ein Tipp:
Defmaster hat geschrieben:Das Suche / Ersetzen wollt ich wie bei NP mit nen Extra Fenster machen allerdings ging es nich so richtig weil das andere Fenster dann "unansprechbar" wird.
Da kannst du UseWindow(number) verwenden. Das müsste so gehen, wenn ich mich nicht irre

Kannst dir ja mal meinen Editor ansehen . :lol: Hab ich mal geschrieben. :mrgreen: Sicher nich perfekt, aber zum Ansehen ganz gut :mrgreen: Hat aber nich Suchen / Ersetzen. Ist schön klein gehalten :D

Code: Alles auswählen

;- ############ jaFFe - just another Funny File editor
;- V 1.0.5
;- ############ CODED BY ANDYX 2005



;{- StringBufferManipulation
Procedure SetStringManipulationBufferSize(Size)
  PBStringBase.l = 0
  PBMemoryBase.l = 0
  !MOV Eax, dword [PB_StringBase]
  !MOV [esp+4],Eax
  !MOV Eax, dword [PB_MemoryBase]
  !MOV [esp+8],Eax
  HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Size)
  !MOV dword [_PB_StringBase],Eax 
EndProcedure
SetStringManipulationBufferSize(200000)
;}

;{- Images
CreateImage(0,16,16)
StartDrawing(ImageOutput())
Box(0,8,16,8,RGB(0,0,255))
StopDrawing()
CreateImage(1,16,16)
StartDrawing(ImageOutput())
Box(0,2,16,14,RGB(0,0,255))
StopDrawing()
;}

;{- Window and Gadgets
OpenWindow(0,0,0,750,550,#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget,"jaFFe")
CreateGadgetList(WindowID(0))
EditorGadget(0,10,30,730,495)
CreateToolBar(0,WindowID(0))
ToolBarStandardButton(99,#PB_ToolBarIcon_New)
ToolBarStandardButton(0,#PB_ToolBarIcon_Open)
ToolBarStandardButton(1,#PB_ToolBarIcon_Save)
ToolBarSeparator()
ToolBarImageButton(88,UseImage(0))
ToolBarImageButton(77,UseImage(1))
ToolBarSeparator()
ToolBarStandardButton(2,#PB_ToolBarIcon_Properties)
CreateStatusBar(0,WindowID(0))
AddStatusBarField(750)
StatusBarText(0,0,"200 KB String Buffer")
;}

;{- Variablen
filecounter = 0
oldstring$ = ""
newstring$ = ""
;}

;{- Hauptschleife
Repeat
  event = WindowEvent()
  
  Select event
    Case #PB_EventMenu
      Select EventMenuID()
        Case 99
          oldstring$ = ""
          newstring$ = ""
          SetGadgetText(0,"")
          SetWindowTitle(0,"jaFFe")
        Case 0
          file$ = OpenFileRequester("jaFFe open","","All(*.*)|*.*",1)
          If file$
            SetGadgetText(0,"")
            SetWindowTitle(0,"jaFFe - LOADING")
            oldstring$ = ""
            newstring$ = ""
            siz = FileSize(file$)
            *mem = AllocateMemory(siz)
            OpenFile(filecounter,file$)
            ReadData(*mem,siz)
            CloseFile(filecounter)
            filecounter + 1
            oldstring$ = PeekS(*mem,siz)
            SetGadgetText(0,oldstring$)
            SetWindowTitle(0,"jaFFe - "+file$)
          EndIf
        Case 1
          file$ = SaveFileRequester("jaFFe save","","All(*.*)|*.*",1)
          
          If file$
            SetWindowTitle(0,"jaFFe - SAVING")
            
            newstring$ = GetGadgetText(0)
          
            CreateFile(filecounter,file$)
            
            event = WindowEvent()
            If event = #PB_Event_CloseWindow
              End
            EndIf
            Delay(1)
            
            WriteString(newstring$)
            CloseFile(filecounter)
            filecounter + 1
            oldstring$ = newstring$
            SetWindowTitle(0,"jaFFe - "+file$)
          EndIf
        Case 2
          MessageRequester("jaFFe","jaFFe - just another Funny File editor"+Chr(13)+Chr(10)+"by AndyX 2005",0)
        Case 88
          SetStringManipulationBufferSize(200000)
          StatusBarText(0,0,"200 KB String Buffer")
        Case 77
          SetStringManipulationBufferSize(5000000)
          StatusBarText(0,0,"5 MB String Buffer")
      EndSelect
    Case #PB_Event_CloseWindow
      End
  EndSelect
  
  Delay(1)
ForEver
;}
Und ich wüsste nich, das man nur eine bestimmte Anzahl Zeichen in ein EditorGadget eintragen kann. :?

Greetz,
AndyX

Verfasst: 02.05.2005 17:14
von Kiffi
> Und wer hat gesagt das Notepad schlecht ist?

wird immer wieder mal behauptet.

> Das die Shortcuts keinem Standard entsprechen is klar und gewollt.

dann hat sich das mit dem Testen für mich erledigt.

Grüße ... Kiffi

Verfasst: 02.05.2005 17:28
von ts-soft
Kiffi hat geschrieben:> Und wer hat gesagt das Notepad schlecht ist?

wird immer wieder mal behauptet.
Kann nicht sein, ist das beste und stabilste Programm von Billy :mrgreen:

Verfasst: 02.05.2005 17:31
von Kiffi
ts-soft hat geschrieben: Kann nicht sein, ist das beste und stabilste Programm von Billy :mrgreen:
... neben Solitär. ;-)

Verfasst: 02.05.2005 19:22
von Danilo
Kiffi hat geschrieben:> Und wer hat gesagt das Notepad schlecht ist?

wird immer wieder mal behauptet.
Zumindest ist es so das Notpad sinnlos ist, sobald man einen
ordentlichen Editor verwendet.
Da hat man dann Zeilennummern, Ruler, Syntax Highlighting für
50 Sprachen und auch so viel mehr Bearbeitungsmöglichkeiten.

Wer www.SourceEdit.com oder www.UltraEdit.com o.ä. hat, der
ersetzt oftmals Notepad.exe durch eine eigene EXE die mit
RunProgram einen ordentlichen Editor startet.

Das heißt zwar nicht automatisch das Notepad "schlecht" ist, aber
es kann eben absolut nichts bieten. Braucht man einfach nicht.

Verfasst: 02.05.2005 22:07
von bluejoke
OT: Solitär und die ganzen Kartenspiele haben mal nicht funktioniert, als die für die Darstellung der Karten verantwortliche DLL zerschossen war, während Notepad als fast einziges Programm noch problemlos lief...

back to the roots...:
du solltest dich zumindest an die gänigsten Standards halten, sonst muss man soviel umlernen, was niemand gerne macht