AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Entsprechendes Listbox item nach drag löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Entsprechendes Listbox item nach drag löschen

Ein Thema von Ajintaro · begonnen am 6. Mär 2014 · letzter Beitrag vom 6. Mär 2014
 
Popov
(Gast)

n/a Beiträge
 
#3

AW: Entsprechendes Listbox item nach drag löschen

  Alt 6. Mär 2014, 15:21
Da ich es schon lange nicht gemacht habe, mal so zum Spaß:

Delphi-Quellcode:
{08/15 Klasse um sie als Objekt an ListBox-Item anzuheften. Kann auch was anderes sein, Hauptsache Objekt.}
type
  TTest = class
    private
      FText: String;
    public
      constructor Create(S: String);
      property Text: String read FText;
  end;

constructor TTest.Create(S: String);
begin
  inherited Create;
  FText := S;
end;

//------------------------------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  Test: TTest;
begin
  for i := 1 to 4 do
  begin
    Test := TTest.Create('Objekt von ListBox1' + IntToStr(i));
    with ListBox1 do Items.AddObject(Name + IntToStr(i), Test);
    Test := TTest.Create('Objekt von ListBox2' + IntToStr(i));
    with ListBox2 do Items.AddObject(Name + IntToStr(i), Test);
    Test := TTest.Create('Objekt von ListBox3' + IntToStr(i));
    with ListBox3 do Items.AddObject(Name + IntToStr(i), Test);
    Test := TTest.Create('Objekt von ListBox4' + IntToStr(i));
    with ListBox4 do Items.AddObject(Name + IntToStr(i), Test);
  end;

  with ListBox1 do DragMode := dmAutomatic;
  with ListBox2 do DragMode := dmAutomatic;
  with ListBox3 do DragMode := dmAutomatic;
  with ListBox4 do DragMode := dmAutomatic;
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  LB1, LB2: TListBox;
begin
  if not ((Sender is TListBox) and (Source is TListBox)) then Exit;

  LB1 := TListBox(Source);
  LB2 := TListBox(Sender);

  if LB1.ItemIndex < 0 then Exit;

  LB2.AddItem(LB1.Items[LB1.ItemIndex], LB1.Items.Objects[LB1.ItemIndex]);
  LB1.Items.Delete(LB1.ItemIndex);
end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TListBox;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  Test: TTest;
  LB: TListBox;
begin
  if not (Sender is TListBox) then Exit;

  LB := TListBox(Sender);
  if LB.ItemIndex < 0 then Exit;

  Test := TTest(LB.Items.Objects[LB.ItemIndex]);

  ShowMessage('Text Item: ' + LB.Items[LB.ItemIndex] + ^j +
              'Text Objekt: ' + Test.Text );
end;
Eigentlich müßten die Objekte in den ListBoxen vorher noch freigegeben werden. Das habe ich hier gelassen.

//Achso, alle vier ListBoxen nutzen überall die gleichen Prozeduren.
Angehängte Dateien
Dateityp: zip ListBoxDragAndDrop.zip (3,9 KB, 2x aufgerufen)

Geändert von Popov ( 6. Mär 2014 um 15:26 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz