AGB  ·  Datenschutz  ·  Impressum  







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

ComboBox in VST

Offene Frage von "Jens Hartmann"
Ein Thema von WorstNightmare · begonnen am 14. Nov 2008 · letzter Beitrag vom 1. Mär 2011
Antwort Antwort
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

ComboBox in VST

  Alt 14. Nov 2008, 20:38
Hallo,

ich würde gerne eine ComboBox in eine VST "Zelle" implementieren, das klappt auch soweit, allerdings kann man die ComboBox nicht vernünftig öffnen! Wenn man drauf klickt kommt kurz oben links auf dem Desktop das Popupmenü, geht aber innerhalb von einer Sekunde wieder zu.
Ich glaube das liegt daran, dass der VST sich dauernd selbst refreshed, kann man das solange abschalten oder gibt es sogar eine elegantere Lösung als meine?

Hier mal mein Code:
Delphi-Quellcode:
procedure TfrmMain.VSTAfterCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellRect: TRect);
var
  Data: TData;
begin
  if Column = 2 then
  begin
    Data := TData(VST.GetNodeData(Node)^);

    if (Assigned(Data)) and (Assigned(Data.Box)) then
    begin
      CellRect := Sender.GetDisplayRect(Node, Column, False);
      Data.Box.SetBounds(CellRect.Left,
                         CellRect.Top,
                         CellRect.Right - CellRect.Left,
                         CellRect.Bottom - CellRect.Top
                        );
    end;
  end;
end;
Die Box wird vor dem Node erstellt und Parent wird VST zugewiesen.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ComboBox in VST

  Alt 20. Nov 2008, 12:18
Hallo,

vergiss Deinen Kram, Binde die Unit VTEditors ein und erstelle eine Methode für OnCreateEditor:
Delphi-Quellcode:
begin
  case Column of
    0 : EditLink := TComboEditLink.Create('F,T,E',csDropDownList);
    1,2 : EditLink := TStringEditLink.Create;
  end;
end;
Sven Harazim
--
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: ComboBox in VST

  Alt 25. Jan 2009, 11:31
Hallo,

nach längerer Zeit habe ich mich mit dem Projekt mal wieder beschäftigt. Ich habe meinen Code entfernt und wie du gesagt hast in OnCreateEditor das geschrieben:

Delphi-Quellcode:
procedure TSomeForm.VSTCreateEditor(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
begin
  if Column = 2 then
    EditLink := TComboEditLink.Create('Test', csDropDownList);
end;
Es passiert jedoch nichts. Muss ich noch irgendwas aktivieren oder aufrufen?
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#4

Re: ComboBox in VST

  Alt 27. Jan 2009, 11:12
So, ich habe jetzt herausgefunden, dass ich
VST.EditNode(Node, 2); // ComboBox einschalten machen muss, damit die ComboBox erscheint. Allerdings kann sie immer nur in einem Feld sein, es ist nicht möglich sie immer in der ganzen Spalte in allen Zellen anzuzeigen oder? Wenn das nicht geht kann ich ja auch einfach immer das aktive Item als CellText anzeigen.

Nun zu meinem nächsten Problem: Immer wenn ich irgendwo klicke, auch wenn es in der selben Zeile ist, geht der ItemIndex der Box zurück auf -1. Ich müsste also den ItemIndex immer abspeichern, jedoch hat dieses TComboEditLink überhaupt keine ItemIndex Eigenschaft und auch kein OnChange Event, wie mach ich das dann?
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#5

Re: ComboBox in VST

  Alt 30. Jan 2009, 16:19
Hat niemand eine Idee?

Ich meine, so eine Komponente ist doch zu 100% nutzlos, wenn man den eingestellten Wert nicht abrufen kann, also muss das doch irgendwie möglich sein!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#6

AW: ComboBox in VST

  Alt 28. Feb 2011, 21:51
Hallo und schönen guten Abend zusammen,

ich suche gerade an der selben Funktion wie hier im Thread. Deshalb möchte ich diesen Thread, da er noch nicht beantwortet ist nutzen, eine Antwot zu finden.

Aktuell suche ich nach einer Möglichkeit, in Spalte 2, und 3 eine ComboBox mit jeweils 3 Werten zu integrieren. Der aktuell in einer Datenbank gespeicherte Wert soll nach dem Laden angezeigt werden. Beim Ändern der ComboBox, soll der Eintrag automatisch angepasst werden.

Leider hat mir die Suche noch nicht richtig geholfen. Ich weiß mittlerweile, das die ganze Sache über die VTEditors.pas, die Methode OnEditing etc. funktionieren muss. Leider habe ich keine richtigen ansatz.

Kann mir jemand vieleicht helfen diesen zu finden.

Vielen Dank schon mal und Gruß Jens.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

AW: ComboBox in VST

  Alt 1. Mär 2011, 11:08
Niemand eine Idee oder eine Hinweis.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  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 19:48 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