Alle Beiträge von Klotzkopp
-
Schleifenkonstrukte und Ausgaben...
Da es sich ja im Grunde um PHP handelt, könntest du die Fragen im Forum Skript- und Webserverprogrammierung stellen. Wenn du es allerdings nicht im Webserver-Umfeld einsetzt (das lässt die ProgressBar vermuten), könnte Delphi/VB/VBS/AS 400/C#/.net/Sonstige besser passen.
-
Visual Studio Assistent
Der Anwendungsassistent kann deiner Anwendung nur eine Tabelle hinzufügen. Du kannst aber mit dem ATL-Assistenten weitere hinzufügen: Insert New ATL Object Category: Data Access Consumer (hab's hier leider nur auf Englisch)
-
über Menüeintrag auf aktuelles dokument
GetActiveDocument
-
Programm wurde nicht mit Code 0 beendet
Was für eine Art von Anwendung ist es denn? Konsole? Dialog? SDI?
-
Button in Toolbar deaktivieren
Hier hast du dich ja durch die Dokumenttemplates gehangelt. Du kannst nun für jedes Template mit GetFirstDocPosition prüfen, ob Dokumente zu diesem Template vorhanden sind. Oder du richtest im MainFrame oder in der App-Klasse einen "Dokument-Zähler" ein.
-
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