AGB  ·  Datenschutz  ·  Impressum  







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

2spaltige Combobox

Ein Thema von Nalincah · begonnen am 16. Dez 2003 · letzter Beitrag vom 16. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

2spaltige Combobox

  Alt 16. Dez 2003, 09:08
Kennt jemand von euch ne ComboBox, in der man 2spaltige Einträge anzeigen lassen kann? Wie bei der ListView-Kompo.
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 11:12
Guten Morgen!

Verwende OwnerDraw und nutze das Event OnDrawItem zu zeichnen und die Liste der Combobox hat genau soviele Spalten wie Du es möchtest.

Gruss

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#3

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 11:30
Sorry, aber ich versteh irgendwie überhaupt nicht was du meinst
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 11:38
Combobox anklicken.

Im Objektinspektor nach der Eigenschaft "Style ausschau halten.

Dort "csOwnerDrawFixed" einstellen.

Auf die Registerseite Ereignisse wechseln

Doppelklick auf das Ereignis "OnDrawItem" ausführen.

Dort muss jetzt der Code hin, der die Einträge der Liste Deiner Combobox zeichnet.

Für die Listbox gibt es zu dieser Thematik ein Beispiel in der OH.

Gruss

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#5

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 11:59
Ahhh.Danke
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#6

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 13:57
Hallo Genaral2003,

ich hab' das zwar nicht mir einer ComboBox gemacht, sondern mit einer ListBox, dürfte aber wohl so ähnlich funktionieren.

Code:
{ lbxOrt.Style muß auf lbOwnerDrawFixed gesetzt sein für eigene Auswahlliste
  Ergebnis: 2-spaltige Tabelle (mehr ist möglich}

procedure TFKasse.lbxOrtDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
const
  mx = 2; // = Anzahl der Spalten
  arrWidth : array[0..mx] of integer = (0,120,150);
var
  strVal, strAll : string;
  i, pos1 : integer;
  rc : TRect;
begin
  lbxOrt.Canvas.Brush.Style := bsSolid;
  lbxOrt.Canvas.FillRect(Rect);
  // nur zur Sicherheit:
  arrWidth[mx] := lbxOrt.Width;
  // oben und unten bleiben unverändert
  rc.Top := Rect.Top;
  rc.Bottom := Rect.Bottom;
  { Die einzelnen Spalten müssen durch ';' getrennt sein }
  strAll := lbxOrt.Items[Index];      // z.B.: "Ortename;12345"
  for i := 0 to High(arrWidth) - 1 do begin
    { Zeichenbereich für erste Spalte }
    rc.Left := Rect.Left + arrWidth[i] + 2;
    rc.Right := Rect.Left + arrWidth[i+1] - 2;
    { Text für erste Spalte ausfiltern }
    pos1 := Pos(';', strAll);
    if pos1 > 0
      then strVal := Copy(strAll, 1, pos1 - 1)
      else strVal := strAll;
    { Text ausgeben }
    lbxOrt.Canvas.TextRect(rc, rc.Left, rc.Top, strVal);
    { Trennlinie zwischen Spalten zeichnen }
    lbxOrt.Canvas.MoveTo(rc.Right, rc.Top);
    lbxOrt.Canvas.LineTo(rc.Right, rc.Bottom);
    { Text für nächste Spalte ausfiltern }
    strAll := Copy(strAll, pos1 + 1, Length(strAll) - pos1);
  end;
end;
Das Ergebnis, zweispaltige Liste Ort | Plz, habe ich als Bild hinterlegt.

mfg
eddy
Miniaturansicht angehängter Grafiken
liste_ort-plz.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#7

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 14:05
Ich versteh nicht ganz wieso du der Constante arrWidth

Delphi-Quellcode:
const
  mx = 2; // = Anzahl der Spalten
  arrWidth : array[0..mx] of integer = (0,120,150);
hier nen Wert zuweisen willst:

arrWidth[mx] := lbxOrt.Width; Dachte immer Konstanten heißen Konstanten weil sie konstant sind und sich nicht ändern lassen

Der sagt:

Code:
[Fehler] Unit1.pas(42): Der linken Seite kann nichts zugewiesen werden
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#8

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 14:09
Sieh mal bei der Compilerdirektive {$J} nach...
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#9

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 14:19
Den Begriff Compiler-Direktiven hab ich bis jetzt noch nie gehört. Hab mir mal die Hilfe durchgelesen, aber über {$J} im allgemeinen nichts gefunden, und weiß auch nicht wie ich da nachgucken soll
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#10

Re: 2spaltige Combobox

  Alt 16. Dez 2003, 14:26
@General2003
In der OH in "Hilfethemen" auf dem Reiter "Index" den gewünschten Schalter eingeben, also $J
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:56 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