Dokumentiertes Beispiel für ein Editor (Tutorial - Editor)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Sorry, das ich da zwischen laber.
Ich finde, MK-Soft hat es gut gemeint und mit seinem Beispiels-Editor
gute Arbeit für ein Tut geleistet.

Zum einen ist der Aufbau wichtig. Danach eine kurze Beschreibung. Bei Fragen von Anfängern, kann man nach und nach Verbesserungen und
Erweiterungen hinzufügen.

Die API-Hilfe, die in PB leider unumgänglich ist, sollte sich jeder Anfänger zu Gemüte nehmen. Vorraussetzung ist Englisch!

Anstelle nur Kritiken hier reinzustellen, wäre eine Unterstützung zur Beschreibung eines Tuts hierzu sehr hilfreich.

Ich hoffe es fühlt sich jetzt keiner angegriffen. :lol:

Grüße ...Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Update v1.04 (Seite 1)
Programm optimierung. Erweitere Kommentare kommen noch

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Hallo Leute,

habe mich kürzlich auch mit nem eigenen Editor befasst und wollte vorschlagen doch links den Rand zu erweitern um das markieren von ganzen Zeilen dem Benutzer zu erleichtern.

Dazu der Code:

Code: Alles auswählen

SendMessage_(Editor,#EM_SETMARGINS,#EC_LEFTMARGIN,MAKELONG(10,100))
Denke der Code erklärt sich von selbst.

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

@Scarabol,

nur bei EditorGadget (RichEdit)

Probier noch mal den den Code aus mit umstellung auf EditorGadget.
Nimmt aus irgendein grund die Einstellung von linken Rand nicht an ???

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

em_setmargins funktioniert sowohl im Stringgadget als auch im Editorgadget.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

@edel

>>em_setmargins funktioniert sowohl im Stringgadget als auch im Editorgadget.

Beispiel zum Stringgadget in PB4?
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

???

Code: Alles auswählen

Procedure.l MAKELONG(LowWord.l, HighWord.l)

  result.l = HighWord << 16 | LowWord
  ProcedureReturn result

EndProcedure

; *****************************************************************************

; Linken Rand einstellen
    SendMessage_(#Edit,#EM_SETMARGINS,#EC_LEFTMARGIN,MAKELONG(10,0))
geht bei mir nicht
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Falko hat geschrieben:@edel

>>em_setmargins funktioniert sowohl im Stringgadget als auch im Editorgadget.

Beispiel zum Stringgadget in PB4?

Code: Alles auswählen

  Define.l hwnd = OpenWindow(0,0,0,500,500,"")
  
  CreateGadgetList(hwnd)
  
  Define.l hEdit = StringGadget(0,0,0,500,500,"",#ES_MULTILINE|#WS_HSCROLL|#WS_VSCROLL)
  
  SendMessage_(hEdit,#EM_SETMARGINS,#EC_LEFTMARGIN,100)
  
  Repeat
  Until WaitWindowEvent() = #WM_CLOSE
@mk-soft
Sendmessage_ ist ein API-Befehl und , der kann nichts mit der PBID anfangen.

Code: Alles auswählen

SendMessage_(Gadgetid(#Edit)[...]
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

GUTEN MORGEN ALLE MIT EINANDER. HABEN AUCH ALLE AUSGESCHLAFEN?

ich wohl nicht :allright:

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

edel hat geschrieben:....
@mk-soft
Sendmessage_ ist ein API-Befehl und , der kann nichts mit der PBID anfangen.

Code: Alles auswählen

SendMessage_(Gadgetid(#Edit)[...]
Danke für das Beispiel, und warum soll das nicht mit PBID laufen?

Code: Alles auswählen

  OpenWindow(0,0,0,500,500,"")
 
  CreateGadgetList(WindowID(0))
 
  StringGadget(0,0,0,500,500,"",#ES_MULTILINE|#WS_HSCROLL|#WS_VSCROLL)
 
  SendMessage_(GadgetID(0),#EM_SETMARGINS,#EC_LEFTMARGIN,100)
 
  Repeat
  Until WaitWindowEvent() = #WM_CLOSE
Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten