Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Eigene listbox mit TObjeklist Scroll problem

  Alt 18. Jun 2007, 16:41
Ich bin dabei mir eine kleine GUI selbst zu basteln. Im Anhang ist das neuste Bild.
Jetzt das Problem:
Das Problem ist wieder beim Scrollen.
Ich habe das jetzt anders gemacht, ich bewege im hintergrund ein ScrollRect von Typ TRect.
Was mir ein Bildausschnitt aus einer TBitMap per BitBtl(unter Lazarus geht CopyRect leider nicht, nur unter Windows und ich arbeitet unter Linux) kopiert.

Ich kann jetzt zwar mit der Maus schön in X und in Y Richtung Scrollen.
Ich kann auch per Tastertur scrollen, das Problem ist nur:
ich möchte das ich mit den Pfeiltasten auch den Scroll Balken bewege.

Und das ist das Problem.

Ich Poste mal etwas code:
Delphi-Quellcode:
procedure TMyListBox.KeyEv(typ: Integer; key: Word);
var
  tmp,w,m:Integer;
  orr:Trect;
  g:extended;
begin
  if typ = 0 then begin
    if key = VK_DOWN then begin
      tmp:=MouseDownIndex+1;

      g:=0;
      if tmp <= Count then begin
        if items[tmp].MyCompo.ry >= ScrollRect.top then begin
          if items[tmp].MyCompo.ry-(sh-hh-7) > 0 then begin
            ScrollRect.Top:=items[tmp].MyCompo.ry-(sh-hh-7);
            ScrollRect.Bottom:=ScrollRect.Top+sh;
            if fScrollbarY.Position <=0 then
              fScrollbarY.fPosition:=1
            else begin
              m:=1;
              // Ein Versuch, geht jedoch nicht
              if temp2 > DisPlayCount+1 then begin
                temp2:=0;
                m:=disPlayCount+1;
              end
              else
                inc(temp2);
              fScrollbarY.fposition:=fScrollbarY.fposition+disPlayCount;
            end;
          end;
        end;
        SetItemindex(tmp);
      end;
    end;
  end;
end;
Das Haupt Problem ist einfach das mir ein Wert fällt. Wenn ich beim Scroll
fScrollbarY.Position:=fScrollbarY.Position+1 mache
geht das zwar, aber der wert ist zu klein. Wie kann ich diesen +1 berechnen ?

ScrollRect speicher genau den Bild Ausschnitt welcher Angezeigt werden soll.
fScrollbarY ist der Scrollbalken.

Ich hoffe einer von euch kann mir hier Weiter Helfen.

Vielen Dank Im Vorraus
Ich hoffe ihr habt das Problem Verstanden.
Miniaturansicht angehängter Grafiken
bildschirmfoto-gui_test_anwendung_122.png  
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat