Scrollbar - vertikal ?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

pluto hat geschrieben: zu 2: das dürfte schwer werden, aber machbar..... evlt. werde ich es tuen....
Fänd ich gut.


Der Nachteil bei Lösung 1 ist eben, dass man den Bug nur für das eigene Projekt umgeht. Bei Lösung 2 kann bei der Beseitigung des Bugs ein Nutzen für die Gemeinschaft entstehen (wenn man die Beseitigung dem Projekt zuspielt)...

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

es sei denn ich schafe es bei "lösung 1" es soweit zu bringen das ich aus meiner idee eine eigene scrollbox erstelle ist schließlich garnicht mal zu aufwendig falst meine idee funktnieren sollte... ich werde mir mal denn qullcode anschauen von der scrollbox(vorrausgesetzt ich finde ihn :? )

dann ist nur noch die frage wenn es bei mir funktniert, wie erstellle ich ein patch ?
damit davon alle was haben !

ich glaube ich werde es so machen:
Wenn ich es nicht schaffen sollten den bug in der scrollbox zu behben werde ich einie eigene ersrtellen.... ob sie so funktniert wie die von delphi kann ich natrülich nicht versprechen !
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Ich habe das Gefühl, der knight kennt sich in der Organisationsstruktur des Projektes gut aus. Wenn du willst kannst du ihn ja mal ansprechen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

kann mir jemmand sagen wie ich lazarus beibringen die qullcode zu nutzen?
sobalt ich unter /usr/share/lazarus/lcl eine änderung mache in irgeneine datei(ich muss natrülcih vohrer die rechte ändern) wird diese datei garnicht genommen beim complieren...

ich hoffe ihr versteht wie ich das meine !
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Ja. Lazarus führst du natürlich als kompilierte binäre Datei aus.

Wenn du Änderungen am Quelltext vornimmst, musst du die LCL neu kompilieren. Nachdem du Einstellungen unter Werkzeuge-->"Lazarus erstellen" einrichten vorgenommen hast, geht das unter "Werkzeuge" -> "Lazarus erstellen"

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

d.h. sobalt ich was änder muss ich alles neu komplieren ?

dann muss ich es mir nochmal überlegen ob es nicht schneller ging eine eigne komponenten zu schreiben ! es muss doch irgenwie gehen das lazarus direkt denn qullcode nutzen und keine bin dateien..... ich kann mir beim besten willen nicht vorstellen das die entwickler von lazarus nach jeder änderung lazarus neu erstellen !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

toll ist ja gans klasse, dann ist es aber keine scollbox mehr weil sich die box nur noch an die größe des panles anpasst.... und es gibt auch keine scrollbalken !!!
hab ich das gesagt ? MANN
ich hab gesagt der fehler ist behoben die scrollbox verhält sich einfach nur richtig !

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich glaube du hast mich falsch verstanden!
was bringt mir das bei autozie das sich die höhe und breite anpasst anstant die scrollalken ?

(oder muss ich lclverzeichnis updateten ?)
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Bei Autosize passt sich nicht höhe und Breite an sondern die Scrollbalken !!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

seltsamm bei mir aufjedenfall nicht !
da passen sich die höhe und breiten der scrollbox an und es verhält sich so wie bei einem tlabel wenn da autosize auf true steht !

naja evlt. reden wir ja auch aneinander vorbei !

währe schön wenn sich noch jemmand andres so wortmelden könnte !
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:
ich hab gesagt der fehler ist behoben die scrollbox verhält sich einfach nur richtig !
Bei welcher Version? Ich habe mit 0.9.20 beta (GTK1) auch noch ein paar Problemchen.
z.B. Ein TImage in einer TScrollBox mit Autosize=true:

Wenn ich die Dimensionen des Bildes programmatisch ändere (Width, Height) dann
passiert erstmal nichts mit der Scrollbox. Erst wenn ich die Form Resize, passen sich die Scrollbars der Inhaltsgrösse an. Sie verschwinden aber nicht wieder, wenn ich das Image wieder kleiner mache als die Scrollbox.
Vielleicht kann man dazu einen Workaround finden, aber so ganz toll funzt das nicht.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

das seltsamme ist: in der idee funktniert ist, da werden die scrollbalken angezeigt und auch die größe berechnet sobalt ich das programm compliere und starte verschwindet die größe der scrollbalken !

ich würde es tool finden zu erfarhen wo ich mir die datei downloaden kann wo der fehler von der scrollbox behoben ist !

