AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lisbox History - Problemchen

Ein Thema von turboPASCAL · begonnen am 10. Sep 2005 · letzter Beitrag vom 10. Sep 2005
Antwort Antwort
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Lisbox History - Problemchen

  Alt 10. Sep 2005, 18:41
Hi, nu hab ich auch mal wieder ein kleines Problemchen...

...Ich habe ein kleines Programm erstellt (na so was ) mit einer Listbox in der ich eine History, äh Verlauf eingebaut habe:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  
  if ComboBox1.Text <> 'then
  begin
    RunConsoleApp(ComboBox1.Text, Memo1.Lines);

    // Historie
    if ComboBox1.Text <> ComboBox1.Items[0] then
    begin
      ComboBox1.Items.Insert(0, ComboBox1.Text);

      if ComboBox1.Items.Count > 5 then
        ComboBox1.Items.Delete(ComboBox1.Items.Count-1);
    end;
  end;
end;
...das funktioniert soweit ganz gut, aber wenn ich den letzten Eintrag aus der Liste aufrufe dann verschwindet in der Eingabezeile mein Text nachdem ich den "Start" Button gedrückt habe.

Ich finde das Problem nicht, kann es jemand finden ?
Angehängte Dateien
Dateityp: zip contogui.exe_145.zip (209,7 KB, 8x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Lisbox History - Problemchen

  Alt 10. Sep 2005, 19:20
Hi Matti,

Zitat von turboPASCAL:
Ich finde das Problem nicht
dann ist ja alles in Ordnung.

Um dein Problem zu verstehen müsste man wissen, ob du mit den Standardeinstellungen der ComboBox arbeitest, aus welchem EventHandler dein Code stammt, etc.

Die einfache history Funktionalität finde ich nicht so berauschend - mit einer kleinen Erweiterung erhalte ich eine MRU Funktionalität (most recently used):

Delphi-Quellcode:
const
  MAX_HISTORY = 5;

procedure TDemoForm.ComboBoxKeyPress(Sender: TObject; var Key: Char);
var
  index: integer;
begin
  if Key = Chr(VK_RETURN) then
    with Sender as TComboBox do
    begin
      // no duplicates
      index := Items.IndexOf(Text);
      if index > -1 then
        Items.Delete(index);
      // store new item
      Items.Insert(0, Text);
      // watch for limit
      if Items.Count > MAX_HISTORY then
        Items.Delete(MAX_HISTORY);
    end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Lisbox History - Problemchen

  Alt 10. Sep 2005, 19:29
So, habe den Code oden vervollständigt.

Werde mir morgen mal deine Version zu gemüte führen, für heute mach ich erst mal schluss mit Delphi. Thx.

(habe mir meine Esc-Taste abgebrochen... )
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:40 Uhr.
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