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.