weil meine eigene lösung funktniert leider nicht :(
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

In der aktuellen version vom SVN geht das !
Übrigends sind seit heut auch die Cursors implementiert
Edit: funktionieren aber anscheinend noch net

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

dann muss ich mir mal ansehen wie ich die SVN version auf mein rechner bekomme !

vielen dank !
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich habe heute mal alle stellen die ich für Intresannt fand in der LazarusRichView zusammen Getragen... ich hoffe ihr könnt sie mir etwas genauer beschreiben....

Weil ich steige da einfach nicht durch... weil es auch mit Mahte zu tuen hat...

Code: Alles auswählen

procedure TRichView.Format_(OnlyResized:Boolean; depth: Integer; Canvas: TCanvas;
          OnlyTail: Boolean);
var i: Integer;
    x,b,d,a: Integer;
    mx : Integer;
    oldy, oldtextwidth, cw, ch: Integer;
    sad: TScreenAndDevice;
    StyleNo: Integer;
    StartLine: Integer;
    StartNo, EndNo, StartOffs, EndOffs: Integer;
begin
   if smallstep = 0 then exit;
   if (csDesigning in ComponentState) or
      not Assigned(FStyle) or
      skipformatting or
      (depth>1)
   then exit;
   skipformatting := True;
 
   if depth=0 then StoreSelBounds(StartNo, EndNo, StartOffs, EndOffs);
 
   OldY := VPos*SmallStep;
 
   oldtextwidth := TextWidth;
 
   mx := max(ClientWidth-(FLeftMargin+FRightMargin), GetMaxPictureWidth);
   if mx<FMinTextWidth then mx := FMinTextWidth;
   if FClientTextWidth then begin { widths of pictures and maxtextwidth are ignored }
     TextWidth := ClientWidth-(FLeftMargin+FRightMargin);
     if TextWidth<FMinTextWidth then TextWidth := FMinTextWidth;
     end
   else begin
      if (mx > FMaxTextWidth) and (FMaxTextWidth>0) then
        TextWidth := FMaxTextWidth
      else
        TextWidth := mx;
   end;
   if not (OnlyResized and (TextWidth=OldTextWidth)) then begin
     if OnlyTail then begin
        StartLine := LastLineFormatted+1;
        b:= TextHeight;
        end
     else begin
        StartLine := 0;
        b := 0;
        ClearTemporal;
     end;
     x:=0;
     d:=0;
     InfoAboutSaD(sad, Canvas);
     sad.LeftMargin := MulDiv(FLeftMargin,  sad.ppixDevice, sad.ppixScreen);
     for i:=StartLine to lines.Count-1 do begin
       StyleNo := TLineInfo(Lines.Objects[i]).StyleNo;
       if not (((StyleNo = rvsPicture) and (not (rvdoImages in DisplayOptions))) or
          ((StyleNo = rvsComponent)and(not (rvdoComponents in DisplayOptions))) or
          (((StyleNo = rvsBullet) or (StyleNo = rvsHotspot))and(not (rvdoBullets in DisplayOptions)))) then
         FormatLine(i,x,b, d,a, Canvas, sad);
     end;
     TextHeight := b+d+1;
     if TextHeight div SmallStep > 30000 then
       SmallStep := TextHeight div 30000;
     AdjustJumpsCoords;
     end
   else
     AdjustChildrenCoords;
   HPos := 0;
   VPos := 0;
   cw := ClientWidth;
   ch := ClientHeight;
   UpdateScrollBars(mx+FLeftMargin+FRightMargin, TextHeight div SmallStep);
   if (cw<>ClientWidth) or (ch<>ClientHeight) then begin
     skipformatting := False;
     ScrollTo(OldY);
     Format_(OnlyResized, depth+1, Canvas, False);
     end;
   if OnlyResized then ScrollTo(OldY);
   if OnlyTail then ScrollTo(TextHeight);
   if depth=0 then RestoreSelBounds(StartNo, EndNo, StartOffs, EndOffs);
   skipformatting := False;
   LastLineFormatted := Lines.Count-1;
end;  
// Hier finde ich es überraschend das die Gerbete methode von Custum Controll aufgerufen wird.
denn TRichView ist von  TRVScroller abgeleitet das wiederum von TCustumControll stammt.
Dort wird aber MoveMove gar nicht verwendet...
procedure TRichView.MouseMove(Shift: TShiftState; X, Y: Integer);
var i, no, offs,ys: Integer;
begin
    ScrollDelta := 0;
    if Y<0 then ScrollDelta := -1;
    if Y<-20 then ScrollDelta := -10;
    if Y>ClientHeight then ScrollDelta := 1;
    if Y>ClientHeight+20 then ScrollDelta := 10;
    inherited MouseMove(Shift, X, Y);
Was bedeutet die zahl: 30000 immer wieder ?
Meine Suche im Internet hat ergeben das es eine Textbegrenzung unter win 95 und 98 gab das heiß es konnten nur 30000 Zeichen geladen werden... ist das hier auch der Fall ?


SmallStep wird mit 10 Installisiert.....

Ich habe es selber noch mal versucht und bin zu den Schluss gekommen, das ich ein Mindens wert brauche z.b. 20 Pixel ist eine Zeile hoch.... und um die wird gescrollt.

Wenn eine Komponente meine Scrollbox nutzt muss sie halt diesen Wert ändern/anpassen..

Leider müsste ich disese 20 Pixel natürlich irgendwie anpassen....
Und das ist im Moment das Problem. Ich dachte das währe Mischung Rechnen.. .Weil mit Prozent komme ich nicht weiter... der Wert Passt nicht.

Es währe toll wenn ich/wir dieses Problem endlich gelöst hätten.

PS: ich hoffe das ist inordnung das ich die Code stellen gepostet habe, weil das Projekt ist ja sowieso OpenSoruce.... ich meine jetzt TRichView
MFG
Michael Springwald

Antworten