Einzelnen Beitrag anzeigen

Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TListBox - Eintrag makrieren (Fokus setzen?)

  Alt 16. Nov 2003, 13:24
Zitat:
Hmmm - uff! Ich drück mich einfach mal nicht richtig aus - oder?

Nein ! Du probierts einfach nicht die Vorschläge aus, die du bekommst!

Wenn Du das mit dem Itemindex in dein "Programm" einbaust funktioniert es so
wie Du willst

Delphi-Quellcode:
procedure TMainForm.UpButtonClick(Sender: TObject);
var
  i : Integer;
begin
  if EditList.ItemIndex > 0 then
    begin
      i := EditList.ItemIndex;
      EditList.Items.Move(i, i-1);
      EditList.SetFocus;
      EditList.ItemIndex := i-1;
    end;
end;

procedure TMainForm.DownButtonClick(Sender: TObject);
var x,y: Integer;
    tstr: string;
begin
  x:= EditList.ItemIndex;
  y:= EditList.Items.Count;
  str(x, tstr);
  TempLabel.Caption:= tstr;
  try
    if (x < (y - 1)) and (y > 1 ) then
      EditList.Items.Move(x, x + 1);
  except
  end;
    EditList.SetFocus;
    EditList.ItemIndex := x + 1;// := true;
end;
Zitat:
Falsch ist es nicht wirklich, wie ich finde.
Doch.
Die Logik Deines Programms, soweit man überhaupt schon davon sprechen kann ist :
Verschiebe den Eintrag auf dem aktuellen Formular wo der Button ist.

Du codest aber:
Verschiebe den Eintrag auf dem Formular, das in der globalen Variable MainForm steht.

Fügt doch mal spasseshalber einen Button Test zu, mit folgenden Code:

Delphi-Quellcode:
with TFormMain.Create(nil) do
  begin
    Left := Left + Width;
    Show;
  end;
Und nun schau Dir dein Programmverhalten an, wenn Du MainForm verwendest.
Macht das Verhalten Sinn ? Nein!
Solltest Du dies Formular irgendwo wiederverwenden wollen oder den Code
musst Du ausserdem völlig unnötige Änderungen vornehmen, die dir der Compiler
zudem nicht anzeigt, wenn irgendwo ein MainForm durch die uses-Anweisung bekannt ist.
Also weder logisch , noch wartbar, noch änderungsfreundlich und deshalb: einfach falsch


Bernd

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
Bernd Ua
  Mit Zitat antworten Zitat