I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
procedure TForm1.ScrollBar1Change(Sender: TObject); function LineCount: integer; var X, Y: integer; begin Result := 0; Y := length(Memo1.Text); if Y > 0 then for X := 1 to Y do if Memo1.Text[X] = #13 then inc(Result); end;
function GoToLine(LineNo: integer): string; var P1, P2, Y: integer; begin Y := 1; P1 := 0; P2 := pos(#13, copy(Memo1.Text, P1, Length(Memo1.Text))) - 1; while Y < LineNo do begin P1 := P1 + P2 + 2; {2 to include #13#10} P2 := pos(#13, copy(Memo1.Text, P1 + 1, Length(Memo1.Text))) - 1; inc(Y); end; Memo1.SetFocus; Memo1.SelStart := P1; Memo1.SelLength := P2; Result := Memo1.SelText; end;
begin ScrollBar1.Min := 1; ScrollBar1.Max := LineCount; GoToLine(ScrollBar1.Position); end;
procedure TForm1.ScrollBar1Enter(Sender: TObject); begin ScrollBar1Change(Self); end;
Undskyld... jeg kan godt se, at det virker for en memo, men jeg skal bruge det i en richedit (det burde jeg have skrevet), og her virker det mærkeligt nok ikke...
Jeg troede bare man kunne skrive noget i stil med:
memo1/richedit1.???.scrollbarposition??:=??
I øvrigt kunne du (tror jeg nok) bare have skrevet ScrollBar1.Max := memo1.lines.count; i stedet for hele den funktion der tæller linjer...
Ved du hvilke ændringer, der skal laves i dit forslag for at få det til at virke for en richedit?
ok det her skulle virke, det er måske ikke den bedste måde, men hvad kan du forlange :)
procedure TForm1.GoToLine(Nr: integer); var Text: string; i: integer; begin Text := ''; for I := 0 to Nr do Text := Text +#13#10+ RichEdit1.Lines.Strings[I];
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.