Alle Beiträge von Klotzkopp
-
Randomize Times
Damit fallen Timer weg, die brauchen Fenster. Wie wäre es damit: In einer Schleife, die du nach Ablauf einer bestimmten Zeit abbrichst, fragst du ab, ob eine Taste gedrückt wurde (_kbhit), und falls ja, liest du das Zeichen in einen Puffer ein (_getche). Du könntest die Schleife auch vorzeitig abbrechen, wenn der Benutzer die Eingabetaste drückt (_getche liefert 13 zurück). Für die Zeitmessung könntest Du GetTickCount verwenden.
-
Schleifenkonstrukte und Ausgaben...
Vielleicht liegt es daran, dass GTK eventgesteuert ist. Wenn dein Code in einem Event-Handler steht, dann kann solange kein weiteres Event verarbeitet werden, solange die Schleife läuft. Deine Aufrufe von set_percentage lösen wahrscheinlich Events zum Neuzeichnen der Progress Bar aus, aber die können erst abgearbeitet werden, wenn "dein" Event behandelt wurde. Wie die Abhilfe aussieht, hängt von der Sprache ab. Ein sleep wird nicht helfen, weil die anderen Events nicht in einem anderen Thread behandelt werden. Der Thread wartet sozusagen auf sich selbst. Aber es gibt in mehreren Sprachen Möglichkeiten, zwischenzeitlich aufgelaufene Events abzuarbeiten, so z.B. PeekMessage/DispatchMessage oder DoEvents. Vielleicht gibt es so etwas auch in GTK.
-
Button in Toolbar deaktivieren
Du musst im MainFrame einen UPDATE_COMMAND_UI-Handler für die Command ID des Buttons einrichten. Wie das geht, steht hier. Über pCmdUI->Enable( TRUE /* oder eben FALSE */ ); kannst Du dann den Button ein- und ausschalten.
-
Welche Verkabelung und Topologie für ein kleines Netzwerk?
@Lady1201: Bitte beim nächsten mal einen etwas aussagekräftigeren Titel wählen. Die meisten Themen hier beschäftigen sich mit "Netzwerk"
-
Buttons ausblenden - nicht deaktivieren
->ShowWindow( SW_HIDE ) SW_SHOW zum wiederanzeigen. Du solltest übrigens beides machen. Wenn der Button nur unsichtbar und nicht disabled ist, kannst du ihn immer noch über einen Hotkey auslösen.
-
CComboBox
Und wie lautet deine Frage?
-
Dialogfeld - Buttons vor Anzeigen ausblenden
Bin mir nicht sicher, ob GetDlgItem in PreCreateWindow schon funktioniert. OnInitDialog würde ich vorschlagen. Da sind alle Fenster erstellt, nur noch nicht sichtbar.
-
Dokument laden und anzeigen
Mach aus pDocTemplate ein Member von CMyApp. Alternativ kannst du dich mit CWinApp::GetFirstDocTemplatePosition und GetNextDocTemplate durch die Templates hangeln. Mit AfxGetApp() kommst Du von überall her an einen Zeiger auf deine App-Instanz, den musst du nur noch nach CMyApp* casten.
-
Dokument laden und anzeigen
OpenDocumentFile ist nicht statisch. Du musst eine deiner Template-Instanzen für den Aufruf verwenden. Die App-Klasse hat üblicherweise Zeiger auf alle Templates als Member.
-
Dokument laden und anzeigen
Eigentlich sollte sich CDocTemplate::CreateNewDocument um alles kümmern.
-
DB mit ADO
Du kannst bei ADO auch dynamisch binden. Hier habe ich ein kleines Tutorial dazu gefunden.
-
>>= und <<=
t <<= i; ist gleichbedeutend mit t = t << i; also t = 4 << 3 48 käme in i heraus, wenn du i <<= t machen würdest.
-
TIdMessage und UIDL
Message-ID ist der zwingend vorgeschriebene Header. X-UIDL ist, wie alle Header, die mit X- anfangen, optional und wird nicht von jedem Mailserver unterstützt/ausgewertet.
-
DB mit ADO
So, wie die Doc/Viewarchitektur gedacht ist, sollte sich die View um die Darstellung und die Dokumentklasse um die Datenhaltung kümmern. Dazu gehört auch die Interaktion mit einer Datenbank. Es zwingt dich aber niemand, dich daran zu halten. Wenn die "Dokumente" nicht geladen und gespeichert werden sollen, und es nur eine Art von View gibt, kannst du auch alles in der Viewklasse machen. Wenn Du 100 unterschiedliche Abfragen hast (unterschiedlich in der Art und Anzahl der Felder des Abfrageergebnisses), dann brauchst Du 100 Recordset-Klassen. Die anderen Objekte kannst du ja problemlos erzeugen. Schau dir die Implementierung dieser Recordset-Klasse doch an. Da stehen Anweisungen, wie insgesamt vier Felder an Variablen der Recordsetklasse gebunden werden. Wie soll diese Klasse funktionieren, wenn du eine Abfrage verwendest, die nur ein Feld liefert? Die Anzahl und Reihenfolge der Einträge zwischen BEGIN_ADO_BINDING und END_ADO_BINDING müssen zu dem passen, was die Abfrage liefert.
-
Palm programmierung
Na dann sag doch erstmal, für welches Gerät und welches Betriebssystem.
-
zeile 'n' aus datei auslesen
Wie wär's denn damit: #include <vector> #include <fstream> #include <string> #include <iostream> using namespace std; vector<int> GetLinePositions( const string& filename ) { vector<int> linestart; if( ifstream textfile( filename.c_str() ) ) { string line; while( true ) { linestart.push_back( textfile.tellg() ); getline( textfile, line ); if( textfile.eof() ) { break; } } } return linestart; } string GetLineStartingAt( const string& filename, int startpos ) { string line; if( ifstream textfile( filename.c_str() ) ) { textfile.seekg( startpos ); if( !textfile.eof() ) { getline( textfile, line ); } } return line; } int main() { string filename = "C:\\WINDOWS\\system32\\eula.txt"; vector<int> linestart = GetLinePositions( filename ); vector<int>::iterator i, iend = linestart.end(); for( i = linestart.begin(); i != iend; ++i ) { cout << *i << endl; cout << GetLineStartingAt( filename, *i ) << endl << endl; } }[/CODE]
-
DB mit ADO
Ich denke, du kannst einfach dem CommandText-Property des Command-Objekts ein anderes SQL-Statement zuweisen. Du musst aber darauf achten, dass die einzelnen Felder des Abfrageergebnisses auch auf das RecordSet-Objekt passen. Wenn du die Abfrage an ein Recordset bindest (BindToRecordset), und die Ergebnisfelder der Abfrage nicht auf die Membervariablen des Recordsets passen, wird das nicht funktionieren. Für diese Abfrage brauchst Du also ein Recordset, das genau eine Feldvariable enthält, deren Datentyp auf den Datentyp von kundeid passen muss.
-
DB mit ADO
Was heißt "so geht es leider nicht"? Compilerfehler? Laufzeitfehler? Nicht das gewünschte Verhalten? Bitte gewöhne dir doch an, bei Fehlern den vollständigen Fehlermeldungstext oder eine genaue Fehlerbeschreibung anzugeben. Umso besser kann dir geholfen werden. Und bitte verwende die Code-Tags, damit man deinen Code besser lesen kann. Ich vermute, dass der Compiler sich darüber beschwert, dass du in der Klasse CTAKDoc zweimal die Methode GetRecSet deklarierst, und die beiden sich nur im Rückgabetyp unterscheiden. Das ist nicht erlaubt. Gib einer der Methoden einen anderen Namen.
-
Suche dringend infos über CImageList
Erste Anlaufstelle sollte immer die MSDN Library sein: http://msdn.microsoft.com/library/en-us/vcmfc98/html/_mfc_cimagelist.asp
-
Randomize Times
Schreibst Du ein Konsolen- oder ein Windowsprogramm? P.S.: Thema verschoben nach: C++: Compiler, IDEs, APIs
-
Randomize Times
@SgtBadAzz: Hast natürlich recht, ich meinte synchron.
-
Programmieren für Deppen
Ich würde von VB abraten. Ich halte es für wenig hilfreich, gleich mit reinen GUI-Programmen anzufangen, wenn man nicht einmal ansatzweise den Unterbau versteht. Man fährt sich da m.E. zu leicht auf diese Schiene ein und hat später Schwierigkeiten beim Umsteigen auf andere Sprachen. Ich rate dir, mit einer Sprache anzufangen, mit der du Konsolenprogramme schreiben kannst. Falls das in VB gehen sollte, schlagt mich.
-
Starten eines Programmes auf einem remote Windows 2000 PCs
Du kannst Mark Russinovich ja mal fragen, seine Mailadresse steht auf der Seite. Auf der TechEd 2001 hat er die Funktionsweise des Programms beschrieben, aber es war nicht sehr ausführlich, und ich kann mich auch nicht mehr genau daran erinnern. Ich weiß nur noch, dass ich dachte: "Was für ein Hack!"
-
Programmieren für Deppen
Mit Delphi begibst du dich gleich in die Hände einer Entwicklungsumgebung mit GUI und dazugehöriger Klassenbibliothek. Da kann es später schwerfallen, zu unterscheiden, was ein Element der Programmiersprache, und was Beiwerk der IDE ist. Ich würde empfehlen, mit den Grundlagen zu beginnen. Reine Konsolenprogramme finde ich für den Anfang gut, die Sprache ist letztendlich egal. Was den MP3-Player angeht, das solltest du dir abschminken. Und ich hoffe, Du denkst bei Spielen nicht an Grafik. Da lernst Du vielleicht, wie man mit einer Grafik-API umgeht, aber nicht, wie man programmiert.
-
Starten eines Programmes auf einem remote Windows 2000 PCs
http://www.sysinternals.com/ntw2k/freeware/psexec.shtml