• 18.01.2010
    Witajcie. Jak zwykle mam problem z najprostszymi rzeczami :/ A mianowicie: mam texboxa który musi być obwarowany wieloma warunkami dotyczącymi tekstu jaki mogę tam wpisać (mogę podać tylko określoną liczbę - napięcie mieszczące się w zakresie napięciowym). Sprawdzanie czy wszystko się zgadza robię w TextChanged: private void txtU1_TextChanged(object sender, EventArgs e) { try { double changeU1 = Convert.ToDouble(txtU1.Text, System.Globalization.CultureInfo.InvariantCulture); if(cmbRangeU.SelectedIndex == 0) { valRangeU = 500; } if (Convert.ToDouble(txtU1.Text, System.Globalization.CultureInfo.InvariantCulture) minU || Convert.ToDouble(txtU1.Text, System.Globalization.CultureInfo.InvariantCulture) maxU || Convert.ToDouble(txtU1.Text, System.Globalization.CultureInfo.InvariantCulture) valRangeU) { txtU1.BackColor = Color.Red; //jeśli wartość jest mniejsza od min to podswietl na czerwono } else { txtU1.BackColor = Color.White; //jesli dobra wartość to nie podswietlaj } } catch (FormatException) { txtU1.BackColor = Color.Red; } } i tu mam problem ponieważ jak wpiszę np. coś takiego: 20.34 to jest ok (kolor texboxa jest biały), ale jak już wpiszę 20,34 to kolor zamienia się na czerwony (mimo, że nie przekracza zakresu napięciowego ustawionego na 60V). Wiem tylko to, że w drugim przypadku on widzi tą liczbę jak 2034. Nie mam pojęcia co robię źle :/ Mam również pytanie (jak w temacie) czyli czy jest możliwa w TextChanged dynamiczna zamiana przecinków na kropi. Czyli gdy wpiszę przecinek to automatycznie mi program zamieni to na kropkę?? Z góry wielkie dzięki za wszelką pomoc. Pozdrawiam.
  • 18.01.2010
    Witam! Mam pewien problem. Muszę przygotowac program w pascalu obliczający wyznacznik macierzy kwadratowej i zapisujacy wynik w pliku textowym. Niestety nie pisałem jeszcze podobnego programu i niewiem jak sie za to zabrać a google nie wskazuje mi nic odpowiedniego. Mógłby ktoś mi pomóc z tym problemem? za pomoc oferuje piwko;]
  • 18.01.2010
    sygnał kliknięcia na przycisk to clicked(), jak można się dowiedzieć o kliknięciu na dowolny inny obiekt (w tym zablokowany)?
  • 18.01.2010
    Jak pobrać początek pamięci zajmowanej przez program i jej koniec (wskaźniki na te miejsca)? Chciałbym zapisać pamięć jednego z moich programów w pliku bajt po bajcie xd Bardzo potrzebuje tego info, z góry dzięki za pomoc.
  • 18.01.2010
    pytanie może trywialne jednak nigdy do tej pory nie spotkałem się z takim zapisem for'a. co oznacza for ( coś tam : coś tam) ??
  • 18.01.2010
    Może ktoś się orientuje.. Ze znajomymi chcielibyśmy w tym roku zrobić sobie wycieczkę po Europie (to znaczy: kółeczko - Berlin,Hamburg, Amsterdam, Bruksela, Paryż, Marsylia, Monako, Turyn, Mediolan, Zurych, Monachium, Wiedeń, Praga .. i powrót do Polski Wszystko najlepiej jakby się zamknęło w 2, 3 tyg max. Czy ktoś już próbowałem z was takiej lub podobnej wyprawy? .. - Nie pytam o sprawy drogowe (trochę zjeździłem Europy), natomiast chodzi mi o noclegi - najlepiej jak najtaniej. Podejrzewam, że same hotele raczej odpadną (kwestie finansowe). Cóż.. może ktoś z was ma jakieś doświadczenie w tej materii..
  • 18.01.2010
    Cześc, mam problem w moim programie. Jest klasa główna, która tworzy JFrame, a ten JFrame tworzy dwa JPanele obok siebie (lewy i prawy). W klasie głównej wołam funkcję, króra jest metodą prawego JPanela, która dokonuje pewnych zmian na tym panelu i robi repaint. Problem w tym, że na tym panelu przerysowuje mi się w dość brzydki sposób część panela lewego. Myślę że warto dodać, że lewy panel repaintuje się cyklicznie co ok 50ms i z nim nie ma żadnych problemów. Czy ktoś ma jakiś pomysł co może powodować taki błąd? Pozdrawiam!
  • 18.01.2010
    [QUOTE]Wiesz już, czym są aplikacje konsolowe. Nie posiadają one żadnych okien, kontrolek itp., interakcja z użytkownikiem jest więc słaba. Program może jedynie wypisywać tekst na konsoli (WriteLine()) lub odczytać tekst wpisany przez użytkownika. Mogłeś zauważyć, że program, który napisaliśmy wcześniej, zamyka się zaraz po uruchomieniu i wyświetleniu tekstu. To dlatego, że nie nakazaliśmy mu czekać na „pozwolenie” użytkownika. Metoda ReadLine() umożliwia odczytanie tekstu wpisanego w oknie konsoli. Program zostaje wówczas wstrzymany do czasu naciśnięcia klawisza Enter. Napiszmy prostą aplikację, która pobierze od użytkownika jego imię, a następnie zapisze je w zmiennej. Kod źródłowy takiego programu prezentuje listing 3.1. Listing 3.1. Program pobierający imię użytkownika using System; class Program { static void Main(string[] args) { Console.WriteLine(Cześć, jak masz na imię?); string name; // deklaracja zmiennej name = Console.ReadLine(); // pobranie tekstu wpisanego przez użytkownika Console.WriteLine(Miło mi + name + . Jak się masz?); Console.ReadLine(); } }[QUOTE] Niestety, po zastosowaniu tego plik nadal otwiera się i w ułamek sekundy zamyka. Proszę o pomoc, jestem nowy.
  • 18.01.2010
    Mam pytanie jak zapisać kod żeby program czytał tekst z pliku i zapisywał każdy wiersz pod inna zmienna ?
  • 18.01.2010
    Czy ktoś mógłby odpowiedzieć na pytania poniżej? prosze o pomoc, wydaje mi sie ze Wy bedziecie w stanie, na forach linuksowych mniejsze szanse, mniejszy ruch, tutaj raczej wieksze mózgi. pisze prace z systemów operacyjnych i szukam odpowiedzi wobec ubuntu na: 1. Podaj dwie równoważne metody na utworzenie dowiązania plik6 do pliku plik1. 2. Jaki rodzaj dowiązania można zrobić między dwoma systemami plików? 3. Jakim poleceniem, bez tworzenia pliku, sprawdzić jakie prawa będzie miał plik utworzony przy pomocy polecenia touch plik4 ? 4. Jak wyświetlić te prawa w postaci symbolicznej?
  • 18.01.2010
    Witam, mam spory problem.. Napisałem sobie dll do pewnej aplikacji. Chciałem by zmieniała ona w pamięci aplikacji pewne dane przy pomocy WriteProcessMemory. Lecz nie jestem w stanie pobrać uchwytu z poziomu dll. I tu rodzi się moje pytanie jak to zrobić ? Może być nawet PID tego okna.. Dziękuje za chęć pomocy :)
  • 18.01.2010
    W oryginale bylo tak, zeby byly dwie struktury: pierwsza (Dystans) zapisywala jakies dystanse, w drugiej (Baza) byly dane zawodnika. Postaralem sie usunac wszystkie odwolania do Dystans, ale... pomiedzy 159 a 182 jest obsluga obu struktur... powinienem wywalic 170-182, ale gdy to zrobie, w 'void dodajBaze' dostaje segmentation fault. Dzieki za pomoc! http://codepad.org/p9kvxUkE
  • Witam mam taki problem potrzebuje przerobić kod aby mi sortował w tabeli TstringGrid nazwy alfabetycznie sortowanie numeryczne działa ok ale niestety nie wiem jak zrobić aby działało alfabetycznie. Próbowałem wklepać tego gotowca: http://4programmers.net/Delphi/Gotowce/Alfabetyczne_sortowanie_b%C4%85belkowe Jednak wywala mi błąd praktycznie od początku do końca oczywiście stringlista zamieniłem z nazwa mojej. Tak wygląda kod programu możne ktoś mi napisać jak ma to poprawnie wyglądać jestem bardzo początkujący i nie wiem a na środę muszę oddać na zaliczenie. Interesują mnie kolumny Nazwa Gatunku i Zamieszkanie. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, jpeg, ExtCtrls, ImgList, ComCtrls, ToolWin, Menus, XPMan; type TForm1 = class(TForm) StringGrid1: TStringGrid; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; ImageList1: TImageList; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; PopupMenu1: TPopupMenu; SortujwgNazwyGatunku1: TMenuItem; SortujwgWieku1: TMenuItem; SortujwgWagi1: TMenuItem; SortujwgRozmiaru1: TMenuItem; SortujwgZamieszkania1: TMenuItem; ToolButton9: TToolButton; XPManifest1: TXPManifest; MainMenu1: TMainMenu; procedure FormCreate(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure SortujwgNazwyGatunku1Click(Sender: TObject); procedure SortujwgRozmiaru1Click(Sender: TObject); procedure SortujwgWieku1Click(Sender: TObject); procedure SortujwgWagi1Click(Sender: TObject); procedure SortujwgZamieszkania1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; dane=record Nazwa_Gatunku:string[20]; Wiek:integer; Waga:integer; Rozmiar:integer; Zamieszkanie:string[30]; end; rekordy=array of dane; var Form1: TForm1; zwierzeta:rekordy; plik:file of dane; plik1:file of integer; n:byte; otwarto:boolean; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin otwarto:=false; StringGrid1.colwidths[0]:=35; StringGrid1.colwidths[1]:=300; StringGrid1.colwidths[2]:=100; StringGrid1.colwidths[3]:=100; StringGrid1.colwidths[4]:=100; StringGrid1.colwidths[5]:=305; StringGrid1.Cells[0,0]:='L.P.'; StringGrid1.Cells[1,0]:='Nazwa Gatunku'; StringGrid1.Cells[2,0]:='Wiek'; StringGrid1.Cells[3,0]:='Waga'; StringGrid1.Cells[4,0]:='Rozmiar'; StringGrid1.Cells[5,0]:='Zamieszkanie'; end; procedure TForm1.ToolButton1Click(Sender: TObject); var i:integer; begin n:=Strtoint(inputbox('Dane','Określ liczbę gatunków:','')); setlength(zwierzeta,n); for i:=0 to n-1 do begin zwierzeta[i].Nazwa_Gatunku:=inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Nazwa_Gatunku ' ,' ' ); zwierzeta[i].Wiek:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Wiek ' ,' ' )); zwierzeta[i].Waga:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Waga ' ,' ' )); zwierzeta[i].Rozmiar:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Rozmiar ' ,' ' )); zwierzeta[i].Zamieszkanie:=inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Zamieszkanie ' ,' ' ); end; StringGrid1.RowCount:=n+1; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.ToolButton2Click(Sender: TObject); var i:integer; begin n:=Strtoint(inputbox('Dane','Okresl liczbę gatunków które chcesz dodac','')); setlength(zwierzeta,n); for i:=0 to n-1 do begin zwierzeta[i].Nazwa_Gatunku:=inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Nazwa_Gatunku ' ,' ' ); zwierzeta[i].Wiek:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Wiek ' ,' ' )); zwierzeta[i].Waga:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Waga ' ,' ' )); zwierzeta[i].Rozmiar:=Strtoint(inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Rozmiar ' ,' ' )); zwierzeta[i].Zamieszkanie:=inputbox('dane '+inttostr(i+1)+' zwierzeta ' ,' Zamieszkanie ' ,' ' ); end; StringGrid1.RowCount:=n+1; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; if savedialog1.execute then begin assignfile(plik,savedialog1.FileName); reset(plik); seek(plik,filesize(plik)); for i:=0 to n-1 do write(plik,zwierzeta[i]); closefile(plik); end else showmessage('Nie dopisano do pliku'); assignfile(plik,savedialog1.FileName); reset(plik); n:=filesize(plik); setlength(zwierzeta,n); stringgrid1.RowCount:=n+1; for i:=0 to n-1 do read(plik,zwierzeta[i]); closefile(plik); for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.ToolButton4Click(Sender: TObject); var i:integer; begin if savedialog1.Execute then begin assignfile(plik,savedialog1.FileName); rewrite(plik); for i:=0 to n-1 do write(plik,zwierzeta[i]); closefile(plik); end else showmessage('Nie wskazano pliku'); end; procedure TForm1.ToolButton3Click(Sender: TObject); var i:integer; begin if opendialog1.Execute then begin assignfile(plik,opendialog1.FileName); reset(plik); n:=filesize(plik); setlength(zwierzeta,n); stringgrid1.RowCount:=n+1; for i:=0 to n-1 do read(plik,zwierzeta[i]); closefile(plik); for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; end; procedure TForm1.ToolButton5Click(Sender: TObject); begin close; end; procedure TForm1.SortujwgNazwyGatunku1Click(Sender: TObject); var i,j:integer; tmp:dane; begin for j:=0 to n-2 do for i:=0 to n-2 do if zwierzeta[i].Nazwa_Gatunkuzwierzeta[i+1].Nazwa_Gatunku then begin tmp:=zwierzeta[i]; zwierzeta[i]:=zwierzeta[i+1]; zwierzeta[i+1]:=tmp; end; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.SortujwgRozmiaru1Click(Sender: TObject); var i,j:integer; tmp:dane; begin for j:=0 to n-2 do for i:=0 to n-2 do if zwierzeta[i].Rozmiarzwierzeta[i+1].Rozmiar then begin tmp:=zwierzeta[i]; zwierzeta[i]:=zwierzeta[i+1]; zwierzeta[i+1]:=tmp; end; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.SortujwgWieku1Click(Sender: TObject); var i,j:integer; tmp:dane; begin for j:=0 to n-2 do for i:=0 to n-2 do if zwierzeta[i].wiekzwierzeta[i+1].wiek then begin tmp:=zwierzeta[i]; zwierzeta[i]:=zwierzeta[i+1]; zwierzeta[i+1]:=tmp; end; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.SortujwgWagi1Click(Sender: TObject); var i,j:integer; tmp:dane; begin for j:=0 to n-2 do for i:=0 to n-2 do if zwierzeta[i].Wagazwierzeta[i+1].Waga then begin tmp:=zwierzeta[i]; zwierzeta[i]:=zwierzeta[i+1]; zwierzeta[i+1]:=tmp; end; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; procedure TForm1.SortujwgZamieszkania1Click(Sender: TObject); var i,j:integer; tmp:dane; begin for j:=0 to n-2 do for i:=0 to n-2 do if zwierzeta[i].Zamieszkaniezwierzeta[i+1].Zamieszkanie then begin tmp:=zwierzeta[i]; zwierzeta[i]:=zwierzeta[i+1]; zwierzeta[i+1]:=tmp; end; for i:=0 to n-1 do begin StringGrid1.Cells[0,i+1]:=inttostr(i+1); StringGrid1.Cells[1,i+1]:=zwierzeta[i].Nazwa_Gatunku; StringGrid1.Cells[2,i+1]:=inttostr(zwierzeta[i].Wiek); StringGrid1.Cells[3,i+1]:=inttostr(zwierzeta[i].Waga); StringGrid1.Cells[4,i+1]:=inttostr(zwierzeta[i].Rozmiar); StringGrid1.Cells[5,i+1]:=zwierzeta[i].Zamieszkanie; end; end; end.
    Tagi: tstringgrid,graphics controls,unit unit1,windows messages,gotowce,grids,kod,c4,delphi,aby,menus,interface
  • 18.01.2010
    Witam! Czy ktoś mógłby mi powiedzieć jak powinna wyglądać pętla FOR która skacze o2 kroki a nie o 1? Próbowałem robić to wg tych sposobów: for n := 1 to StrToInt(wartosc.text)/2 do begin ... end; for n := 1 to StrToInt(wartosc.text) do begin ... n := n+2; end; Ale nic to nie daje :(
  • newbie, tej 18.01.2010
    struct Fine { char lancuch[5]; int liczba; }; Jak zrobić żeby nie było konieczne podanie liczby elementów tablicy lancuch? Długość słowa jakie zostanie do niej zapisane nie jest znana więc nie mogę określić tej liczby elementów.
    Tagi: newbie,tej