<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Variable unbekannt, Initialisierungslisten]]></title><description><![CDATA[<p>Ich habe hier ein Beispiel wo ich eine Initialisierungsliste für eine überladene Klasse nutze und mir unsicher bin ob das so überhaupt richtig ist.<br />
Zudem bekomme ich den Fehler, dass die Variable &quot;Video&quot; unbekannt ist, was ich nicht verstehe.</p>
<p>Der Code verwendet sehr viel Qt spezifisches, das Problem sollte aber am C++ Code liegen.</p>
<p>Ich leite eine Dialog von MaximizeOnScreen ab, der zudem eine Variable 'Video' enthält:</p>
<pre><code class="language-cpp">#include &quot;MaximizeOnScreen.h&quot;
#include &quot;widgetVideoPlayer.h&quot;

class DialogPhaseShaperVideo : public QDialog, protected Ui_DialogPhaseShaperVideo, protected MaximizeOnScreen
{
	Q_OBJECT
public:
	DialogPhaseShaperVideo(QWidget* parent = 0, Qt::WFlags flags = 0);
	virtual ~DialogPhaseShaperVideo();

private:
	void initWidgets();
	void maximizeOnScreen();
	void resizeOutput();

	widgetVideoPlayer Video;

};
</code></pre>
<p>Der Dialog enhält dan praktisch nichts außer dem Video, was aber nicht gefunden wird:</p>
<pre><code class="language-cpp">DialogPhaseShaperVideo::DialogPhaseShaperVideo(QWidget* parent /*= 0*/, Qt::WFlags flags /*= 0*/) : QDialog(parent, flags), MaximizeOnScreen(this)
{
	setupUi(this);
	initWidgets();
	maximizeOnScreen();
	resizeOutput();
}

DialogPhaseShaperVideo::~DialogPhaseShaperVideo()
{
}

void DialogPhaseShaperVideo::initWidgets()
{
	QPalette pal = this-&gt;palette();
	pal.setColor(QPalette::Window, Qt::black);
	this-&gt;setPalette(pal); 	
	setWindowFlags(Qt::FramelessWindowHint);
}

void DialogPhaseShaperOutput::resizeOutput()
{
	QRect rectMonitorSize = MonitorSize();
	QRect rectBeamShaperSize = QRect(0,0,
		ShaperList[iCurrentShaper].AperturPixelSize.width(),
		ShaperList[iCurrentShaper].AperturPixelSize.height());

	Video.setGeometry(QRect(
		(rectMonitorSize.width() - rectBeamShaperSize.width())/2,
		(rectMonitorSize.height() - rectBeamShaperSize.height())/2,
		rectBeamShaperSize.width(), 
		rectBeamShaperSize.height()));	
}
</code></pre>
<p>Fehlermeldung:</p>
<blockquote>
<p>1&gt;.\src\DialogPhaseShaperVideo.cpp(33) : error C2065: 'Video': nichtdeklarierter Bezeichner<br />
1&gt;.\src\DialogPhaseShaperVideo.cpp(33) : error C2228: Links von &quot;.setGeometry&quot; muss sich eine Klasse/Struktur/Union befinden.</p>
</blockquote>
<p>Die Klasse MaximizeOnScreen sieht so aus: (Sie benötigt den Dialog als Pointer weshalb ich diesen in dem Konstruktor vom Dialog in der Initialisierungsliste übergebe. Ist das so korrekt, also ist dann der Dialog-Pointer schon initialisiert worden?)</p>
<pre><code class="language-cpp">#include &lt;QtGui/QDesktopWidget&gt;

class MaximizeOnScreen
{
	//Q_OBJECT
public:
	MaximizeOnScreen(QDialog * dlg) : m_ScreenNumber(2), dialog(dlg)
	{
		int screenquantity = MonitorScreens.numScreens();
		int primaryScreen  = MonitorScreens.primaryScreen();
		rectFirstMonitorSize = MonitorScreens.screenGeometry(primaryScreen);
		rectSecondMonitorSize = MonitorScreens.screenGeometry(primaryScreen + 1);
	}
	virtual ~MaximizeOnScreen();

private:
	QRect rectFirstMonitorSize;	
	QRect rectSecondMonitorSize;	
	int m_ScreenNumber;
	QDesktopWidget MonitorScreens;
	QDialog * dialog;

public:
	virtual void resizeOutput() = 0;
	void maximizeOnScreen()
	{			

		if (m_ScreenNumber == 1)
		{
			dialog-&gt;setGeometry(QRect(rectFirstMonitorSize.left(), 0, rectSecondMonitorSize.width(), rectSecondMonitorSize.height()));
			dialog-&gt;setGeometry(QRect(0, 0, 1024, 768));	
		}
		if (m_ScreenNumber == 2)
		{		
			dialog-&gt;setGeometry(QRect(rectFirstMonitorSize.width()+1, 0, rectSecondMonitorSize.width(), rectSecondMonitorSize.height()));
		}

	}

	QRect MonitorSize()
	{
		if (m_ScreenNumber == 2) { 
			return rectSecondMonitorSize;
		}
		else {
			return rectFirstMonitorSize;
		}
	}

	void switchSreen()
	{
		if (m_ScreenNumber == 1) { 
			m_ScreenNumber = 2;
			maximizeOnScreen();
			return;
		}
		if (m_ScreenNumber == 2) { 
			m_ScreenNumber = 1; 
			maximizeOnScreen();
			return;	
		}
	}

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/217742/variable-unbekannt-initialisierungslisten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 08:48:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217742.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jul 2008 16:12:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable unbekannt, Initialisierungslisten on Thu, 10 Jul 2008 16:12:16 GMT]]></title><description><![CDATA[<p>Ich habe hier ein Beispiel wo ich eine Initialisierungsliste für eine überladene Klasse nutze und mir unsicher bin ob das so überhaupt richtig ist.<br />
Zudem bekomme ich den Fehler, dass die Variable &quot;Video&quot; unbekannt ist, was ich nicht verstehe.</p>
<p>Der Code verwendet sehr viel Qt spezifisches, das Problem sollte aber am C++ Code liegen.</p>
<p>Ich leite eine Dialog von MaximizeOnScreen ab, der zudem eine Variable 'Video' enthält:</p>
<pre><code class="language-cpp">#include &quot;MaximizeOnScreen.h&quot;
#include &quot;widgetVideoPlayer.h&quot;

class DialogPhaseShaperVideo : public QDialog, protected Ui_DialogPhaseShaperVideo, protected MaximizeOnScreen
{
	Q_OBJECT
public:
	DialogPhaseShaperVideo(QWidget* parent = 0, Qt::WFlags flags = 0);
	virtual ~DialogPhaseShaperVideo();

private:
	void initWidgets();
	void maximizeOnScreen();
	void resizeOutput();

	widgetVideoPlayer Video;

};
</code></pre>
<p>Der Dialog enhält dan praktisch nichts außer dem Video, was aber nicht gefunden wird:</p>
<pre><code class="language-cpp">DialogPhaseShaperVideo::DialogPhaseShaperVideo(QWidget* parent /*= 0*/, Qt::WFlags flags /*= 0*/) : QDialog(parent, flags), MaximizeOnScreen(this)
{
	setupUi(this);
	initWidgets();
	maximizeOnScreen();
	resizeOutput();
}

DialogPhaseShaperVideo::~DialogPhaseShaperVideo()
{
}

void DialogPhaseShaperVideo::initWidgets()
{
	QPalette pal = this-&gt;palette();
	pal.setColor(QPalette::Window, Qt::black);
	this-&gt;setPalette(pal); 	
	setWindowFlags(Qt::FramelessWindowHint);
}

void DialogPhaseShaperOutput::resizeOutput()
{
	QRect rectMonitorSize = MonitorSize();
	QRect rectBeamShaperSize = QRect(0,0,
		ShaperList[iCurrentShaper].AperturPixelSize.width(),
		ShaperList[iCurrentShaper].AperturPixelSize.height());

	Video.setGeometry(QRect(
		(rectMonitorSize.width() - rectBeamShaperSize.width())/2,
		(rectMonitorSize.height() - rectBeamShaperSize.height())/2,
		rectBeamShaperSize.width(), 
		rectBeamShaperSize.height()));	
}
</code></pre>
<p>Fehlermeldung:</p>
<blockquote>
<p>1&gt;.\src\DialogPhaseShaperVideo.cpp(33) : error C2065: 'Video': nichtdeklarierter Bezeichner<br />
1&gt;.\src\DialogPhaseShaperVideo.cpp(33) : error C2228: Links von &quot;.setGeometry&quot; muss sich eine Klasse/Struktur/Union befinden.</p>
</blockquote>
<p>Die Klasse MaximizeOnScreen sieht so aus: (Sie benötigt den Dialog als Pointer weshalb ich diesen in dem Konstruktor vom Dialog in der Initialisierungsliste übergebe. Ist das so korrekt, also ist dann der Dialog-Pointer schon initialisiert worden?)</p>
<pre><code class="language-cpp">#include &lt;QtGui/QDesktopWidget&gt;

class MaximizeOnScreen
{
	//Q_OBJECT
public:
	MaximizeOnScreen(QDialog * dlg) : m_ScreenNumber(2), dialog(dlg)
	{
		int screenquantity = MonitorScreens.numScreens();
		int primaryScreen  = MonitorScreens.primaryScreen();
		rectFirstMonitorSize = MonitorScreens.screenGeometry(primaryScreen);
		rectSecondMonitorSize = MonitorScreens.screenGeometry(primaryScreen + 1);
	}
	virtual ~MaximizeOnScreen();

private:
	QRect rectFirstMonitorSize;	
	QRect rectSecondMonitorSize;	
	int m_ScreenNumber;
	QDesktopWidget MonitorScreens;
	QDialog * dialog;

public:
	virtual void resizeOutput() = 0;
	void maximizeOnScreen()
	{			

		if (m_ScreenNumber == 1)
		{
			dialog-&gt;setGeometry(QRect(rectFirstMonitorSize.left(), 0, rectSecondMonitorSize.width(), rectSecondMonitorSize.height()));
			dialog-&gt;setGeometry(QRect(0, 0, 1024, 768));	
		}
		if (m_ScreenNumber == 2)
		{		
			dialog-&gt;setGeometry(QRect(rectFirstMonitorSize.width()+1, 0, rectSecondMonitorSize.width(), rectSecondMonitorSize.height()));
		}

	}

	QRect MonitorSize()
	{
		if (m_ScreenNumber == 2) { 
			return rectSecondMonitorSize;
		}
		else {
			return rectFirstMonitorSize;
		}
	}

	void switchSreen()
	{
		if (m_ScreenNumber == 1) { 
			m_ScreenNumber = 2;
			maximizeOnScreen();
			return;
		}
		if (m_ScreenNumber == 2) { 
			m_ScreenNumber = 1; 
			maximizeOnScreen();
			return;	
		}
	}

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1545201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1545201</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Thu, 10 Jul 2008 16:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to Variable unbekannt, Initialisierungslisten on Thu, 10 Jul 2008 16:33:56 GMT]]></title><description><![CDATA[<p>Da fehlt auch sicher kein namespace oder so was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1545216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1545216</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 10 Jul 2008 16:33:56 GMT</pubDate></item><item><title><![CDATA[Reply to Variable unbekannt, Initialisierungslisten on Thu, 10 Jul 2008 16:46:33 GMT]]></title><description><![CDATA[<p><strong>DialogPhaseShaperOutput</strong>::resizeOutput ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1545222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1545222</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 10 Jul 2008 16:46:33 GMT</pubDate></item></channel></rss>