Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Eigene Scroll aus TScrollbar für mehrere Memofelder (https://www.delphipraxis.net/156236-eigene-scroll-aus-tscrollbar-fuer-mehrere-memofelder.html)

Portfreak 24. Nov 2010 14:46

Delphi-Version: 5

Eigene Scroll aus TScrollbar für mehrere Memofelder
 
Hi ich bin es wieder (:,

Wie oben schon genannt suche ich eine möglichkeit für mehrere Memofelder (1-5) EINEN vertikalen Scrollbalken zu definieren.
D.h. ich würde gerne bei betätigung des balkens ALLE Memofelder steuern. Zudem sollte die größe des balkens in Abhägigkeit zu den Einträgen sein.

Mit der eigenen Scroll funktion in Memo lässt sich dass nicht realisieren? Oder??

Lg

mkinzler 24. Nov 2010 16:23

AW: Eigene Scroll aus TScrollbar für mehrere Memofelder
 
Warum nicht?

Bummi 24. Nov 2010 16:32

AW: Eigene Scroll aus TScrollbar für mehrere Memofelder
 
Delphi-Quellcode:
unit Unit1;

interface
//201011 Thomas Wassermann
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,jpeg, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    ScrollBar1: TScrollBar;
    procedure ALLMemoChange(Sender: TObject);
    procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
      var ScrollPos: Integer);
  private
    Function CalcMaxScrollRange:Integer;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
Function TForm1.CalcMaxScrollRange:Integer;
var
  i:Integer;
begin
  Result := 0;
  for I := 0 to ComponentCount -1 do
    if Components[i] is TMemo then
      if TMemo(Components[i]).Lines.Count > Result then Result := TMemo(Components[i]).Lines.Count;
end;

procedure TForm1.ALLMemoChange(Sender: TObject);
begin
 ScrollBar1.Max := CalcMaxScrollRange;
end;

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
var
  i:Integer;
begin
  for I := 0 to ComponentCount -1 do
    if Components[i] is TMemo then
      with TMemo(Components[i]) do
        begin
          SelStart := Perform(EM_LINEINDEX, ScrollPos, 0);
          Perform(EM_SCROLLCARET, 0, 0);
        end;

end;

end.

Portfreak 24. Nov 2010 16:43

AW: Eigene Scroll aus TScrollbar für mehrere Memofelder
 
Puh echt tolle arbeit!! Danke!!!
Ich hoffe, dass ich keine weitere Frage zu Memos stellen werde xD...

Und Zitat "Das Problem steckt meistens zwischen den Ohren " triffts auf dem punkt ^^

stahli 24. Nov 2010 16:47

AW: Eigene Scroll aus TScrollbar für mehrere Memofelder
 
An das Kompliment häng ich mich mal dran (auch wenn es mich eigentlich nix angeht) :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz