Første post etter ny site

Alt på den gamle DahlOakland siten er fjernet. Grunnen til dette er at epostadressene ble stjålet/hacket og sannsynligvis solgt (dette skjer ofte i slike situasjoner). Nå kaller jeg i stedet siten for gamlisen 🙂

Dette er ikke et forsøk på å lage en lærebok i ett eller annet. De gangene jeg viser f.eks noen tips ol, er det først og fremst som en huskeliste for meg selv. Hvis andre finner noe av verdi her inne, er det bare hyggelig.

Modellene som vises her er derfor ikke helt ferdige. De endrer seg dag for dag etter hvert som jeg lærer nye og mer riktige teknikker.

Jeg har ikke bestemt meg for hvor mye jeg skal legge ut her, dvs aktivitetsnivået 🙂 Vi får se hvor lenge gamlisen orker å holde på. Greit å ha et sted å legge fra seg div tips og triks f.eks.

20181120:

Fjernet div. sider og renset siten p.g.a. problemer. Hvorfor pokker gidder folk å prøve og hacke seg inn på en liten, ubetydelig og uskyldig side som denne?

20190207

Det er mye testing som foregår, jeg tester ulike temaer så utseendet kan av og til plutselig forandre seg. Jeg har ennå ikke funnet et tema som passer helt ut for meg 🙂

-sd-

Internasjonalisering og stilendring

Neste trinn var å få til en praktisk løsning på internasjonalisering og endring av stil («Style») og farger ved runtime. Hva med en PhotoShop Clone? Hehe, litt over hva jeg kan få til, antagelig, men et skall med tomme menyer er jo mulig 🙂

Det tok forøvrig over én måned bare å taste inn all menyteksten. All teksten ligger nå i string-lister som kan deles ut til en oversetter. Den oversatte teksten legges inn i en DLL som kompileres og linkes.

Resultatet ble ikke så verst, om jeg skal si det selv ut fra bildene nedenfor 🙂

Det siste bildet viser dessuten noen fotofiltre vi får med i C++ Builder 🙂

Endre stil ved runtime

En bloggpost av Sarina DuPont (19 Jan 2016) viser et eksempel i Delphi (Pascal). Dette eksemplet er så oversatt til C++ av David Millington (13 Jul 2017). Disse to skal ha æren av denne løsningen 🙂

Et lite testprogram: En Form med 2 Stylebook og 1 TComboBox.

VIKTIG:

Du MÅ bruke samme navn begge steder på stilbøkene. Disse navnene legges nemlig inn i Comboboksen!

I tillegg skal du legge inn følgende 2 funksjoner:

void __fastcall TForm1::FormCreate(TObject Sender) { EnumObjects([this](TFmxObject Obj) -> TEnumProcResult {
TStyleBook* pBook(dynamic_cast(Obj));
if (pBook) {
int Index = this->StyleBox->Items->Add(pBook->Name);
StyleBox->ListItems[Index]->Data = Obj;
}
return TEnumProcResult::Continue;
});

}
//—————————————————————————
void __fastcall TForm1::StyleBoxChange(TObject Sender) { if (StyleBox->ItemIndex >= 0) { StyleBook = (TStyleBook)(StyleBox->ListItems[StyleBox->ItemIndex]->Data);
}
}

C++ Builder Intro

Har begynt å legge inn litt brukervegledning for C++ Builder, foreløpig kun på laveste nivå. Jeg kommer ikke til å lage nye innlegg for hver enkel side.

Igjen: Dette er ikke tenkt som lærebok i programmering med C++ Builder, det er mer en huskeliste for meg slik at jeg vet hvor jeg finner ting og tang.

Utvidelse av menyer

Jeg fortsetter med litt mer tekst og reorganisering av menyen. Lagt inn et Første Inntrykk som hovedstopp i menyen.

Førsteinntrykket er vel da omtrent ferdig.

Enda en ny meny og side

La ut mitt første inntrykk og test av Android Studio. Denne var utrolig enkel å bruke, ingen problemer.

Android Studio brukes for programmering i Java.

Nye Menyer og Sider

Begynt på utvidelse av menyen, nye sider, osv. Foreløpig ferdig litt om programmering. Lagt inn nye sider om C++ Builder og et par enkle eksempler på en App for Android.

C++ Builder er veldig enkel å jobbe med, men litt synd at den ikke har 64 bits ennå. Ellers er den nesten perfekt enkel å jobbe med.

Test av verktøy (første inntrykk)

Når jeg foretar slike tester, er det (for meg) viktig å ta med et første inntrykk, men likevel (prøve å) være klar over at det egentlig bare er et førsteinntrykk, dvs. stor sjangse for at konklusjonene blir feil, jeg MÅ være klar over at på dette tidspunkt er dette er stort sett bare synsing.

