AGB  ·  Datenschutz  ·  Impressum  







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

UpDownButton und TMediaPlayer?

Ein Thema von Demyxa · begonnen am 2. Mär 2018 · letzter Beitrag vom 2. Mär 2018
Antwort Antwort
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 10:02
Ich versuche aktuell was kleines nettes zu programmieren, und benötige dafür einen MediaPlayer.
Wie dieser funktioniert habe ich bereits herausgefunden, aber ich nutze auch einige UpDown Button
damit das Programm nicht allzu hässlich aussieht.

Der MediaPlayer ist innerhalb des Formulars nicht einmal sichtbar, sprich, die Buttons die mit ihm
kommen werden nicht verwendet, er ist einfach nur zum spielen von Dateien existent.



[dcc32 Fehler] Inkompatible Typen: 'TUDBtnType' and 'TMPBtnType'

Ist der Fehler der mich beunruhigt.
Alles was ich daraus erfahre ist, dass ich keine UpDown Buttons nutzen kann,
wenn ich gleichzeitig einen MediaPlayer nutzen will.

Ist das die harte Wahrheit oder kann man sich da herum schummeln?

Geändert von Demyxa ( 2. Mär 2018 um 10:16 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 10:36
Quelltext von der betreffenden Stelle?
  Mit Zitat antworten Zitat
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 10:41
Der ganze Spaß geht ab hier los

Code:
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
if button = btNext then
  begin
    if ATP = 0 then
    begin
      Label7.Color:=clRed;
    end
    else
    STG:=STG + 1;
    CalcATP;
    CalcATK;
    Label2.caption:= 'ATK: ' + FloatToStr(ATK);
    Label3.Caption:= 'Stärke: ' + FloatToStr(STG);
  end;
if button = btprev then
  begin
    STG:= STG - 1;
    CalcATK;
    CalcATP;
    Label2.caption:= 'ATK: ' + FloatToStr(ATK);
    Label3.Caption:= 'Stärke: ' + FloatToStr(STG);
  end;
end;

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
if button = btNext then
  begin
    if ATP = 0 then
    begin
    Label7.Color:=clRed;
    end
    else
    ITG:=ITG+1;
    CalcATP;
    CalcMAG;
    CalcATK;
      Label4.Caption:= 'Intelligenz: ' + FloatToStr(ITG);
      Label6.Caption:= 'MAG:' + FloatToStr(MAG);
      Label2.caption:= 'ATK: ' + FloatToStr(ATK);
  end;
if button = btprev then
   begin
   ITG:=ITG-1;
    CalcATP;
    CalcMAG;
    CalcATK;
      Label4.Caption:= 'Intelligenz: ' + FloatToStr(ITG);
      Label6.Caption:= 'MAG:' + FloatToStr(MAG);
      Label2.caption:= 'ATK: ' + FloatToStr(ATK);
end;
end;

procedure TForm1.UpDown3Click(Sender: TObject; Button: TUDBtnType);
begin
if button = btNext then
  begin
    CalcATP;
    if ATP = 0 then
    begin
    Label7.Color:=clRed;
    end
    else
    KON:=KON+1;
    CalcATP;
    CalcHP;
      Label8.Caption:= 'Konstitution: ' + FloatToStr(KON);
      Label10.Caption:= 'HP: ' + FloatToStr(HP);
  end;
if button = btprev then
   begin
    KON:= KON-1;
    CalcATP;
    CalcHP;
      Label8.Caption:= 'Konstitution: ' + FloatToStr(KON);
      Label10.Caption:= 'HP: ' + FloatToStr(HP);
end;
end;

procedure TForm1.UpDown4Click(Sender: TObject; Button: TUDBtnType);
begin
if button = btNext then
  begin
    CalcATP;
    if ATP = 0 then
    begin
    Label7.Color:=clRed;
    end
    else
    WIL:=WIL+1;
    CalcATP;
    CalcMP;
      Label9.Caption:= 'Willenskraft: ' + FloatToStr(WIL);
      Label11.Caption:= 'MP: ' + FloatToStr(MP);
  end;
if button = btprev then
   begin
    WIL:= WIL-1;
    CalcATP;
    CalcMP;
      Label9.Caption:= 'Willenskraft: ' + FloatToStr(WIL);
      Label11.Caption:= 'MP: ' + FloatToStr(MP);
   end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 10:56
Ich denke mal es liegt an der Unitreihenfolge, im USES deiner Unit.

Wenn zwei Units einen gleichnamigen Typen veröffentlichen, dann erwischst du ohne Namespace (unitname.typname) immer den Typen aus der letzten Unit, in deiner Liste.

[add]
Zitat:
Quelltext von der betreffenden Stelle?
Und in welcher Zeile?

Zitat:
if button = btNext then
Gleichnamige Konstanten betrifft das auch.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Mär 2018 um 10:59 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#5

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:00
Sowohl in der Unit MPlayer als auch in ComCtrls gibt es btNext und btPrev.

Werden beide Units eingebunden, muss man ggf. die Konstanten direkt aus den Units holen (sonst entscheide wahrscheinlich die Reihenfolge in der USES-Klausel, aus welcher Unit die Konstante verwendet wird):

if button=Vcl.ComCtrls.btNext oder if button=Vcl.mplayer.btNext passend zum Sender wählen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder ( 2. Mär 2018 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:00
Delphi zeigt mir jede Zeile die
Code:
if button = btNext then
oder
Code:
if button = btprev then
enthält als einen Fehler an.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#7

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:03
siehe meine Antwort.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:05
Hehe, hier ist das Problem, ich hab absolut keine Ahnung wovon du redest, ich
bin jetzt nicht zwingend der beste Delphi Programmierer
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#9

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:12
Das steht in der Unit ComCtrls: TUDBtnType = (btNext, btPrev); Und das steht in er Unit MPlayer: TMPBtnType = (btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject); Wie dir auffällt tauchen die Kontanten btNext und btPrev in beiden auf, sind aber unterschiedliche Type. Einmal Typ TUDBtnType und einmal TMPBtnType.
Ich nehme an in deiner USES steht MPlayer vor ComCtrls.
Wenn du jetzt bei der If-Abfrage deines UpDownButtons einfach Button mit btNext vergleichst, holt sich Delphi die erste Konstante mit dem Namen btNext und die ist dann dummerweise vom Typ TMPBtnType.
Beim Vergleich stellt Delphi fest, dass die Typen nicht zueinander passsen, daher der Fehler.

Schreibt du if Button=Vcl.Comctrls.btNext gibst du die Unit an, aus der die Konstante verwendet werden soll. Somit passen dann die Typen.

Äquivalent solltest du das dann beim OnClick im Mediaplayer, falls verwendet, ebenso machen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Demyxa

Registriert seit: 2. Mär 2018
14 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: UpDownButton und TMediaPlayer?

  Alt 2. Mär 2018, 11:15
Aaaah, verstehe!
Das hat in der Tat das Problem gelöst, ich habe zu danken!
  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:07 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