Anfang u. Ende von markiertem Text in EditorGadget n

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Das Clipboard ist für alle da.

Nöh! Ich würde mich auch ärgern, wenn sich in meinem Clipboard etwas
befindet, was ich da nicht höchstpersönlich reinkopiert hätte.
a²+b²=mc²
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Eine ganze Reihe von Programm greifen nach eigenem Ermessen auf das Clipboard zu.
Letztendlich kommt es ja nur aufs Programm an ob das nicht gut ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Hroudtwolf hat geschrieben:Eine ganze Reihe von Programm greifen nach eigenem Ermessen auf das Clipboard zu.
Letztendlich kommt es ja nur aufs Programm an ob das nicht gut ist.
:? Die wären?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag von Christi »

Hroudtwolf hat geschrieben:Soso.
Du benutzt also kein Word, bei PB benutzt du auch bestimmt die Kopieren Funktion nicht.
Ich sagte ohne mein Zutun. Es ist von Vorteil sich etwas genau durchzulesen und zu verstehen bevor man sarkastisch wird.
Calloway
Beiträge: 106
Registriert: 15.09.2004 23:26

Beitrag von Calloway »

Christi hat geschrieben:so ungefähr ?
Ja, genau!
Jetzt habe ich das mal in eine Prozedur gepackt:

Code: Alles auswählen

Procedure FrameSelectedText(Editor.l,frame1.s,frame2.s)
  textlaenge.l = SendMessage_(GadgetID(Editor), #wm_gettextlength, 0, 0) 
  text.l = AllocateMemory(textlaenge.l) 
  SendMessage_(GadgetID(Editor), #wm_gettext, textlaenge.l, text.l) 
  SendMessage_(editorid.l, #em_getsel, @anfang, @ende) 
  anfang + SendMessage_(GadgetID(Editor), #EM_EXLINEFROMCHAR, 0, anfang) 
  ende + SendMessage_(GadgetID(Editor), #EM_EXLINEFROMCHAR, 0, ende) 
  SendMessage_(GadgetID(Editor), #EM_REPLACESEL, 0, frame1 + PeekS(text + anfang, ende - anfang) + frame2) 
  FreeMemory(text.l) 
EndProcedure
Allerdings wird jetzt der markierte Text nicht mehr übernommen, sondern nur die Rahmen-Strings. Was habe ich da übersehen?
(frame1.s=String vor dem selektierten Text, fram2.s=String nach dem selektierten text)
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag von Christi »

Du hast in deiner Procedure gemixt Editor.l, GadgetID(Editor) oder editorid.l geschrieben.
Änder alles auf editorid.l .
Calloway
Beiträge: 106
Registriert: 15.09.2004 23:26

Beitrag von Calloway »

Christi hat geschrieben:Du hast in deiner Procedure gemixt Editor.l, GadgetID(Editor) oder editorid.l geschrieben.
Änder alles auf editorid.l .
Vielen Dank! Kurz zuvor hatte ich es auch gesehen. Jetzt lüppt alles. Vielen Dank für alle Hilfe. Hier wird einem immer schnell geholfen. :allright:
Antworten