Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ini über Listboxauswahl in Label anzeigen (https://www.delphipraxis.net/41799-ini-ueber-listboxauswahl-label-anzeigen.html)

Grolle 8. Mär 2005 20:20


Ini über Listboxauswahl in Label anzeigen
 
Hallo!
Ich möchte mir die Details einer Ini-Sektion

[Name]
Nummer=324123044
Standort=Hamburg

in einem Label anzeigen lassen, wenn entsprechende Sektion
in der ListBox ausgewählt ist.
Wie muss ich da den folgenden Source erweitern?
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var
selected : integer;
begin
  selected := SendMessage(ListBox1.Handle,LB_GETCURSEL,0,0);
  Label16.Caption := (ListBox1.Items.Strings[selected]);

end;

sniper_w 8. Mär 2005 20:30

Re: Ini über Listboxauswahl in Label anzeigen
 
Viel lebhafter wäre es wenn du es OnMouseMove machen würdest:
Delphi-Quellcode:
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
 var Pos:Integer;
begin
 Pos := ListBox1.ItemAtPos(Point(x,y),True);
 if Pos<>-1 then
 begin
  ListBox1.Selected[Pos] := True;
  if ListBox1.Count-1 = Pos then
   Label1.Caption := ListBox1.Items[Pos]
  else
   Label1.Caption := ListBox1.Items[Pos]+ #10+#13+ ListBox1.Items[Pos+1];
  // usw je nach dem wieviel es                    
  // einträge pro Sektion gibt
 end;
end;

Matze 8. Mär 2005 20:33

Re: Ini über Listboxauswahl in Label anzeigen
 
Wenn in der ListBox die Namen stehen, könnte man das auch so in der Art lösen (ungetestet):

Delphi-Quellcode:
  Ini := TIniFile.Create('...');
  try
    Label1.Caption := Ini.ReadString(ListBoxName.Items[ListBoxName.ItemIndex], 'Nummer', '');
    Label2.Caption := Ini.ReadString(ListBoxName.Items[ListBoxName.ItemIndex], 'Stadort', '');
  finally
    FreeAndNil(Ini);
  end;
Nachtrag: Fehler korrigiert

Grolle 8. Mär 2005 20:36

Re: Ini über Listboxauswahl in Label anzeigen
 
Hi!
Wie aber kann ich denn die anderen Ini Einträge zur
passenden Section in dem Label anzeigen lassen? Es soll
nur das markierte Listboxfeld(Ini-Section + zugehörige Einträge)
in dem Label angezeigt werden und das mache ich
doch mit dem ListboxClick, oder? :gruebel:

Matze 8. Mär 2005 20:39

Re: Ini über Listboxauswahl in Label anzeigen
 
Zitat:

Zitat von Grolle
und das mache ich
doch mit dem ListboxClick, oder? :gruebel:

Wenn es angezeigt werden soll, sobald du auf die ListBox klickst, dann im OnClick (Überprüfe davor aber, ob der ItemIndex <> -1 ist). Soll das per Button erfolgen, kannst du, wie ich beschrieben habe, einfach auf ItemIndex zugreifen.

Ist dieser 0, ist der erste Eintrag ausgewählt, bei 1 der 2. etc.

Edit: Tippfehler verbessert ^^

IngoD7 8. Mär 2005 20:42

Re: Ini über Listboxauswahl in Label anzeigen
 
Zitat:

Zitat von Grolle
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var
selected : integer;
begin
  selected := SendMessage(ListBox1.Handle,LB_GETCURSEL,0,0);
  Label16.Caption := (ListBox1.Items.Strings[selected]);

end;

Ich weiß ja nicht, wie das in D3 ist, aber D7 hat bei einer Listbox die Eigenschaft Selected. Da finde ich es unglücklich, wenn mit demselben Bezeichner ein Integer deklariert wird.

Ansonsten: Es gibt (wie auch schon von Anderen weiter oben erwähnt) bei Listbox auch die Eigenschaft ItemIndex. Diese gibt dir direkt den ausgewählten Eintrag an (den Index).

Grolle 8. Mär 2005 20:43

Re: Ini über Listboxauswahl in Label anzeigen
 
Ist im OnClick. Wie aber lade ich die Einträge aus der Ini-Sektion
(Nummer + Standort). Meine Frage war wohl nicht ganz so klar?

Matze 8. Mär 2005 20:48

Re: Ini über Listboxauswahl in Label anzeigen
 
Zitat:

Zitat von Grolle
Ist im OnClick. Wie aber lade ich die Einträge aus der Ini-Sektion
(Nummer + Standort). Meine Frage war wohl nicht ganz so klar?

Geht mein obiger Code denn nicht? Hast du ihn überhaupt ausbrobiert?

IngoD7 8. Mär 2005 20:48

Re: Ini über Listboxauswahl in Label anzeigen
 
Zitat:

Zitat von Grolle
Wie aber lade ich die Einträge aus der Ini-Sektion
(Nummer + Standort).

Z.B. mit der Methode TIniFile.ReadString(..).
Siehe Online-Hilfe für TIniFile.

Grolle 8. Mär 2005 20:51

Re: Ini über Listboxauswahl in Label anzeigen
 
@Matze
Jetzt funktioniert er. Ich hatte mich vertippt. :pale:
Vielen Dank: Grolle


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz