Seite 2 von 4

Verfasst: 20.10.2006 15:41
von Kiffi
> RichEditCommands 1.1

Nett! Danke!

Einige Anmerkungen:

Die Extra-Zuweisung in manchen Prozeduren machen keinen Sinn
und in manchen Prozeduren deklarierst Du interne Variablen als
Protected, in manchen nicht.

Beispielsweise:

Code: Alles auswählen

ProcedureDLL Editor_GetCursorX(Gadget_ID)  
  REG = Gadget_ID 
  SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
  ProcedureReturn (Range\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1) 
EndProcedure

... ändern in ...

Code: Alles auswählen

ProcedureDLL Editor_GetCursorX(Gadget_ID)  
  Protected Range.CHARRANGE
  SendMessage_(Gadget_ID,#EM_EXGETSEL,0,Range) 
  ProcedureReturn (Range\cpMax-(SendMessage_(Gadget_ID,#EM_LINEINDEX,SendMessage_(Gadget_ID,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1) 
EndProcedure 


und last, but not least. Schreibe in die erste Zeile Deines Sources ein
EnableExplicit.

Grüße ... Kiffi

Verfasst: 20.10.2006 15:50
von DW
UFF! Hab jetzt alles korrigiert.

Verfasst: 20.10.2006 15:53
von Kiffi
DW hat geschrieben:UFF! Hab jetzt alles korrigiert.
den Link musste auch noch aktualisieren ;-)

Verfasst: 20.10.2006 15:56
von DW
Hab ich.

Verfasst: 20.10.2006 16:15
von Kiffi
DW hat geschrieben:Hab ich.
OK, jetzt funktioniert der Download wieder.

Nochmal: Die Zuweisung mancher Variablen mach keinen Sinn. Wozu
benötigst Du in der folgenden Prozedur die Variable REG? Des weiteren:
Wenn Du einen Variablentyp in Protected zugewiesen hast, dann brauchst
Du in im Aufruf nicht noch einmal zu schreiben.

Code: Alles auswählen

ProcedureDLL Editor_GetCursorX(Gadget_ID)
Protected Range.CHARRANGE
Protected REG = Gadget_ID 
SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
ProcedureReturn (Range\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1) 
EndProcedure
besser ist das:

Code: Alles auswählen

ProcedureDLL.l Editor_GetCursorX(Gadget_ID.l)
  Protected Range.CHARRANGE
  SendMessage_(Gadget_ID,#EM_EXGETSEL,0,Range) 
  ProcedureReturn (Range\cpMax-(SendMessage_(Gadget_ID,#EM_LINEINDEX,SendMessage_(Gadget_ID,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1) 
EndProcedure
Und noch ein Vorschlag: Alle überflüssigen Leerzeilen raus und an
geeigneten Stellen Leerzeilen rein. So wird der Code lesbarer. Und bitte
die Codeeinrückung nicht vergessen ;-)

Grüße ... Kiffi

Verfasst: 20.10.2006 16:38
von Kaeru Gaman
schätze mal, das liegt auch daran, dass ca.50% importierter code von anderen codern ist.
da muss man echt ne weile dran rumeditieren, um alles auf ne klare linie zu bringen.

@DW
weiter so :allright:

Verfasst: 20.10.2006 17:01
von DW
Jap. Das mit Reg z.B ist von einem anderen coder.

Verfasst: 20.10.2006 17:05
von Kiffi
DW hat geschrieben:Jap. Das mit Reg z.B ist von einem anderen coder.
Hoffen wir mal, dass er nix dagegen hat, wenn Du das als Compilation
veröffentlichst ;-)

Du solltest auf jeden Fall beim zusammenstellen von Codes anderer darauf
achten, unsinniges Zeug herauszulöschen. Einfaches Copy&Paste macht hier
keinen Sinn.

Grüße ... Kiffi

Verfasst: 20.10.2006 17:22
von ts-soft
Hier ist noch meine Version für PB3.94 (kaum Änderungen nötig)
Der Datei ist vom 05.04.2004

Die einzeiligen Proceduren (welche, wo nur ein SendMessage drinn ist) sind
besser durch Macros zu ersetzen.

Die Sourcen sind von freak, A. Miethe und anderen (auch mir :mrgreen: )

http://ts-soft.eu/dl/editorgadgetplus.zip

Verfasst: 20.10.2006 17:26
von DW
Warum machst du keinen neuen thread auf?
Einfaches Copy&Paste macht hier
keinen Sinn.
Ist ja nich bei den ganzen 50% so. Hab auch einiges verbessert. Wie TExtFind etc.