Z Buildera do Visual studio

Z Buildera do Visual studio
MajQel
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:92
0

Otóż mam pytanie dotyczące w sumie typów/klas w visual studio.
Przykładowo mam w Builderze:

Kopiuj
TLabel *Label1

a w visual studio natomiast tak nie ma ... przynajmniej w ten sposob... szczerze to ciezko mi wywnioskowac jakiego typu sa dane kontrolki z zapisu calego kodu...

Kopiuj
 private: System::Windows::Forms::Label^  label6;

To mi niewiele mowi tak naprawde...
Potrzebna mi ta wiedza do tego aby moc wypelniac niektore kontrolki za pomoca petli. W Builderze robilem to w ten sposob:

Kopiuj
for (int i=100;i<120;i++)
{
 dynamic_cast<TLabel *>(FindComponent("Label" + (String)i))->Caption= "-";
} 

Jak sie sprawa ma w visual studio?

Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 3 godziny
0

Przecież masz - typu Label z przestrzeni nazw System.Windows.Forms.

BTW, tutaj masz C++/CLI (czyli ogólnie C++ dla .NET), nie czysty C++.

Btw, to o co ci chodzi (FindComponent) to prawdopodobnie będzie do zastąpienia przez metodę Find() z kolekcji Controls, która należy do twojej formatki.

edytowany 1x, ostatnio: Ktos
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:3 minuty
0
Kopiuj
 private: System::Windows::Forms::Label^  label6;
  1. Ten język programowania nazywa się C++/CLI, jest to C++ w wersji dla .Net Framework. Problem na jaki zapewnie natrafisz jest taki, że większość przykładów dla .Net jest podawana w C# a nie C++.

  2. No private to private, chyba jasne.

  3. System::Windows::Forms::Label — tak środowisko generuje kod, dodając wszystkie namespace'y. Starczyłoby samo Label jeśli w kodzie się znajdzie using namespace System::Windows::Forms.

  4. Daszek… ach, daszek. To tzw. uchwyt. Składniowo coś jak gwiazdka, czyli zamiast TLabel* masz Label^. Główna różnica to taka, że obiekty z daszkiem tworzy się przez gcnew zamiast new i nie trzeba ich usuwać delete'em, bo podlegają garbage collectorowi.

  5. Odpowiednikiem FindComponent jest Controls->Find.

Kopiuj
array<Control^> ^tab = this->Controls->Find(L"Label"+i.ToString(), false);

Jak widać zwraca tablicę kontrolek (specjalną tablicę typu cli::array), ale jak wiesz że jest tylko jedna o tej nazwie to po prostu używasz tab[0].

Czyli cos takiego (nie sprawdzałem czy się kompiluje):

Kopiuj
for (int i=100;i<120;i++)
{
    safe_cast<Label^>(Controls->Find(L"Label" + i.ToString(), false)[0])->Text = L"-";
}

safe_cast jest jak dynamic_cast, ale sypie wyjątkiem zamiast zwracać nulla.

Lepiej jednak chyba trzymać w tablicy potrzebne kontrolki, niż ich tak szukać po nazwie. Dotyczy to zarówno Borlanda jak i Visuala.

BTW, tutaj masz C++/CLI (czyli ogólnie C++ dla .NET), nie czysty C++.
Akurat C++ Builder to również dość mocno nieczysty C++, więc tu wielkiej różnicy nie ma ;-)

edytowany 4x, ostatnio: Azarien
MajQel
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:92
0

No sprobowalem przedstawionej metody i faktycznie kompilacja zakonczyla sie pomyslnie z tym ze w wypadku gdy chce uzyc tej funkcji program sie wysypuje z takim oto bledem:
An unhandled exception of type 'System.IndexOutOfRangeException' occurred

Chyba zastosuje sie do rady i faktycznie bede trzymal wszystko w tablicy ... nie bede musial rzutowac ani bawic sie w takie rzeczy ... w przypadku buildera moglem dzieki temu zaoszczedzic troche kodu w malych programach z duzo iloscia kontrolek ale w tym wypadku widze ze jednak pewniej i bezpieczniej schowac wszystko do tablicy ... Czy jest jakis podrecznik do visual studio?

