TAAS DELPHIÄ (MEMO:STA)

ehhh.Terve taas kaikki !

Ongelma on yksinkertainen (ohjelmoijalle)!
(Olen vain mokoma tuurari ,joka ei tajua mistään mitään), mutta kuitensikii...


Eli siis...
Memoon kopioidessa tietoa painaessa esim. nappia
haluan lisätä jotain. Eli ongelma näyttää seuraavalta:

procedure TForm1.Button1Click(Sender: TObject);
var
begin
memo1.lines[1].add := 'päivää';
end;

end.

Tämä koodi toimii kyllä, mutta jos memossa on ennalta jotakin, niin se kopioi sen siihen line1:sen päälle. Miten sen saisi ohitettua ?

Tai parempi olisi jos nappia klikkaamalla kopionti tapahtuisi suoraan memossa olevan kursorin eteen !!!!
5358
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Siis oletko valinnut jonkun tekstin jostain kopioimalla, joka pitäisi sitten liittää siihen kohtaan memoa, jossa kursori on? Jos näin, niin koodi on yksinkertaisesti

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.PasteFromClipboard;
end;

Jos taas haluat jonkun tietyn merkkijonon (tässä "päivää") lisätä Memoon, niin seuraava koodi laittaa sanan "päivää" ensimmäiselle vapaalle riville:

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add('päivää');
end;

Sitä, miten tuon jälkimmäisen saa kursorin kohdalle, en näin äkkiseltään osaa sanoa, kun en ole guru asiassa.

Äänestä
  • Paitsi, että mites se nappia painamalla kopiointi ? Esim.

    procedure TForm1.Button9Click(Sender: TObject);
    begin
    label1.caption.CopyToClipboard;
    end;

    end.

    Miksi tämä ei toimi ?

    Äänestä

  • M2KD kirjoitti:

    Paitsi, että mites se nappia painamalla kopiointi ? Esim.

    procedure TForm1.Button9Click(Sender: TObject);
    begin
    label1.caption.CopyToClipboard;
    end;

    end.

    Miksi tämä ei toimi ?

    Label ei ole sellainen komponentti, jossa tuo copy-paste olisi mahdollinen. Labeliinhan ei ohjelman käyttäjä koskaan syötä mitään tietoa. Sen sijaan Edit-komponentti, Memo-komponentti, RichEit-komponentti jne käyvät tähän tarkoitukseen. Esimerkin voisi laittaa vaikkapa näin

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Edit1.CopyToClipboard;
    Memo1.PasteFromClipboard;
    end;

    Ja jotta homma toimii, pitää luonnollisesti käyttäjän valita hiirellä se osa Edit1:n tekstiä, minkä haluaa kopioitavaksi.

    Äänestä

  • Saija kirjoitti:

    Label ei ole sellainen komponentti, jossa tuo copy-paste olisi mahdollinen. Labeliinhan ei ohjelman käyttäjä koskaan syötä mitään tietoa. Sen sijaan Edit-komponentti, Memo-komponentti, RichEit-komponentti jne käyvät tähän tarkoitukseen. Esimerkin voisi laittaa vaikkapa näin

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Edit1.CopyToClipboard;
    Memo1.PasteFromClipboard;
    end;

    Ja jotta homma toimii, pitää luonnollisesti käyttäjän valita hiirellä se osa Edit1:n tekstiä, minkä haluaa kopioitavaksi.

    Haluaisin saada mahdollisimman simppelisti otettua printscreenillä kuvan työpöydästä ja lähetettyä sen kaverin mailiin.
    Miten onnistuu tai onnistuuko mitenkään?
    Ei saisi häiritä tavallista koneenkäyttöä, eli makro Wordiin vai miten??

    Äänestä

delphistä mulla ei oikein ole mitään hajua muuta että se on vähän sukua borlandin c builerin kanssa(paitti että siinä käytetään ihan eri kieltä) :)

mutta uskoisin että siitäkin löytyisi tällänen käsky kuin:

memo1.SelText = "jotain lisää";

eli memoon kirjoitetaan valitun tekstin päälle jotakin ja jos ei ole valittu mitään niin se teksti tulee kursorin kohdalle...eli jos ennen tuota käskyä siiretään kursori halutulle paikalle niin homman pitäisi toimia :)

Äänestä

Kommentoi aloitusta


M2KD kirjoitti:

ehhh.Terve taas kaikki !

Ongelma on yksinkertainen (ohjelmoijalle)!
(Olen vain mokoma tuurari ,joka ei tajua mistään mitään), mutta kuitensikii...


Eli siis...
Memoon kopioidessa tietoa painaessa esim. nappia
haluan lisätä jotain. Eli ongelma näyttää seuraavalta:

procedure TForm1.Button1Click(Sender: TObject);
var
begin
memo1.lines[1].add := 'päivää';
end;

end.

Tämä koodi toimii kyllä, mutta jos memossa on ennalta jotakin, niin se kopioi sen siihen line1:sen päälle. Miten sen saisi ohitettua ?

Tai parempi olisi jos nappia klikkaamalla kopionti tapahtuisi suoraan memossa olevan kursorin eteen !!!!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu