AGB  ·  Datenschutz  ·  Impressum  







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

TreeView: Nur als Anzeigeobjekt

Ein Thema von weltaran · begonnen am 8. Jul 2005 · letzter Beitrag vom 8. Jul 2005
Antwort Antwort
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#1

TreeView: Nur als Anzeigeobjekt

  Alt 8. Jul 2005, 10:36
Hallo Leute!

Ich versuch gerade den TreeView als reines Anzeigeobjekt zu missbrauchen. Ich will also bestimmte Knoten Programmgesteuert auswählen, aber der Benutzer soll keine Möglichkeit haben selbst die Knoten auszuwählen. Wenn ich den TreeView disable dann werden alle Knoten grau dargestellt, der ausgewählte Knoten ist nicht mehr erkenntlich. Wenn ich stattdessen das darunterliegende Panel disable, dann sieht das ganze ähnlich aus, nur das die Knoten weiß hinterlegt sind.


Hat von euch jemand eine Idee?

Ciao
This is a signature virus. Copy me to help me spread!
  Mit Zitat antworten Zitat
Grendel
(Gast)

n/a Beiträge
 
#2

Re: TreeView: Nur als Anzeigeobjekt

  Alt 8. Jul 2005, 10:37
Fang einfach die WM-Messages des Treeviews ab und lass Mouse-Klicks und Tatstatureingaben einfach untern Tisch fallen.

Bis neulich ...
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: TreeView: Nur als Anzeigeobjekt

  Alt 8. Jul 2005, 10:45
Das hört sich gut an, ich hab allerdings noch nie mit diesen Botschaften hantiert. Kannst du mir mit ein bisschen pseudocode weiterhelfen? Kann ich gezielt auf die Botschaften an das TreeView reagieren oder muss ich alle Botschaften abfangen und dann irgendwie herausbekommen, ob sie an die TreeView gerichtet waren? Sorry, hab verdammt wenig Plan auf dem Gebiet.


Ciao
This is a signature virus. Copy me to help me spread!
  Mit Zitat antworten Zitat
Grendel
(Gast)

n/a Beiträge
 
#4

Re: TreeView: Nur als Anzeigeobjekt

  Alt 8. Jul 2005, 11:07
Zitat von weltaran:
Kann ich gezielt auf die Botschaften an das TreeView reagieren oder muss ich alle Botschaften abfangen und dann irgendwie herausbekommen, ob sie an die TreeView gerichtet waren?
Geht beides. Du kannst entweder "Application.OnMessage" behandeln und dann prüfen, ob das Handle der Message (Msg.hwnd) dem Handle des Zielobjektes entspricht.
Einfacher ist es aber, die WindowProc des entsprechenden Steuerelements umzubiegen.

Beispiel (es nur wird die linke Maustaste verschluckt aber das Prinzip sollte klar werden):

Delphi-Quellcode:
unit MyTreeView;

interface

uses
  SysUtils, Classes, Controls, ComCtrls, Messages;

type
  TMyTreeView = class(TTreeView)
  private
    { Private-Deklarationen }
    OldWndProc: TWndMethod;
    procedure MyWindowProc(var Message: TMessage);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy(); override;
  published
    { Published-Deklarationen }
  end;

implementation

{ TMyTreeView }

constructor TMyTreeView.Create(AOwner: TComponent);
begin
  inherited;
  // Messagebehandlung zur Designzeit nicht umbiegen
  if not (csDesigning in ComponentState) then
  begin
    OldWndProc := WindowProc;
    WindowProc := MyWindowProc;
  end;
end;

destructor TMyTreeView.Destroy;
begin
  if not (csDesigning in ComponentState) then
    WindowProc := OldWndProc;
  inherited;
end;

procedure TMyTreeView.MyWindowProc(var Message: TMessage);
begin
  if (Message.Msg <> WM_LBUTTONDOWN) and
     (Message.Msg <> WM_LBUTTONUP) and
     (Message.Msg <> WM_LBUTTONDBLCLK) then
  begin
    OldWndProc(Message);
  end;
end;

end.
Bis neulich ...
  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 16:26 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