Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi inkompatible typen TBitmap TImage (https://www.delphipraxis.net/34643-inkompatible-typen-tbitmap-timage.html)

JCooper 25. Nov 2004 20:56


inkompatible typen TBitmap TImage
 
Hi,

was mache ich falsch???



Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Bit: TImage;
    Beenden: TButton;
    Button1: TButton;
    procedure MakeRed(Bit: TBitmap);
    procedure BeendenClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.MakeRed(Bit: TBitmap);
type
  PixArray = Array [1..3] of Byte;
var
  p: ^PixArray;
  h,w: Integer;
begin
  For h:=0 to Bit.Height-1 do
  begin
    p:= Bit.ScanLine[h];
    For w:=0 to Bit.Width-1 do
    begin
      p^[3]:=255;
      Inc(p);
    end;
  end;
end;

procedure TForm1.BeendenClick(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MakeRed(Bit: TBitmap);
end;

end.
Fehlermeldung :

Inkompatible typen: 'TBitmap' 'TImage'




Bin Delphi Anfänger, also seid gnädig ;-))


grüße

supermuckl 25. Nov 2004 21:00

Re: inkompatible typen TBitmap TImage
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MakeRed(Bit.Picture.Bitmap);
end;

nailor 25. Nov 2004 21:00

Re: inkompatible typen TBitmap TImage
 
ein typecast geht so: NeuerTyp(altesDingen)

JCooper 25. Nov 2004 21:04

Re: inkompatible typen TBitmap TImage
 
schöenen dank,...

die Fehlermeldung ist weg,...

nur...

die Pixel werden nicht rot eingefärbt, sprich, die procedure wird nich ausgeführt...

:(


:oops:

supermuckl 25. Nov 2004 21:10

Re: inkompatible typen TBitmap TImage
 
probier mal folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  bit.picture.bitmap := Tbitmap.create;
  MakeRed(Bit.Picture.Bitmap);
end;
weis net obs daran liegt das das bitmap nochnicht existiert o.ä.

JCooper 25. Nov 2004 21:12

Re: inkompatible typen TBitmap TImage
 
hm,... ich hab das bild vorher in die Form geladen...

jetz verschwindet es beim klick auf den Button

:roll:

supermuckl 25. Nov 2004 21:15

Re: inkompatible typen TBitmap TImage
 
jo weil du es damit überschreibst mit einem neuen image..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  bit.picture.bitmap := Tbitmap.create;
  bit.picture.bitmap.loadfromfile(filename und pfad der bmp datei);
  MakeRed(Bit.Picture.Bitmap);
end;
wenn es so weiter geht muss ichs selber mal testen *g*

JCooper 25. Nov 2004 21:24

Re: inkompatible typen TBitmap TImage
 
Vielen vielen dank,

es funktioniert

:mrgreen:


grüße

JCooper 25. Nov 2004 21:32

Re: inkompatible typen TBitmap TImage
 
wie bekomme ich es jetzt hin, dass ich über 3 radio buttons betimme, welchen der 3 Array werte ich ändern möchte... (Rot, Grün, Blau)

z.Zt ist es ja festgelegt auf 3

Code:
p^[3]:=255;

danke für die mühe

:thumb:

supermuckl 25. Nov 2004 21:38

Re: inkompatible typen TBitmap TImage
 
einfacher gehts mit der combobox als ItemList eingestellt
da kann man dann nach dem index die farbe setzen

Delphi-Quellcode:
var
farbe: integer;

als combobox:

farbe := combobox1.itemindex; // 0 ist das erste item
 p^[farbe+1]:=255;

oder als radio button:

if RadioButton1.checked then farbe := 1;
if RadioButton2.checked then farbe := 2;
if RadioButton3.checked then farbe := 3;

 p^[farbe]:=255;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 1 von 2  1 2      

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