Azarien
no sprawdzanie błędów to sobie dodaj… pewnie nie znajduje ci komponentu i zwraca null. spróbuj też dać true jako ostatni parametr.
mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Odpisywałem ci już w tym http://4programmers.net/Forum/Edukacja/207071-visual_studio_2010 temacie. Tutaj masz całą dokumentacje i to z niej musisz korzystać pisząc. Zawiera masę przykładów. Po prostu musisz wiedzieć co chcesz zrobić i czego szukasz. Mając vs 2008 lub 2012 masz też intellisense (podpowiedzi) dzięki czemu bez problemu intuicyjnie piszesz większość rzeczy a szczególnie te dotyczące kontrolek. Możesz jeszcze zajrzeć w kwestii nauki tu http://msdn.microsoft.com/en-us/bb188199.aspx ale nie wiem czy coś ciekawego jest bo nigdy z tego nie korzystałem.


It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
MajQel
No tak tak tylko, że ja preferuje coś jednak w języku polskim
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1
Azarien napisał(a):

BTW, tutaj masz C++/CLI (czyli ogólnie C++ dla .NET), nie czysty C++.
Akurat C++ Builder to również dość mocno nieczysty C++, więc tu wielkiej różnicy nie ma ;-)

A nie lepiej po prostu przejść na C#?
Pytam bo C++/CLI wydaje się jakimś cudakiem dla tych którym jest straszne przejście na inny język.
Ale w gruncie rzeczy zapisy w C++/CLI są tak różne od tego co jest w gołym C++ że może warto od razu wsiąść na C# ?

MajQel
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:92
0

hm... chyba masz racje ;3
Tylko to niest wcale taka prosta sprawa
Potrzebna mi ksiazka a nie spis funkcji po angielsku

edytowany 1x, ostatnio: MajQel
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:3 minuty
0

A nie lepiej po prostu przejść na C#?
Może lepiej, może nie lepiej - zależy od projektu. Jeśli jest przepisywany z Buildera na .Net, to pewnie mniej trudu wymaga zmiana frameworka niż przepisywanie wszystkiego od zera na inny język.

mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

@MajQel Jedyna księgarnią/wydawnictwem w Polsce o której wiem, że wydaje i sprzedaje książki informatyczne to helion. Nie wiem czy tak ciężko jest wejść i zobaczyć sobie jakie są dostępne książki. Dziś zrobię to za Ciebie http://helion.pl/search?qa=&wsprzed=1&wprzyg=1&serwisyall=0&szukaj=visual+c%252B%252B Ale jak widzisz ludzie nie na tym forum nie kłamią i nie ma żadnej pozycji do nauki. Są tylko książki z praktycznymi przykładami poza tym, z tego co widzę jedyna która mógłbyś się zainteresować to ta dla visual 2005. Na rzeczy do których nikt nie potrzebuje podręczników takich rzeczy po prostu nie ma. Zajmij się angielskim a będzie dobrze. Osobiście sam mam duże problemy z tym językiem ale jednak z pomocą słownika daje rade to co mi potrzeba poza tym, mówię to jest strasznie intuicyjne.


It's All About the Game.
MajQel
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:92
0

ja nie mam problemow z angielskim. Mi chodzi o to, żeby ktoś polecił coś... ja wiem z doświadczenia, że tytuł tytułowi nierówny bo już wiele książek na temat html i php czytałem tak samo na temat c++. Ja potrafie szukac ... mi tylko chodzi o to żeby ktoś coś polecił co już czytał. C# jest dla mnie troche rpzerażające póki co w języku polskim chce coś co by było z przykładami. znalazłem kilka takowych tutoriali ... no ale ponoć kto pyta nie błądzi i mam nadzieje na jakieś lepsze .... z tego co wiem na yt nawet jest tutorial ale jakiś strasznie oporny on

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)