AGB  ·  Datenschutz  ·  Impressum  







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

Die seltsame Combobox

Ein Thema von Delbor · begonnen am 11. Jan 2018 · letzter Beitrag vom 11. Jan 2018
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Die seltsame Combobox

  Alt 11. Jan 2018, 20:04
Hi zusammen

Die Lösung bahnte sich an, als ich versuchte, die Prozedur von der Mainform aus aufzurufen:
Delphi-Quellcode:
procedure TPDFOfficerMain.FormCreate(Sender: TObject);
  var LFTextSelection : String;
begin
 // DoTextSelectionEvent := PathFinderFrame1.OnTextSelectionEvent;
  FAppDataPath := 'C:\PDFOfficerAppdata';
  PathFinderFrame1.OnTextSelectionEvent := DoTextSelectionEvent;
// PathFinderFrame1.FileMaskInit; //<== Aufruf von hier
  if Fileexists(FAppDataPath+'\TVNameitems.txt') then
  begin
    FSettingDefault := False;
    TVName.LoadFromFile(FAppDataPath+'\TVNameitems.txt');
  end
  else
  begin
    FSettingDefault := true;
    FillTVName;
  end;
end;
Das war erstmal nicht möglich, da ich die Prozedur im Basisframe gewohnheitsmässig private deklariert hatte. Also änderte ich das und verschob die Deklaration in den Puplic-Abschnitt.
Dabei vergass ich, den Aufruf von FileMaskInit aus dem Constructor des Basisframes zu entfernen.
Resultat: Die Items der Combobox waren jetzt doppelt vorhanden.
Fazit: der Basisframe vererbt an seine Instanzen nur das, was public deklariert ist - was ich eigentlich wissen müsste.

AddItem ist hier wirklich komplett falsch. Du musst schon Items.Add nehmen. Dann sollte es auch gehen.
Leider hast du meinen Eingangsthread etwas flüchtig gelesen - ich hatte beides versucht, und beides ging schief. Ich bin übrzeugt: public deklariert würde auch beides funktionieren.
Die Hilfe führt AddItem als Methode von TCustomCombo auf.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Die seltsame Combobox

  Alt 11. Jan 2018, 21:04
Hi Delphi.Narium

Das mit dem leeren der Combobox muss ich noch einbauen, da deren Itemstext ansonsten bei jeder Änderung um die Länge des Arrays zunimmt - auf der andern Seite zeigte mir genau das doppelte Vorhandensein der Items meinen Fehler auf.

Das Feld FDefaultType hatte ich eingeführt, weil es möglich sein soll, einen Defaulttype anzuzeigen. Allerdings hatte ich da einen Denkfehler begangen: der Feldname FDefaultType kann nicht Teil meines Stringarrays sein, sondern allenfalls eines Aufzählungstyps wie zB.

TFileType = (ftDefaultType , ftBMP, ftNEF, ftJPG, ftPNG,ftPDF);

Hier könnte eine Funktion in einem Case-of-Block einen ExtenssionString ermitteln:
Delphi-Quellcode:
  case FFileType of of
  ftDefaultType : Result := '.'
  ftBMP : Result := '.bmp';
  ftNEF : Result := '.nef';
  ftJPG : Result := '.jpg';
  ftPNG : Result := '.png';
  ftPDF : Result := '.pdf';
  end;
Beim Array wärs grundsätzlich dasselbe, mit dem Unterschied, dass die gesuchten Strings (Result der Funktion) an den Ordinalpositionen schon vorhanden sind.

Ich schreibe dies hier übrigens so ausführlich, weil mir die Unterschiede von Aufzählungs-, Mengen- und Arraytypen keineswegs wirklich geläufig sind und ich hoffe, dies auf diese Weise etwas verbessern zu können.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Die seltsame Combobox

  Alt 11. Jan 2018, 21:07
Setz mal den ItemIndex
  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 20:21 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