Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen (https://www.delphipraxis.net/94747-tvirtualtreeview-leinwand-bild-erlaubt-kein-zeichnen.html)

dominikkv 26. Jun 2007 12:43


TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Hi

ich hab ein paar Probleme mit volgender Fehlermeldung:
Zitat:

Erste Gelegenheit für Exception bei $751F3843. Exception-Klasse EInvalidOperation mit Meldung 'Leinwand/Bild erlaubt kein Zeichnen'. Prozess SoFi.exe (2916)
Sender: TVirtualTreeView

und zwar hab ich bei meinem VirtualTreeView dynamisch Columnheader eingebaut:
Delphi-Quellcode:
  tree.Header.Columns.Add;
  tree.Header.Columns[0].Text := 'Text - blablabla';
  tree.Header.Columns[0].Width := 400;

  tree.Header.Options := Tree.Header.Options + [hoVisible];
Ist auch alles schön und gut, nur wenn ich mit der Maus über den Header fahre kommt obige Fehlermeldung...
Das komische dabei ist das diese Fehlermeldung im Debugger nicht erscheint... als würde ich das Programm ohne Debugger ausführen.

Hab ich den Header falsch hinzugefügt oder was mach ich falsch?

mfg.Dominik

DGL-luke 26. Jun 2007 12:50

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
ich würd das visible mal ganz nach vorne stellen.

dominikkv 26. Jun 2007 13:18

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
geht leider auch nicht...selbe Fehlermeldung.

den oben geposteten code zum einfügen des headers befindet sich im OnCreate, da passiert der Fehler ja auch nicht, sondern nur wenn ich mit der maus über den Header fahre

Nuclear-Ping 26. Jun 2007 13:51

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Hab das ganze gerade mal hier getestet und erhalte keine Fehlermeldung. Vielleicht liegt bei dir der Hund woanders begraben. Hast du die aktuellste VT-Version?

dominikkv 26. Jun 2007 14:20

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
ich hab mal meine version deinstalliert, finde jetzt aber keine neue version zum downloaden...
bei dieser seite kommt immer "No input file specified.".. und das soll ja irgendwie die offizielle seite sein...
wo bekomme ich jetzt die neuste version her?

DGL-luke 26. Jun 2007 15:05

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
eventuell hast du nen alten link, Mike Lischke (üfamily xD) ist umgezogen ;-)

-> http://www.soft-gems.net/ (nur noch) da gibts jetzt das VTV

dominikkv 26. Jun 2007 16:50

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
jo, danke, hab ich nicht gewusst :stupid:
auch mit der neuen version tritt der fehler auf :?
zur zeit benutze ich die komponente dynamisch, jetzt will ich sie aber mal installieren um zur designtime columnen hinzufügen zu können...
tja, und bei der installation des packages kommt die meldung: (siehe anhang)

wenn ich dann auf ok klicke kommt
Zitat:

---------------------------
Fehler
---------------------------
Zugriffsverletzung bei Adresse 216A5344 in Modul 'delphicoreide100.bpl'. Lesen von Adresse 00000004.
---------------------------
OK Details <<
---------------------------
[216A5344]{delphicoreide100.bpl} PackageState.TPackageState.RemoveContains (Line 1227, "PackageState.pas" + 5) + $3
[216A2F2A]{delphicoreide100.bpl} PackageState.ApplySuggestions (Line 387, "PackageState.pas" + 5) + $15
[216A30F9]{delphicoreide100.bpl} PackageState.TPackageState.Analyze (Line 424, "PackageState.pas" + 20) + $4
[216A2B8E]{delphicoreide100.bpl} PackageState.AnalyzePackage (Line 318, "PackageState.pas" + 1) + $C
[216A2A51]{delphicoreide100.bpl} PackageState.CreatePackage (Line 285, "PackageState.pas" + 22) + $9
[216A2AB0]{delphicoreide100.bpl} PackageState.CreatePackage (Line 294, "PackageState.pas" + 31) + $5
[216A2B25]{delphicoreide100.bpl} PackageState.CreatePackage (Line 307, "PackageState.pas" + 44) + $9
[216A349A]{delphicoreide100.bpl} PackageState.TPackageState.Build (Line 478, "PackageState.pas" + 8) + $28
[216E1424]{delphicoreide100.bpl} PasMgr.TPascalPackageCodeUpdater.DoCompile (Line 10721, "PasMgr.pas" + 4) + $11
[216E1453]{delphicoreide100.bpl} PasMgr.TPascalPackageCodeUpdater.DoCompile (Line 10726, "PasMgr.pas" + 9) + $F
[2172ECDC]{delphicoreide100.bpl} CommonPasReg.CompileProject (Line 1108, "CommonPasReg.pas" + 16) + $3C
[216DF4C9]{delphicoreide100.bpl} PasMgr.TPascalProjectUpdater.CompileProject (Line 9989, "PasMgr.pas" + 4) + $19
[216DF4F7]{delphicoreide100.bpl} PasMgr.TPascalProjectUpdater.CompileProject (Line 9993, "PasMgr.pas" + 8) + $F
[216E139A]{delphicoreide100.bpl} PasMgr.TPascalPackageCodeUpdater.Build (Line 10712, "PasMgr.pas" + 3) + $11
[216E1A7E]{delphicoreide100.bpl} PasMgr.TPascalPackageCodeUpdater.InstallPackage (Line 10889, "PasMgr.pas" + 4) + $8
[216A92FD]{delphicoreide100.bpl} PkgContainers.TStdPackageProjectContainer.CommandH andler (Line 151, "PkgContainers.pas" + 5) + $5
[20A370F1]{coreide100.bpl} Containers.TStdContainer.CommandHandler (Line 3016, "Containers.pas" + 1) + $17
[2012F2C3]{vcl100.bpl } Menus.TMenuItem.Click (Line 1877, "Menus.pas" + 14) + $8
[201307EB]{vcl100.bpl } Menus.TMenu.DispatchCommand (Line 2602, "Menus.pas" + 5) + $2
[2013194A]{vcl100.bpl } Menus.TPopupList.WndProc (Line 3392, "Menus.pas" + 4) + $E
[20031FC4]{rtl100.bpl } Classes.TThreadList.UnlockList (Line 3359, "common\Classes.pas" + 0) + $4
[200EBA24]{vcl100.bpl } Graphics.FreeMemoryContexts (Line 5031, "Graphics.pas" + 12) + $5
[2013EAB4]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
[20131899]{vcl100.bpl } Menus.TPopupList.MainWndProc (Line 3373, "Menus.pas" + 2) + $5
[20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
[201611EC]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8102, "Forms.pas" + 23) + $1
[20161226]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8121, "Forms.pas" + 1) + $4
[20161537]{vcl100.bpl } Forms.TApplication.Run (Line 8219, "Forms.pas" + 20) + $3
[0042298E]{bds.exe } bds.bds (Line 196, "" + 7) + $7
ähhh.. was mach ich da falsch?

SirThornberry 26. Jun 2007 17:42

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
anhand des Titels würde ich vermuten das du aus einem Thread heraus auf VCL-Elemente zugreifst.

DGL-luke 26. Jun 2007 17:57

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Hallo,

etnferne zuerst die alte version, indem du:

- im bibliothekspfad den entsprechenden verweis entfernst
- unter Packages (bei mir "Komponenten|Packages Installieren...") das Treeview-package entfernst ("Virtual Treeview designtime package" "Entfernen")
- das alte treeview mit dem uninstaller entfernst, so noch vorhanden

dann kannst du die neue ordentlich installieren.

Die Muhkuh 26. Jun 2007 18:22

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Ich sehe ein Problem mit "Turbo Delphi" und "Komponente installieren"

DGL-luke 26. Jun 2007 18:39

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Ähm... right. Aber wenn er schon so weit ist, wie die Fehlermeldung zeigt, hat er wohl kein Turbo Delphi am Laufen. :gruebel:

dominikkv 26. Jun 2007 18:59

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Zitat:

Zitat von Die Muhkuh
Ich sehe ein Problem mit "Turbo Delphi" und "Komponente installieren"

nö... hab CodeGear Delphi 2007 Enterprise... bis in 5 Tage, dann is die Lizenz abgelaufen xD

Zitat:

Zitat von DGL-luke
Hallo,

etnferne zuerst die alte version, indem du:

- im bibliothekspfad den entsprechenden verweis entfernst
- unter Packages (bei mir "Komponenten|Packages Installieren...") das Treeview-package entfernst ("Virtual Treeview designtime package" "Entfernen")
- das alte treeview mit dem uninstaller entfernst, so noch vorhanden

dann kannst du die neue ordentlich installieren.

die alte version war garnicht installiert, sondern die komponente wurde immer dynamisch eingebunden^^.
allerdings hab ichs mal mit dem installer versucht, kam aber fehler (datei nicht gefunden o.ä.), dh es könnten irgendwo noch packeges der alten version rumschwirren... hab auch welche gefunden (C:\Users\Public\Documents\RAD Studio\5.0\Bpl) und gelöscht, jetzt wird zwar compiliert aber gleicher fehler^^
also einen eintrag im bibliothekspfad gibt es nicht, ebensowenig ein Virtual Treeview designtime package in den Komponenten...
und den uninstaller hab ich schon ausgeführt

Zitat:

Zitat von SirThornberry
anhand des Titels würde ich vermuten das du aus einem Thread heraus auf VCL-Elemente zugreifst.

ähhh... ja, mach ich, allerdings mit synchronize und nicht dann wenn der fehler auftritt.
der fehler tritt auch dann auf wenn das programm frisch gestartet wurde und noch kein einziges mal der thread gestartet wurde, darum schließe ich den thread als fehlerquelle aus.

ich bedanke mich bei allen postern bisher :thumb:

DGL-luke 26. Jun 2007 19:16

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
hm. dann versteh ich nicht, warum er sagt, dass das package schon installiert sei :gruebel:

dominikkv 26. Jun 2007 19:46

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Zitat:

Zitat von DGL-luke
hm. dann versteh ich nicht, warum er sagt, dass das package schon installiert sei :gruebel:

ich auch nicht^^
es wär mir eigendlich egal wenn der fehler mit dem zeichnen auf der leinwand nicht da wäre...
adde ich eigendlich die neuen columns richtig?
kann ja sein das ich irgendwo noch etwas vergessen hab, etwas was delphi vllt automatsch macht wenn ich zur designzeit nen header einstelle...

Nuclear-Ping 27. Jun 2007 08:48

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
Wie schon gesagt, hab den Code von dir 1:1 in ein aktuelles Projekt (was auch mit dem VT arbeitet) übernommen. Geht ohne Probleme. Kann die Spalte anklicken, verschieben, drüberfahren wie ich will. Er will mir einfach keinen Fehler ausspucken. ;)

Ist zwar für TurboDelphi, aber wenn "Datei nicht gefunden öä" (genaue Fehlermeldungen sind immer hilfreich) nicht kommt, könnte das vlt. relevant sein: http://support.soft-gems.net/forums/...pic.php?t=1506

dominikkv 28. Jun 2007 14:10

Re: TVirtualTreeView: Leinwand/Bild erlaubt kein Zeichnen
 
ich hab jetzt mal nen neues projekt gemacht um den fehler nochmal zu reproduzieren... und er kam wieder...
dann hab ich mir mal angeschaut wie ich der/die/das VirtualTreeView eigendlich erstelle (dynamisch, weil eben die installation nicht geht) und hab mal nen paar sachen weggenommen, und siehe da: Tree.DoubleBuffered := True weggenommen und schon gehts...
sachen gibts :-D

danke nochmal an alle antwoter^^

mfg.Dominik


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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