AGB  ·  Datenschutz  ·  Impressum  







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

Inkompatible Typen [Winapi.Windows.tagLOGBRUSH]

Ein Thema von milos · begonnen am 24. Mär 2014 · letzter Beitrag vom 24. Mär 2014
Antwort Antwort
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
508 Beiträge
 
Delphi 11 Alexandria
 
#1

Inkompatible Typen [Winapi.Windows.tagLOGBRUSH]

  Alt 24. Mär 2014, 11:31
Hallo schon wieder

Habe eine TList mit einem Objekt in einer Form als public variable eingetragen.

Nun will ich sie von einem anderen Form aus überschreiben, doch ich erhalte folgenden Fehler:
Zitat:
[dcc32 Fehler] MIDIControllerForm.pas(71): E2010 Inkompatible Typen: 'System.Generics.Collections.TList<Winapi.Windows. tagLOGBRUSH>' und 'System.Generics.Collections.TList<Patterns.TPatte rn>'
Doch eigentlich sind beide zu 100% ein TList<TPattern>, das sagt mir sogar die IDE wenn ich mit der Maus rüberfahre.

Delphi-Quellcode:
procedure TfrmMIDIController.ReloadAll;
begin
  if Assigned(FMIDIMain.Patterns) then
    FMIDIMain.Patterns := FPatterns;
end;
Delphi-Quellcode:
unit MIDIMainForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Generics.Collections,
  PixelFrost.MIDI, Vcl.ExtCtrls, D2DDrawer, Vcl.StdCtrls;

type
  TfrmMIDIMain = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private-Deklarationen }
    FDrawer : TD2DDrawer;
  public
    { Public-Deklarationen }
    Patterns : TList<TPattern>;
  end;

var
  frmMIDIMain: TfrmMIDIMain;

implementation

{$R *.dfm}

procedure TfrmMIDIMain.FormPaint(Sender: TObject);
begin

  FDrawer := TD2DDrawer.Create(self);

  FDrawer.Canvas.BeginDraw;



  FDrawer.DrawRect(0,0,ClientWidth-1,ClientHeight+1);

  FDrawer.Canvas.EndDraw;
end;

procedure TfrmMIDIMain.FormResize(Sender: TObject);
begin
  Invalidate();
end;

end.
Ich verstehe nicht wieso das nicht klappt...
Dr. Google konnte mir auch keine Antwort geben

MfG
Milos

Geändert von milos (24. Mär 2014 um 11:32 Uhr) Grund: war nicht fertig :D
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Inkompatible Typen [Winapi.Windows.tagLOGBRUSH]

  Alt 24. Mär 2014, 11:49
Delphi-Quellcode:
procedure TfrmMIDIController.ReloadAll;
begin
  if Assigned(FMIDIMain.Patterns) then
    FMIDIMain.Patterns := FPatterns;
end;
Scheinbar beisst sich TfrmMIDIMain.Patterns: TPatterns mit TfrmMIDIController.FPatterns .

In welcher Reihenfolge bindest du die Units ein? Weil in Winapi.Windows.pas gibt es
Delphi-Quellcode:
type
  ...
  PPattern = ^TPattern;
  TPattern = TLogBrush;
Wenn du Winapi.Windows nach PixelFrost.MIDI (da wird wohl TPattern definiert?) einbindest, wird der Typ wieder überschrieben.
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
508 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Inkompatible Typen [Winapi.Windows.tagLOGBRUSH]

  Alt 24. Mär 2014, 11:55
Ach mann bin ich Blöd x)

Hatte TPattern in einer separaten Unit, habe aber vergessen diese einzutragen. Da aber TPattern eigentlich ja schon vorhanden war, wurde kein Fehler ausgegeben.

Danke, hätte ohne dich wohl Stunden danach gesucht xD

MfG
Milos
  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 23:04 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