Nå har jeg advart deg 🙂 Vi får alltid et førsteinntrykk , det gjelder ALLE former for møter, vi må bare være klar over det. Hva er så mitt første inntrykk av disse verktøyene? Jeg skal prøve å forklare.

Installasjon og klargjøring

Igjen: Dette er helt sikkert farget av mitt tidligere bruk av disse verktøyene, så ta det for det det er verdt.

  • Visual Studio (Microsoft), community versjonen
  • C++ Builder (Embarcadero), community versjonen
  • Android Studio, Open Source
  • QT, Open Source

Microsoft er Microsoft. Er det noen som greier å gjøre installasjon av verktøy (programmer) enkelt for brukerne, er det dem. De har sin(e) egne compiler(e), verktøyet vet hvor alt finnes, alt bare funker.

C++ builder har også sin egen compiler, derfor vet også dette settet hvor alt finnes. Det sitter fremdeles mange minner og mye begeistring igjen fra gode, gamle Borland. Dette sette ble også installert uten spesielle problemer. Jeg laget et veldig enkelt programeksempel, og det kunne kjøres direkte under Windows 10 uten flere dikkedarer.

Android studio lot seg også installere uten særlig vanskeligheter. Jeg installerte vel omtrent full pakke og alt funket rett ut av boksen. Dette ble min første «hello world» app for mobilen.

Du vil kanskje fikle litt for å sette opp (koble til) mobilen, inn i div menyer for å tillate mobilen å koble til maskinen, men såpass bør vi gamle programmerere få til 🙂

QT Gav meg noen problemer under installasjonen, kanskje mest fordi den ikke har sin egen compiler. Du MÅ fortelle QT hvor språkverktøyene finnes. Det fant de fleste, men jeg har fremdeles noen problemer med å angi Microsoft sin compiler. Denne spiller ikke rett ut av boksen, du må gjennom en deployment fase.

Installering av verktøy

Jeg har ikke tenkt å si så mye om installasjonen(e), det bør gå greit. Jeg foretrekker å begynne med Visual studio, Android Studio, deretter C++Builder og til sist QT.

Med så mange ulike verktøy installert samtidig vil problemene faktisk stå i kø når det gjelder Java Kit, Android SDK og NDK!

Android SDK forstår du hva er , men hva er Android NDK? Du trenger Android NDK dersom du tenker å lage Android programmer i C++. Det største problemet her er QT. Den skriker fordi den påstår at SDK- og NDK-kitet finnes allerede, men finner det ikke!

Android SDK/NDK problemløsing

Igjen: Jeg sier ikke at min måte å løse dette problemet på er den eneste riktige, men det funker for meg! Slik løste jeg problemet med QT og Android SDK/NDK problemet:

  1. Installer Android Studio.
  2. Start programmet
  3. Gå inn i Tools->SDK Manager

Da får du opp:

  1. Her finner du Android NDK! Klikk på for de samme som jeg har. Helt øverst ser du også hvor Android SDK legges.
  2. Avslutt programmet

Start opp QT Creator og gå inn i Tools -> Options

Da får du opp:

Der ser du hvor du skal taste inn lokasjonen til SDK og NDK. Legg merke til at NDK ligger to trinn lenger ned i SDK katalogen.

Du kan, om du ønsker det gjøre tilsvarende endringer i C++ Builder. Du finner de her under Tools -> Deployment -> SDK Manager:

Nå er du sannsynligvis på lufta Phhuuuuuuuuhhhhhhh 🙂

Programmerings verktøy

Gamlisens verktøy

Jeg programmerer stort sett i C++ og mine favoritt verktøy  er bl.a.:

  • QT
  • Visual Studio (Community edition)
  • C++ Builder
  • Android Studio
  • (Word, Notepad, etc.)

Ingen uenighet om de fleste ovenfor, men Word og Notepad ??? Min måte å lære på er å notere, mye notater, tenke meg at jeg lager Overheads med stikkord. Gammeldags?? Ok, la meg være det, men jeg foretrekker en skriftlig lærebok hvor jeg lett kan bla frem og tilbake, streke under, i margen, osv. Foretrekker du YouTube eller annen type video, bruk det.

Borland (nå Embarcadero) var i mange år mitt hovedverktøy med C++ Compiler og OWL-biblioteket samt en grei IDE med debug muligheter. Så kom C++ Builder, Java Builder og Delphi, en object orientert Pascal dialekt, samt et multi OS produkt kalt Kylix.

Det ble ikke den store suksessen så veldig lenge, den som holdt ut lengst var vel Delphi, tror jeg. Nå kan de være på veg opp igjen. Den nye C++ Builder har forbedret compiler og fått nytt bibliotek for å kunne lage programmer for flere OS, en stor forbedring av Kylix kan man kanskje si. De nærmer seg nivået til QT, vil jeg påstå.