Einzelnen Beitrag anzeigen

Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#4
  Alt 2. Jul 2003, 13:05
Jetzt hab ich schon mal eine Lösung gefunden für Visual Bsaic, aber gibts etwas vergleichbares zu "EnsureVisible" in Delphi?
Delphi-Quellcode:
Private Sub Form_Load()
  Dim x As Integer
  
  With ListView1
    For x = 1 To 20
      .ListItems.Add Key:="foo" & x, Text:="foo" & x
    Next x
    
    .SelectedItem = .ListItems("foo20")
    .SelectedItem.EnsureVisible
  End With
End Sub
Quelle: http://msdn.microsoft.com/library/de...l/listview.asp

[edit]

ich bin schon mal wieder etwas weiter gekommen:

Delphi-Quellcode:
var
  pos : Integer;
  DisplayRec: TRect;
begin
  uhrzeit := Copy(uhrzeit,1,4)+'0';
  lv := lvbox[PC1.ActivePageIndex+1]; // Auswahl des akt. ListViews

  for i := 0 to lv.Items.Count -1 do
    if lv.Items[i].SubItems[1] = uhrzeit then
    begin
      lv.SetFocus;

      DisplayRec := lv.Items[0].DisplayRect(drBounds);
      pos := (DisplayRec.Bottom - DisplayRec.Top) * i;
      lv.Scroll(0,pos);

      break;
    end;
end;
Ist zwar noch nicht ganz ausgereift, zumindest für meine Zwecke, aber grundsätzlich funktioniert es schon mal .


[edit2]
und ich hab noch eine Lösung gefunden, und zwar "MakeVisible" ist aber leider für meine Zwecke nicht ganz das wahre ...


[edit3]
Hab mich jetzt für die "DisplayRect"-Lösung entschieden und verschieb "pos" noch um 1/3 der ListView-Höhe nach unten, dann paßt das ganz gut.
  Mit Zitat antworten Zitat