Avatar billede nikrasitf Nybegynder
09. marts 2003 - 16:44 Der er 7 kommentarer

Konverting af programstump fra VisualBasic til delphi

Hej, jeg har et problem med TRichEdit mht scrolling, som der er en løsning på på denne side.....
http://blackbeltvb.com/index.htm?free/rtbscrol.htm

Men er desværre i VB, som jeg ik er videre haj til,
har prøvet at fixe det i delphi men er ikke lykkedes,
da jeg regner med at koden virker i VB. :(

plz help ;)
Avatar billede stoney Nybegynder
09. marts 2003 - 17:48 #1
Hvad er det helt nøjagtigt du vil kunne med din Richedit ?

Stoney
Avatar billede nikrasitf Nybegynder
09. marts 2003 - 17:52 #2
Jeg vil opnå samme effekt med RichEdit'en som i f.eks. mIRC hvis du kender
det, da det er sådan at tekst kommer ud fra neden istedet for den normale
foroven.

Dvs, ved resize af RE'en hænger sidste linie fast på den nederst visuelle linie.

Hvis du ikke kender mIRC, prøv at downloade det på www.mirc.com så kan du
se hva' jeg snakker om :)
Avatar billede nikrasitf Nybegynder
09. marts 2003 - 18:01 #3
Nu ved jeg ikke om du har kigget eller prøvet det lille vb-program,
men virker underligt hvis det virker, da man ved resize får disse
WM's smidt i hovedet...
  WM_WINDOWPOSCHANGING, WM_NCCALCSIZE, WM_NCPAINT, WM_ERASEBKGND,
  WM_WINDOWPOSCHANGED, WM_SIZE,WM_WINDOWPOSCHANGING

Og der bliver ikke testet/udført kode på nogle af dem?! :(
Avatar billede stoney Nybegynder
09. marts 2003 - 18:16 #4
Prøv dette

procedure TForm1.Button1Click(Sender: TObject);


begin
richedit1.Lines.Add(edit1.Text);
  with RichEdit1 do
  begin

    SelStart := Length(Text);
    Perform(EM_SCROLLCARET, 0, 0);
        SetFocus;
  end;
end;

Stoney
Avatar billede nikrasitf Nybegynder
09. marts 2003 - 18:22 #5
Virker ikke, hvis der ikke er ændret på RichEdit's WndProc eller noget i den stil, fungere den jo som normalt.

Dvs den følger ikke med og align'er sidste linie i RichEdit med den sidste linie som vises visuelt.
Avatar billede nikrasitf Nybegynder
09. marts 2003 - 18:32 #6
Jeg viser lige helt præcis hva jeg vil.... :)

RichEdit'en:
+-------+
|a      |
|b      |
|c      |
|d      |
|e      |
|f      |
|g      |
|h      |
|i      |
+-------+


Normal resize fra oven stående:
+----------------+
|a              |
|b              |
|c              |
|d              |
|e              |
+----------------+


Hvor jeg vil have:
+----------------+
|e              |
|f              |
|g              |
|h              |
|i              |
+----------------+


Det virker også lidt med din metode med blot at flytte cursor'en,
men ved maximize for man med den metode:

+----------------+
|e              |
|f              |
|g              |
|h              |
|i              |
|                |
|                |
|                |
|                |
+----------------+

.. og ikke det som man startede med før resize'en som i f.eks. mIRC.

En anden vigtig ting er at metoden desværre heller ikke sørger for at
sidste linie sidder fast som i MEGET FAST, dvs ikke i ryk hvis højde på richedit'en
ikke tillade et lige antal linier.
Bunden skal sidde helt fast og det må så være i toppen af man kan risikere kun at se
en halvline eller noget i den stil.
Avatar billede siz23 Nybegynder
11. marts 2003 - 13:04 #7
prøv det her.

  with RichEdit1 do
  begin
      SelStart:=0;
      Perform(EM_SCROLLCARET, 0, 0);
      SelStart := Length(Text);
      Perform(EM_SCROLLCARET, 0, 0);
      SetFocus;
  end;

håber du kunne bruge det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester