AGB  ·  Datenschutz  ·  Impressum  







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

tagBitmap vs. TBitmap, falsche unit wird verwendet

Ein Thema von bernhard_LA · begonnen am 18. Mai 2017 · letzter Beitrag vom 18. Mai 2017
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.137 Beiträge
 
Delphi 11 Alexandria
 
#1

tagBitmap vs. TBitmap, falsche unit wird verwendet

  Alt 18. Mai 2017, 15:35
ich habe eine neue Unit angelegt und eine Klasse darin erzeugt


Delphi-Quellcode:
unit Unit_TPaintMe;

interface

uses types, classes, graphics, SysUtils, system.Generics.collections, VCl.controls, transparentCanvas, windows;

MyClass = Class

.....

aBmp : TBitmap;


end;

ich habe aktuell jetzt folgendes Problem :

lt. compiler DELPHI XE 10.1 wird jetzt TBitmap aus der unit winapi.Windows vervendet obwohl ich doch vcl.grpahics eingebunden haben. Wie kann ich diesen Fehler finden ? Warum wird die falsche unit für die Klassendefinition verwendet ?
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: tagBitmap vs. TBitmap, falsche unit wird verwendet

  Alt 18. Mai 2017, 15:39
Definiere "falsch". Beide heißen "TBitmap". Für den Computer sind beide gleich richtig.

In Delphi wird das verwendet was als letztes in der entsprechenden uses-Anweisung vorkam. Entweder definierst du dir darüber deinen eigenen Typ type TBitmap = MeineGewünschteUnit.TBitmap oder du vertauscht die Reihenfolge der Units in der uses
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.137 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: tagBitmap vs. TBitmap, falsche unit wird verwendet

  Alt 18. Mai 2017, 20:27
ich habe die unit winapi gar nicht in meiner uses Anweisung stehen, ich verstehe nicht woher er die andere TBitmap definition aus der unit winapi holt. Ich habe nur die vcl graphics eingebunden
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#4

AW: tagBitmap vs. TBitmap, falsche unit wird verwendet

  Alt 18. Mai 2017, 20:29
Winapi ist der Namespace, Windows die Unit. Und die ist sehr wohl eingebunden, nämlich als Letztes.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: tagBitmap vs. TBitmap, falsche unit wird verwendet

  Alt 18. Mai 2017, 22:12
Du kannst auch folgendes machen:

aBmp : VCL.Graphics.TBitmap;
Generell hier mal ein kleiner Tipp: Es kann eine Relevanz haben, in welcher Reihenfolge man die Units einbindet.

Nach meiner Erfahrung hat sich folgendes bewährt:

1. Zunächst die Betriebssytem Units (Winapi.Windows, usw.)
2. System-Units (System.Sysutils, usw)
3. Plattformunits (VCL. oder FMX.)
4. Units von Drittherstellern (TMS & Co)
5. Eigene Units, die wieder von
a) allgemein (tool-units, auch in anderen Projekten verwendet) zu
b) Anwendungsspezifisch (also speziell für die aktuelle Anwendung erzeugt.

Das strukturiert die ganze Sache und schafft somit den notwendigen Überblick.

Hin und wieder kann es erforderlich sein, entweder die Reihenfolge der Einbindung zu ändern, wenn man weiß, dass sonst der falsche Typ für eine Variable verwendet wird, oder eben mit Unit-Qualifizierern (Angabe des "Namespace") zu arbeiten.

Geändert von Harry Stahl (18. Mai 2017 um 23:15 Uhr)
  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 09: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