Avatar billede kroning Nybegynder
05. februar 2008 - 19:34 Der er 11 kommentarer og
1 løsning

TRichEdit er for langsom

Jeg har brug for at sætte op til 200 TRichEdit ind i en ScrollBox. Desværre er TRichEdit for langsom til dette og det går helt galt når man resizer og derefter scroller da højden på alle richedits så skal ændres.
Det eneste jeg har brug for er at kunne sætte text til Bold eller ej og farven til sort eller hvid. Alt andet som TRichEdit kan har jeg ikke brug for.

Jeg har smidt en demo her der viser hvad jeg har brug for:
www.kroning.dk/Project1.zip

Den tid det tager at sætte de 200 richedits ind skulle gerne ned på det halve.
Når man ændre størrelsen på vinduet og derefter scroller er det meget sløvt, her kunne det være smart hvis man kunne resette højden på alle RichEdits på en gang.

Jeg bruger Delphi 7 pro.
Avatar billede dkn Nybegynder
05. februar 2008 - 20:11 #1
Nu ved jeg ikke hvad din opgave stiller af krav. Men med 200 richedits så ville jeg sku arbejde i en anden løsning. Ligefør dette var nok årsag til at bruge twebbrowser...

Prøv at tag en revurdering af hvordan de data skal vises, tror ikke det kan lykkes at få til at køre ordentlig med richedits.
Avatar billede kroning Nybegynder
05. februar 2008 - 20:30 #2
Det kører nu ganske fint med richedit bortset fra hastigheden, jeg håbede på at nogen måske kendte til en komponent (freeware) der kunne det jeg havde brug for men hurtigere.
Hvis jeg bruger TMemo er der ingen problemer med hastigheden men den mangler så nogle formaterings muligheder.
Men jeg havde nu ikke tænkt på twebbrowser, det var måske en mulighed.
Avatar billede kroning Nybegynder
05. februar 2008 - 23:31 #3
TWebBrowser kan nok ikke bruges for jeg skal kunne vælge en af de 200 og derefter trykke på en buttom og skulle så gerne vide hvilken en der er valgt.
Avatar billede pidgeot Nybegynder
06. februar 2008 - 11:39 #4
Det er muligt at tilgå TWebBrowser-dokumenter i en JavaScript-agtig facon hvis du caster WebBrowser.Document til IHTMLDocument3 (mener da det var den interface). Du burde kunne lave noget ud fra den ide.
Avatar billede kroning Nybegynder
06. februar 2008 - 12:22 #5
Jeg har også brug for at få at vide når der vælges en post da diverse knapper skal enables/disables alt efter hvilken post der er valgt. Ved ikke om nogle at de events der findes kan bruges til dette.
Avatar billede falster Ekspert
06. februar 2008 - 15:08 #6
Der er jo KOL - Key Objects Library - der giver forbavsende små exe'r med Delphi. Men om det påvirker hastigheden eller andet ved jeg ikke nok til at kunne udtale mig om.

http://kolmck.net/
Avatar billede hrc Mester
07. februar 2008 - 07:59 #7
Måske kan du vinde lidt ved denne her. Den reducerer i alt fald antallet af justeringer.

procedure TfrmMain.RichEditResizeRequest(Sender: TObject; Rect: TRect);
var
  RichEdit: TRichEdit;
begin
  RichEdit := Sender as TRichEdit;
  if RichEdit.Showing then // Denne her gør en forskel
    RichEdit.Height := Rect.Bottom - Rect.Top;
end;
Avatar billede kroning Nybegynder
05. marts 2008 - 11:51 #8
Jeg bliver nok nød til at lære at lave en komponent bygget på f.eks. TMemo da jeg ikke har fundet nogen anden løsning der er hurtig nok.
Avatar billede hrc Mester
05. marts 2008 - 14:45 #9
Hjalp mit sidste tip ikke en lille smule? Fik lige en anden vild idé.

Bruger du TListView og laver OwnerDraw på denne så kan du udnytte dens virtuelle liste-funktionalitet.

Det visuelle skal enten tegnes i dens OnDrawField (eller ligende) - eller så må det være muligt at proppe en TRichEdit ind der.

Når listviewet kører virtuel, opretter den kun de linjer der ses på skærmen og så scroller den i en bagvedliggende liste. Du har dermed et lille vindue der kører op og ned af denne.

At resize 10 TRichEdits må være hurtig nok.

Håber du forstod noget af det. Vil prøve at se om der er tid til at lege lidt med det i aften.
Avatar billede kroning Nybegynder
19. august 2008 - 10:02 #10
Vil du smide et svar.
Avatar billede hrc Mester
19. august 2008 - 12:05 #11
Mig? Gerne, men blev du overhovedet hjulpet?
Avatar billede kroning Nybegynder
19. august 2008 - 13:17 #12
Jeg har ikke fået det lavet endnu men en virtuel scroll liste af en eller anden art er helt sikkert løsningen.
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

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