Skocz do zawartości

Zaznaczanie tekstu


Balon93

Rekomendowane odpowiedzi

Teoretycznie wszystko 'sie da', ale w tym wypadku trzeba by stworzyć program, który traktuje każdy wpisany znak jako inny obiekt lub zmienna (by można go było pozniej zaznaczyc jako blok), co jest tak jak powiedział Tymon niepraktyczne i mało wydajne.

 

Jest jeszcze opcja odczytywania pozycji znaku w stringu, ale nie wiem czy GM to obsługuje, bo ostatnio przerzucam sie na PHP i podobne.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Mam problem.

 

Chce aby po zaznaczeniu tekstu "ja" blokiem i naduszeniu jakiegoś przycisku powstało "<b>ja</b>"

 

prosze o pomoc

To zależy od tego jaki system zawwartości tekstowej masz zrobiony, bo nic nie napisałeś na ten temat. A może w ogóle nic nie masz i chcesz kontener tekstu i mechanizm zaznaczania? I na co Ci to? Bo jeśli to ma być główna rzecz w twojej produkcji (np. jakiś edytor do stron html), to nie widzi mi się odwalanie dla Ciebie przykładu. Tak jak napisał kasmilus.
Odnośnik do komentarza
Udostępnij na innych stronach

3 obiekty:

[1] - obj_start

[2] - obj_wykonaj

[3] - obj_piszemy

 

w obj_start:

Events

Mouse/Left Pressed

kod

instance_create(x,y,obj_wykonaj);

 

w obj_piszemy

Events

Draw:

draw_text(x,y,keyboard_string)

 

w obj_wykonaj:

Events

Create:

with(obj_start) instance_destroy();
with(obj_piszemy) instance_destroy();

Draw:

draw_text(x,y,'<b>' + keyboard_string + '</b>')

 

W Room dodajemy tylko obj_piszemy i obj_start

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
To chociarz pomóżcie narazie tego nie zrobiliście !!
A jak mamy pomóc przy tak szczątkowych danych? Rzucasz zagadnienie i my mamy odwalić cały engine... Po co chcesz taki przykład? Jakim sposobem wyświetlasz pole z tekstem? Czy masz jakiś silnik z wyświetlaniem pola z tekstem.

 

Ogólnie radziłbym wziąść jakiś dll, który pozwala w oknie gm'a dać textarea i pozwala na przechwycenie akcji zaznaczania lub pobierania info o zaznaczonym tekscie. Wtedy jak to napisał tymon -> string_replace.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja napisałem na razie prosty edytor tekstu (bez zaznaczania, wymaga zmiennych 'poz' i 'txt'):

var t1, t2;
t1 = string_copy(txt,1,poz);
t2 = string_delete(txt,1,poz);

//Kursor
if alarm[0] <= 0 {
    if keyboard_check(vk_left) {
        poz = max(0,poz-1);
    }
    else
    if keyboard_check(vk_right) {
        poz = min(string_length(txt),poz+1);
    }
    else
    if keyboard_check(vk_backspace) { //Backspace
        txt = string_copy(t1,1,string_length(t1)-1) + t2;
        poz = max(0,poz-1);
    }
    else
    if keyboard_check(vk_delete) { //Delete
        txt = t1 + string_delete(t2,1,1);
        poz = min(string_length(txt),poz);
    }
    
    alarm[0] = 1;
}
else {
    alarm[0] -= 1;
}

//Pisanie
if keyboard_string != '' {
    txt = t1 + keyboard_string + t2;
    poz = min(string_length(txt),poz+1);
    
    keyboard_string = '';
}

if keyboard_check(vk_control) {
    //COPY!
    if keyboard_check_pressed(ord('C')) {
        clipboard_set_text(txt);
    }
    
    //PASTE!
    if keyboard_check_pressed(ord('V')) {
        txt = t1+clipboard_get_text()+t2;;
    }
}

//Tagi
if keyboard_check(vk_alt) {
    //Tag: b
    if keyboard_check_pressed(ord('B')) {
        if bold = false {
            txt = t1+'<b>'+t2;
            bold = true;
            exit;
        }
        else {
            txt = t1+'</b>'+t2;
            bold = false;
            exit;
        }
    }
}

txt_edit = t1+'_'+t2;

//Rysowanie
draw_set_color(c_black);
draw_text(x,y,'Tekst edytowany: '+txt_edit);
draw_text(x,y+16,'Tekst: '+txt);

ALT+B - Dodaje otwarty/zamknięty tag 'b'.

CTRL+V - Wkleja tekst.

CTRL+C - Kopiuje tekst.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...